I'm migrating some personal project repositories to Git from Mercurial. One of the projects relies on some non-changing, but large, shapefiles and SQLite databases These files are important and need to live inside the repo so that anyone checking out the project has access to them. With Mercurial, this was easy to deal with; I used the largefiles extension. largefiles automatically handled file additions/changes by not trying to analyze the content of files larger than X in size. That is, I could do hg addremove
, and everything would just work.
Git, just like Mercurial, is not designed to track large files. However, I don't see a similar extension. I've looked into git-annex, but it seems like I need to manually keep track of the files (i.e., I can't just arbitrarily do git add -A
). Also, if I'm reading this right, git-annex seems to maintain large files in a completely separate repo. I want to keep the large files in my current repo in the directories they currently live.
How do people handle this situation? Surely there are lots of projects that need to track large files integral to the operation of the project. Will git-annex accomplish this, or do I need some other extension?