Currently I’m handling things by checking out the appropriate branch from “Upstream” (the Epic games repository), and pushing to “origin” (my own fork). When updates happen on the branch, I pull from “Upstream” and push to “origin”. Every so often I’d like to switch over to the master branch. However, by doing this, it tends to clear out the compiled cache, meaning when I switch branches I have to compile the whole thing again. On my MBP, that takes about an hour, maybe more.
Anyone have a better workflow? Or should I just not do this?
The method you described for updating your Engine is the same method that I currently use, and should work fine in most cases. However, you are also correct that switching between branches can involve a lengthy compile time to rebuild the Engine for the new branch you are working from.
If you want to, or need to, be able to regularly switch between Engine versions, and you have the hard drive space available, I would recommend setting up the versions you need next to each other on your hard drive. If you do this, keep in mind that it will eat up a sizable chunk of your hard drive (I currently have over 750 GB worth of Engine installations, not counting projects). It will also be important to keep track of which version you are using with a given project. While it is possible to upgrade a project to work with a newer version of the Engine, you cannot downgrade a project.
Unfortunately there is not much that can be done about the compile times if you want to change branches within your repository. As I’m sure you are aware, changing the branch results in significant changes to the files in the repository. Recompiling with the new files in the repository will always take some time, though the time involved will vary depending on your computer.