summaryrefslogtreecommitdiff
path: root/doc/bugs/git_rename_detection_on_file_move
diff options
context:
space:
mode:
authorGravatar http://adamspiers.myopenid.com/ <Adam@web>2011-12-19 12:45:19 +0000
committerGravatar admin <admin@branchable.com>2011-12-19 12:45:19 +0000
commite341cdf0da8ae9398f0f96370b0a64950c1ffc30 (patch)
tree95fbf08b5d4eafa77cbc9e9de777a3269e9f38d4 /doc/bugs/git_rename_detection_on_file_move
parent6a9b3c2f22eb348307c53fa16b39f0807196873c (diff)
Added a comment: extra level of indirection
Diffstat (limited to 'doc/bugs/git_rename_detection_on_file_move')
-rw-r--r--doc/bugs/git_rename_detection_on_file_move/comment_6_f63de6fe2f7189c8c2908cc41c4bc963._comment19
1 files changed, 19 insertions, 0 deletions
diff --git a/doc/bugs/git_rename_detection_on_file_move/comment_6_f63de6fe2f7189c8c2908cc41c4bc963._comment b/doc/bugs/git_rename_detection_on_file_move/comment_6_f63de6fe2f7189c8c2908cc41c4bc963._comment
new file mode 100644
index 000000000..7398ac561
--- /dev/null
+++ b/doc/bugs/git_rename_detection_on_file_move/comment_6_f63de6fe2f7189c8c2908cc41c4bc963._comment
@@ -0,0 +1,19 @@
+[[!comment format=mdwn
+ username="http://adamspiers.myopenid.com/"
+ nickname="Adam"
+ subject="extra level of indirection"
+ date="2011-12-19T12:45:18Z"
+ content="""
+Surely this could be handled with an extra layer of indirection?
+
+git-annex would ensure that every directory containing annexed data contains a new symlink `.git-annex` which points to `$git_root/.git/annex`. Then every symlink to an annexed object uses a relative symlink via this: `.git_annex/objects/xx/yy/ZZZZZZZZZZ`. Even though this symlink is relative, moving it to a different directory would not break anything: if the move destination directory already contained other annexed data, it would also already contain `.git-annex` so git-annex wouldn't need to do anything. And if it didn't, git-annex would simply create a new `.git-annex` symlink there.
+
+These `.git-annex` symlinks could either be added to `.gitignore`, or manually/automatically checked in to the current branch - I'm not sure which would be best. There's also the option of using multiple levels of indirection:
+
+ foo/bar/baz/.git-annex -> ../.git-annex
+ foo/bar/.git-annex -> ../.git-annex
+ foo/.git-annex -> ../.git-annex
+ .git-annex -> .git/annex
+
+I'm not sure whether this would bring any advantages. It might bring a performance hit due to the kernel having to traverse more symlinks, but without benchmarking it's difficult to say how much. I'd expect it only to be an issue with a large number of deep directory trees.
+"""]]