Ralf Thielow <ralf.thie...@gmail.com> writes: > Hi, > > 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>').
This is a known bug of "git log --follow": it does not follow accross subtree merge. But your history is still there (try gitk on your project for example). Technically, a subtree merge is a merge commit in which files are renamed compared to the second parent. --follow does not manage this case. > 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 > +' > + That would actually be good to add a failing test to "document" the failure. -- Matthieu Moy http://www-verimag.imag.fr/~moy/ -- 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