After upgrading from 4.5.5 to 4.6.0 (or 4.6.1), tons of old revisions re-appear in the “Update” window. If you don’t have any local changes (which is generally never the case in a normal working environment!), you can just hit “Update”, Unity does essentially nothing (visibly), and then everything is clean again.
However - if you have local changes, some or all of these changes appear as conflicts when trying to Update. So what to do? “Skip” does not help. “Discard My Changes” is not what you want, as it would erase all your local changes. The only way to go is “Ignore Server Changes” - but this has two major caveats:
- first, if that project was not up-to-date BEFORE opening it for the first time in 4.6, you would “lose” all these server changes, as you would ignore those updates.
- and secondly, while this approach does cleanup the “Update” window - all your local changes (except the “NEW” entries) now permanently vanished from your Commit list! This is an ancient Unity bug, and the only way to make your local files (that DO differ from the server version!) reappear in the Commit list is to reimport them. As there is no way of knowing WHICH files are actually changed locally, your only option is to REIMPORT ALL ASSETS. Well, we have about 6 active projects ranging from 0.5 to 10GB, often with several local copies (i.e., for various platforms), and we have 7 people with Pro licenses in our team. Reimporting all assets in all local project instances will take about 1.5 full work days (unless you happen to have an SSD, which will reduce that time to maybe 0.5 work days), so upgrading to 4.6 will cost us about 10 man-days of busy-waiting where we effectively cannot work on our projects!
=======================================
I strongly suggest that everybody working with the Unity Asset Server does NOT try to upgrade to 4.6 until these issues are resolved!
Is there maybe some workaround or trick besides a “Reimport All” that fixes this? It’s probably merely some flag that gets incorrectly erased, as the files itself are not changed, only the status of whether a file is current or not.