blog for the day
This commit is contained in:
parent
05ec4587dd
commit
acb285d324
1 changed files with 21 additions and 0 deletions
21
doc/design/assistant/blog/day_154__direct_mode_merging.mdwn
Normal file
21
doc/design/assistant/blog/day_154__direct_mode_merging.mdwn
Normal file
|
@ -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.
|
Loading…
Add table
Add a link
Reference in a new issue