2

I need to apply version control to some very large files (1GB and up). (Yes, I know what I'm doing.) I'm stingy about storage space as I will have to back this data up over a relatively slow DSL line.

As far as I understand, when you create a local git repo, any files you add will be copied into it, so that you end up with two versions of every file: one in your working copy, and one full copy inside your local git repo. There is no way to make git use the files in my working copy for versioning purposes instead, and only store the deltas in the repo when any changes occur.

Is this correct, and is there absolutely no way around it?

Related: Git without local repository

Community
  • 1
  • 1
Pekka
  • 442,112
  • 142
  • 972
  • 1,088
  • I doubt it, since if you edited the working copy without involving git, the repo would have no idea that anything changed, and therefore can't keep its diff in sync. – Joachim Isaksson May 15 '13 at 06:21
  • @Joachim that makes a lot of sense now that you mention it. The answer to this question is most likely a resounding "no way" then. I'll keep it around for a while, maybe a workaround idea comes up – Pekka May 15 '13 at 06:22

1 Answers1

3

Have a look at git annex. It describes itself as:

git-annex allows managing files with git, without checking the file contents into git. While that may seem paradoxical, it is useful when dealing with files larger than git can currently easily handle, whether due to limitations in memory, time, or disk space.

This is probably exactly what you are looking for.

michas
  • 25,361
  • 15
  • 76
  • 121
  • Wow, this really does look like exactly what I'm looking for. I'll give it a try, thanks! – Pekka May 15 '13 at 06:30