recently I did a merge where a complete repo shall be
merged into a specific directory of another repo. I
tried both the "subtree" merge strategy and the option
"-Xsubtree=<dir>" of "recursive". I noticed that in both
cases somehow the history of single files were lost
during these merges (with history I mean 'git log <file>'
and 'git log --follow <file>'). I've worked around this
by merging without 'subtree' and moving the dirs/files
manually. In this case the file history was there.

I've added a test case below for that behaviour. It doesn't
catch "-S recursive -Xsubtree=<dir>" but it should show
the issue (hopefully:).

 t/t6029-merge-subtree.sh | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/t/t6029-merge-subtree.sh b/t/t6029-merge-subtree.sh
index 73fc240..e9a97d7 100755
--- a/t/t6029-merge-subtree.sh
+++ b/t/t6029-merge-subtree.sh
@@ -61,6 +61,14 @@ test_expect_success 'initial merge' '
        test_cmp expected actual
+test_expect_failure 'file keeps history after subtree merge' '
+       cd ../git-gui &&
+       git log --follow git-gui.sh >../git/expected &&
+       cd ../git &&
+       git log --follow git-gui/git-gui.sh >actual &&
+       test_cmp expected actual
 test_expect_success 'merge update' '
        cd ../git-gui &&
        echo git-gui2 > git-gui.sh &&

To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to