diff options
author | Joey Hess <joey@kitenet.net> | 2011-11-12 14:46:32 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2011-11-12 14:46:32 -0400 |
commit | fe4ad93e4a82eabc2300705a8bfc59caaf4814b3 (patch) | |
tree | 7ec48b6f8cf857a4b9f67f1b9676269a1b0eba81 /doc | |
parent | 6e946b9a39f8e5ba55651accbc1307e8cce5c4e2 (diff) |
add
Diffstat (limited to 'doc')
-rw-r--r-- | doc/todo/avoid_unnecessary_union_merges.mdwn | 18 |
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]] |