diff options
author | Joey Hess <joey@kitenet.net> | 2011-11-12 15:15:57 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2011-11-12 15:15:57 -0400 |
commit | e9bfa8eaed3ff59a4c0bc8d4d677bc493177807c (patch) | |
tree | a15071e2cf3c25e35247940dcb33ca2dbdcd1fe1 /Options.hs | |
parent | 897bf938f687c1bd9fcfa0097b65708cf0891041 (diff) |
avoid unnecessary auto-merge when only changing a file in the branch.
Avoids doing auto-merging in commands that don't need fully current
information from the git-annex branch. In particular, git annex add no
longer needs to auto-merge. Affected commands: Anything that doesn't
look up data from the branch, but does write a change to it.
It might seem counterintuitive that we can change a value without first
making sure we have the current value. This optimisation works because
these two sequences are equivilant:
1. pull from remote
2. union merge
3. read file from branch
4. modify file and write to branch
vs.
1. read file from branch
2. modify file and write to branch
3. pull from remote
4. union merge
After either sequence, the git-annex branch contains the same logical content
for the modified file. (Possibly with lines in a different order or
additional old lines of course).
Diffstat (limited to 'Options.hs')
0 files changed, 0 insertions, 0 deletions