Even with cache server on, the switch on a 12gb project takes about 2 hours per platform.
Then what makes it worse, it switches ONLY, at first, to x86 standalone instead of x86_64 (Why?! I didn’t know it’s still the '90s – I mean, there’s a poll pinned right now to even render the 32-bit version of the editor obsolete!).
This means that, 2 hours later, I have to swap from x86 to x86_64 >> another 2 hours.
In other words: This is unbearable.
COLLAB
When we used Collab, we found a workaround to make a 2nd and 3rd project – I copied the Windows 64 project, would push, open Linux 64 project, and pull. This saved about 4 hours every time I wanted to swap.
However, Collab was a bit too buggy for us and lacking features like local commit, so we switched to GitLab CE.
GITLAB
[Off-Topic] First of all, after disconnecting collab, 1/2 of our Unity bugs just went away. I had no idea how many bugs were linked to Collab (that were seemingly it’s own issue).
But now, we can’t just open a new project – the old workaround doesn’t seem to work. I have a few ideas, but every test takes 2-4 hours O__o anyone have any insight? My ideas are:
We’ve just got different entire copies of the entire repo checked out for each project version. The overhead of waiting for the version change is simply not worth it.
Of course, you’ll want an actual build server that makes builds, but you still need to open the project checked out on a specific platform to see the bugs on that platform.
The issue where you can’t change directly from eg. Windows 64 bit to OSX Universal or back is a very, very large time cost, and fixing it would be very, very easy. Just don’t have the editor immediately change when you select something in the dropdown, but wait for the switch platform button. That’s how it works between other platforms, but on PC standalone, that’s not taken into consideration.
Can you elaborate a bit further into this? Let’s say I copy my project folder (.git folder and all). Would that suffice? Just pull from the same repo, but two completely separate project folders (well, 1 per platform)? Assuming I’d have to change ONCE for the initial platform change, of course. Am I on the right path?
Exactly! I suggested this ages ago (surely others before me, too). It’d take a single person to fix this ;( so much time lost, even accidentally clicking it. I once closed Unity midway to see what would happen: it starts over, gahh…
We’re working on it, but not quite there yet. We swapped to GitLab CE and will prepare soon for their CI module, but we’re not ready yet. Gotta still manually switch n build, for now. If you have any good guides on this (specific to GitLab CI), feel free to drop a link, if you have time!
No links for you there, we’re running Teamcity on a server. We push to a repo on the server, and a hook starts a build for each platform. That’s about what I know, I’m not in charge of that process.
Pretty much. I’ve got versions of the project in:
C:/WttW
C:/WttW_OSX
C:/WttW_Switch
etc. Each of those are the same git repo checked out, with different build platforms (and graphics APIs, and other platform-specific things). You pull from a git repo on your computer in exactly the same way as you pull from a url, so if I’ve made changes on the OSX version and want those in the main one, it’s just:
git fetch WttW_OSX
git merge
Originally I created the OSX version with:
git clone WttW WttW_OSX
We strive to have the same code and assets over all platforms, to reduce confusion. Any platform-specific code lives in #if UNITY_PLATFORM-defines. The different repos are purely for handling re-import times.
Hi Baste, thanks for the detailed explanation. I’ll try to replicate that setup, seems pretty straight fwd and will spare lots of dead times switching platforms.
We also spend a lot of time to try figure out different solutions and no matter if a cache server is used or not, the time wasted was ridiculous, so we went in the end with exactly what Baste recommends…
For git every git repository you checkout is a “local” repository. Just copy and paste your current folder to a second location
e.g.
repositories/Win
repositories/Mac
repositories/Android
And as every repository works the same with git, you can do whatever you need no matter which one you used. So you just always open the Win folder if you want to open the project with target plattform windows, and the Mac folder if you want to do something Mac specific.