summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2011-11-12 14:46:32 -0400
committerGravatar Joey Hess <joey@kitenet.net>2011-11-12 14:46:32 -0400
commitfe4ad93e4a82eabc2300705a8bfc59caaf4814b3 (patch)
tree7ec48b6f8cf857a4b9f67f1b9676269a1b0eba81
parent6e946b9a39f8e5ba55651accbc1307e8cce5c4e2 (diff)
add
-rw-r--r--doc/todo/avoid_unnecessary_union_merges.mdwn18
1 files changed, 18 insertions, 0 deletions
diff --git a/doc/todo/avoid_unnecessary_union_merges.mdwn b/doc/todo/avoid_unnecessary_union_merges.mdwn
new file mode 100644
index 000000000..67aa28579
--- /dev/null
+++ b/doc/todo/avoid_unnecessary_union_merges.mdwn
@@ -0,0 +1,18 @@
+Some commands cause a union merge unnecessarily. For example, `git annex add`
+modifies the location log, which first requires reading the current log (if
+any), which triggers a merge.
+
+Would be good to avoid these unnecessary union merges. First because it's
+faster and second because it avoids a possible delay when a user might
+ctrl-c and leave the repo in an inconsistent state. In the case of an add,
+the file will be in the annex, but no location log will exist for it (fsck
+fixes that).
+
+It may be that all that's needed is to modify Annex.Branch.change
+to read the current value, without merging. Then commands like `get`, that
+query the branch, will still cause merges, and commands like `add` that
+only modify it, will not. Note that for a command like `get`, the merge
+occurs before it has done anything, so ctrl-c should not be a problem
+there.
+
+This is a delicate change, I need to take care.. --[[Joey]]