add journaling to speed up changes to the git-annex branch

git is slow when the index file is large and has to be rewritten each time
a file is changed. To speed this up, added a journal where changes are
recorded before being fed into the index file and committed to the
git-annex branch. The entire journal can be fed into git with just 2
commands, and only one write of the index file.
This commit is contained in:
Joey Hess 2011-06-23 11:37:26 -04:00
parent 23e765b67c
commit 5f494154a3
7 changed files with 132 additions and 40 deletions

View file

@ -21,9 +21,13 @@ deleting or changing the file contents.
This branch is managed by git-annex, with the contents listed below.
Note that git-annex assumes only it will modify this branch. If you go in
and make changes directly, it will probably revert your changes in its next
commit to the branch.
The file `.git/index.git-annex` is a separate git index file it uses
to accumlate changes for the branch. Also, `.git/annex/journal/` is used
to record changes before they are added to git.
Note that for speed reasons, git-annex assumes only it will modify this
branch. If you go in and make changes directly, it will probably revert
your changes in its next commit to the branch.
The best way to make changes to the git-annex branch is instead
to create a branch of it, with a name like "my/git-annex", and then

View file

@ -29,11 +29,6 @@ This upgrade is easier than the previous upgrades. You don't need to
upgrade every repository at once; it's sufficient to upgrade each
repository only when you next use it.
This upgrade can be sped up by, before you start, making
.git/index.git-annex into a symlink to a file on a ramdisk.
For example: `ln -s /run/shm/index.git-annex.$(git config annex.uuid) .git/index.git-annex`
but, if you do that, be sure to remove the symlink after the upgrade!
After the upgrade is complete, commit the changes it staged.
git commit -m "upgrade v2 to v3"