diff options
author | Joey Hess <joey@kitenet.net> | 2012-12-18 17:16:12 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2012-12-18 17:16:12 -0400 |
commit | 20ff17f05aa8f0e553d11e5a3ca714009ce80440 (patch) | |
tree | 6a0a0d589932ba42292c0a107c9a011e91b504b0 /doc/design/assistant | |
parent | ea7dc8c893299331684ac0f68b78e96ad037baef (diff) |
blog for the day
Diffstat (limited to 'doc/design/assistant')
-rw-r--r-- | doc/design/assistant/blog/day_154__direct_mode_merging.mdwn | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/doc/design/assistant/blog/day_154__direct_mode_merging.mdwn b/doc/design/assistant/blog/day_154__direct_mode_merging.mdwn new file mode 100644 index 000000000..c3233c36d --- /dev/null +++ b/doc/design/assistant/blog/day_154__direct_mode_merging.mdwn @@ -0,0 +1,21 @@ +Got merging working in direct mode! + +Basically works as outlined yesterday, although slightly less clumsily. +Since there was already code that ran `git diff-tree` to update the +associated files mappings after a merge, I was able to adapt that same code +to also update the working tree. + +An important invariant for direct mode merges is that they should never +cause annexed objects to be dropped. So if a file is deleted by a merge, +and was a direct mode file that was the only place in the working copy +where an object was stored, the object is moved into `.git/annex/objects`. +This avoids data loss and any need to re-transfer objects after a merge. +It also makes renames and other move complex tree manipulations always end +up with direct mode files, when their content was present. + +Automatic merge conflict resoltion doesn't quite work right yet in direct +mode. + +Direct mode has landed in the `master` branch, but I still consider it +experimental, and of course the assistant still needs to be updated to +support it. |