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:
parent
59971c9230
commit
8680c415de
4 changed files with 34 additions and 25 deletions
|
@ -39,6 +39,9 @@ corresponds to its index, and if the branch is at a different ref,
|
|||
merge it into the index. I am still considering how to do that atomically;
|
||||
what if a push comes in while git-annex is updating its index?
|
||||
|
||||
> Now git-annex always updates the index with the git-annex branch, which
|
||||
> is a slow, but safe way to avoid this problem. [[done]] --[[Joey]]
|
||||
|
||||
---
|
||||
|
||||
## Workaround
|
||||
|
|
|
@ -22,17 +22,9 @@ deleting or changing the file contents.
|
|||
This branch is managed by git-annex, with the contents listed below.
|
||||
|
||||
The file `.git/annex/index` is a separate git index file it uses
|
||||
to accumulate changes for the git-annex. 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
|
||||
use "git annex merge" to automerge your branch into the main git-annex
|
||||
branch.
|
||||
to accumulate changes for the git-annex branch.
|
||||
Also, `.git/annex/journal/` is used to record changes before they
|
||||
are added to git.
|
||||
|
||||
### `uuid.log`
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue