summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar https://www.google.com/accounts/o8/id?id=AItOawnjjCyhVEcTRM5m4iIBqL3ZCooPx7ZYB_E <Marcus@web>2013-01-14 13:28:45 +0000
committerGravatar admin <admin@branchable.com>2013-01-14 13:28:45 +0000
commit2e934b5c54b8e8a8de6bcbe6682e24fa1f9300ce (patch)
tree7f417119de4ea09fd4b06577f4dc736d8d627da6
parentdaa73b92a94b9fed0b177370324d07a8baa573ca (diff)
-rw-r--r--doc/bugs/Switching_from_indirect_mode_to_direct_mode_breaks_duplicates.mdwn21
1 files changed, 21 insertions, 0 deletions
diff --git a/doc/bugs/Switching_from_indirect_mode_to_direct_mode_breaks_duplicates.mdwn b/doc/bugs/Switching_from_indirect_mode_to_direct_mode_breaks_duplicates.mdwn
new file mode 100644
index 000000000..c4c1a8385
--- /dev/null
+++ b/doc/bugs/Switching_from_indirect_mode_to_direct_mode_breaks_duplicates.mdwn
@@ -0,0 +1,21 @@
+#What steps will reproduce the problem?
+
+1. Create a new repository in indirect mode.
+
+2. Add the same file twice under a different name. Now you have two symlinks pointing to the same file under .git/annex/objects/
+
+3. Switch to direct mode. The first symlink gets replaced by the actual file. The second stays unchanged, pointing to nowhere. But git annex whereis still reports it has a copy.
+
+4. Delete the first file. Git annex whereis still thinks it has a copy of file 2, which is not true -> data loss.
+
+#What is the expected output? What do you see instead?
+
+When switching to direct mode, both symlinks should be replaced by a copy (or at least a hardlink) of the actual file.
+
+#What version of git-annex are you using? On what operating system?
+
+3.20130107 on Arch Linux x64
+
+#Please provide any additional information below.
+
+The deduplication performed by git-annex is very dangerous in itself because files with identical content become replaced by references to the same file without the user necessarily being aware. Think of the user making a copy of a file, than modifying it. He would expect to end up with two files, the unchanged original and the modified copy. But what he really gets is two symlinks pointing to the same modified file.