diff options
author | Joey Hess <joey@kitenet.net> | 2013-02-06 12:40:59 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2013-02-06 12:44:19 -0400 |
commit | 48d59dbad11a2f99a0003f5f3bd93734429be11d (patch) | |
tree | ef74a5cb149d78c8dc3e74732ae52f5afb73f274 /doc | |
parent | 6be68947dcf80c99ed5135c1a968641dca199555 (diff) |
pre-commit: Update direct mode mappings.
Making the pre-commit hook look at git diff-index to find changed direct
mode files and update the mappings works pretty well.
One case where it does not work is when a file is git annex added, and then
git rmed, and then this is committed. That's a no-op commit, so the hook
probably doesn't even run, and it certianly never notices that the file
was deleted, so the mapping will still have the original filename in it.
For this and other reasons, it's important that the mappings still be
treated as possibly inconsistent.
Also, the assistant now allows the pre-commit hook to run when in direct
mode, so the mappings also get updated there.
Diffstat (limited to 'doc')
-rw-r--r-- | doc/bugs/direct_mode_renames.mdwn | 6 | ||||
-rw-r--r-- | doc/design/assistant/desymlink.mdwn | 12 |
2 files changed, 7 insertions, 11 deletions
diff --git a/doc/bugs/direct_mode_renames.mdwn b/doc/bugs/direct_mode_renames.mdwn index d0c7a8b30..60f449300 100644 --- a/doc/bugs/direct_mode_renames.mdwn +++ b/doc/bugs/direct_mode_renames.mdwn @@ -8,6 +8,8 @@ file working properly in direct mode. Perhaps the pre-commit hook needs to update the mapping for files that were deleted or added. -(This also affects moves of files when the assistant is being used. +This also affects moves of files when the assistant is being used. In this case, the assistant updates the mapping to add the new name, -but does not delete the old name from the mapping.) +but does not delete the old name from the mapping. + +> [[done]]; the pre-commit hook now updates the mappings. --[[Joey]] diff --git a/doc/design/assistant/desymlink.mdwn b/doc/design/assistant/desymlink.mdwn index 05f965358..ffa37399d 100644 --- a/doc/design/assistant/desymlink.mdwn +++ b/doc/design/assistant/desymlink.mdwn @@ -58,9 +58,9 @@ is converted to a real file when it becomes present. This allows just cloning one of these repositories normally, and then as the files are synced in, they become real files. * Maintain a local mapping from keys to files in the tree. This is needed - when sending/receiving keys to know what file to access. Note that a key - can map to multiple files. And that when a file is deleted or moved, the - mapping needs to be updated. + when sending/receiving/dropping keys to know what file to access. + Note that a key can map to multiple files. And that when a file is + deleted or moved, the mapping needs to be updated. * May need a reverse mapping, from files in the tree to keys? TBD (Currently, getting by looking up symlinks using `git cat-file`) (Needed to make things like `git annex drop` that want to map from the @@ -87,12 +87,6 @@ is converted to a real file when it becomes present. * kqueue does not deliver an event when an existing file is modified. This doesn't affect OSX, which uses FSEvents now, but it makes direct mode assistant not 100% on other BSD's. -* The mapping is not updated when files are deleted (or for the deletion - part of a rename). So it can contain old filenames that are no longer in - use. Code that uses the mapping has to take care to check that the - files they refer to exists, which is a good idea anyway. But, - it would be good to at some point update the mappings to remove deleted - files (fsck does this FWIW). ## done |