From 661c79f7d0175a017e8f345b09ae13ebdfbf9022 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Mon, 10 Oct 2016 15:00:45 -0400 Subject: sync: Fix bug in adjusted branch merging that could cause recently added files to be lost when updating the adjusted branch. The modification flag was not being set when making modifications deep in a tree, so parent trees were not updated to contain the modified tree. Seems to have exposed another bug where the wrong filename gets grafted in. This commit was sponsored by Brock Spratlen on Patreon. --- ...adjusted_branch_deleted_recently_added_files.mdwn | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'doc') diff --git a/doc/bugs/sync_in_adjusted_branch_deleted_recently_added_files.mdwn b/doc/bugs/sync_in_adjusted_branch_deleted_recently_added_files.mdwn index 8c4425f8b..ce271d8dd 100644 --- a/doc/bugs/sync_in_adjusted_branch_deleted_recently_added_files.mdwn +++ b/doc/bugs/sync_in_adjusted_branch_deleted_recently_added_files.mdwn @@ -57,4 +57,24 @@ addtreeitems are in a deep subdirectory, it seems to not be adding them into the tree. This happens in simpler test cases, so something about this particular tree is breaking the code. +---- + +Ok, think I found the bug. In Git.Tree.adjustTree, it grafts in the new +tree items, but it can forget that it needed to modify the tree, which +prevents the change from propigating up from the subtree to the root, and +so it gets left out of the reverse adjusted commit. + +I'm committing a fix, but this needs a test case. Leaving bug open for +that. + +With the fix, when I git annex sync in felix's tree, the files that +were getting wrongly deleted are added. The commit summary shows +that git thinks those files were renamed: + + rename 2016/xxx xxx und yyy/{ => 2016/xxx xxx und yyy}/zzz/P1230949.JPG (100%) + +This seems wrong. I think this is a separate bug that was hidden +by the other one, it's grafting in files using their whole path, +to a subtree that is itself part way down that path. + --[[Joey]] -- cgit v1.2.3