Git migration
From Open Siddur Project Development Wiki
These are some notes I'm jotting down during the subversion to git migration, to explain what choices were made and what happened:
(Note: github has a "soft" limit for free/open source projects of 300MB. They seem willing to let projects go above that, but it would probably be best not to break the limit on the first commit.)
- first attempt: git svn with the entire history: The conversion looked OK, although I didn't check it out in detail; the git repository is 1.1GB(!), compared to the svn repository, which is 1.4GB with all history. This is way too large. The large size is caused by a combination of:
- commits back in the history that were not a good idea, including: generated files and large binaries.
- code drawn in by svn:externals from other projects' repositories
- binaries stored in lib, including multiple versions of the eXist install binaries
- second attempt: use svn export to get a clean copy of trunk without the history, remove unneeded binaries, particularly those left over from the Java applet. Remove older TEI code that doesn't work anymore anyway (we need to switch the schema from Roma to Roma 2 or Vesta anyway).
- Need to find some way to pull in the externals without clogging up the git repository
- Should we pull in eXist source that way too, and provide build.properties instead of a binary? (will also need to pull in IzPack)
- current ideas (in no particular order):
- clone the other projects as separate repositories in git. Maintain them up to date with their svn repositories. Yuck.
- use svn in the Makefile to build external repositories with svn co and svn update as needed. Make those directories ignored by git.
- Use git submodules combined with git-svn to draw in externals. Submodules lock to a given revision, but that may not be a bad thing. This may allow us to keep local changes and not have to do the current patching thing. This may help, although I haven't grokked it yet.
- use git subtree merges and somehow link in svn repository
- actually doing it. we're migrated. final notes are here.