slow, stupid, and safe index updating

Always merge the git-annex branch into .git/annex/index before making a
commit from the index.

This ensures that, when the branch has been changed in any way
(by a push being received, or changes pulled directly into it, or
even by the user checking it out, and committing a change), the index
reflects those changes.

This is much too slow; it needs to be optimised to only update the
index when the branch has really changed, not every time.

Also, there is an unhandled race, when a change is made to the branch
right after the index gets updated. I left it in for now because it's
unlikely and I didn't want to complicate things with additional locking
yet.
This commit is contained in:
Joey Hess 2011-12-11 14:51:20 -04:00
parent 59971c9230
commit 8680c415de
4 changed files with 34 additions and 25 deletions

5
debian/changelog vendored
View file

@ -13,6 +13,11 @@ git-annex (3.20111204) UNRELEASED; urgency=low
remote, by running git commit, pull, and push for you.
* Version monad-control dependency in cabal file.
* Fix bug in last version in getting contents from bare repositories.
* Ensure that git-annex branch changes are merged into git-annex's index,
which fixes a bug that could cause changes that were pushed to the
git-annex branch to get reverted. As a side effect, it's now safe
for users to check out and commit changes directly to the git-annex
branch.
-- Joey Hess <joeyh@debian.org> Sun, 04 Dec 2011 12:22:37 -0400