From 20ff17f05aa8f0e553d11e5a3ca714009ce80440 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Tue, 18 Dec 2012 17:16:12 -0400 Subject: blog for the day --- .../blog/day_154__direct_mode_merging.mdwn | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 doc/design/assistant/blog/day_154__direct_mode_merging.mdwn (limited to 'doc/design/assistant/blog/day_154__direct_mode_merging.mdwn') 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. -- cgit v1.2.3