Presented at Devoxx France 2015 by Cécilia BOSSARD
Summary by Thomas SCHWENDER (Softeam StarTech Java)
An interesting feedback on a migration from SVN to Git
In a short time (quickies format requires), Cécilia expounded some advantages and issues when migrating a really big project from SVN to Git.
Her project was several millions of code lines, and was having problems when releasing a new version, because of some merge issues.
Those last came mainly from the project size, and the number of different branches to merge at this moment.
To try to solve their problem, they made an analysis to check if they could migrate from SVN to Git, with a Gitflow workflow.
After weeks of analysis, they first conclude that it was not possible because of the whole size of the project.
With Git, you effectively retrieve all the code on your local repository. You can’t do partial checkouts, contrary to SVN (check the note below for a precision on this point).
Then, thinking to the advantages of the migration, they decided the reduce the size of the project, by cleaning dead code. With that, the 2nd conclusion was let’s go to Git!
Tips and things to remember
-
With Git, less disk space is required.
As for Git, branch are only pointers, contrary to SVN where they are file system copies. -
Beware of the whole project size!
Contrary to SVN, Git doesn’t allow partial checkouts (feature called sparse directories in SVN).
So, do not forget the housekeeping, and clean dead code!To be more precised, since version 1.7.0, Git also enables sparce checkouts for the working directory (check here). Unfortunately, it does not affect the size of the overall local repository (you WILL get the whole thing).
-
Beware of line endings configuration.
-
Beware of the encoding of your merge tool.
Think to configure it to use UTF-8. -
get the
.git
out ouf the Eclipse workspace, so as not to slow your IDE too much.