Sverre Rabbelier wrote: > On Sun, Oct 17, 2010 at 20:03, Jonathan Nieder <jrnieder@xxxxxxxxx> wrote: >> Â Â Â ÂM 040000 <tree> "" >> Â Â Â ÂM 100644 :1 "foo" >> >> and similar commands (using D, C, or R after resetting the root >> tree) segfault. > > I'm curious, how come this not found earlier? Would seem like a fairly > regular operation? Sure, though that isn't what the feature has been used for so far. Hooray for tests. :) -- 8< -- Subject: t9300 (fast-import): another test for the "replace root" feature Another test for the replace root feature. One can imagine an implementation for which R "some/subdir" "" would free some state associated to the subdir and leave fast-import confused. Luckily, git's is not such an implementation. While at it, change the previous test to use C "some/subdir" "" instead of R (i.e., test both syntaxes). Signed-off-by: Jonathan Nieder <jrnieder@xxxxxxxxx> --- t/t9300-fast-import.sh | 43 ++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 42 insertions(+), 1 deletions(-) diff --git a/t/t9300-fast-import.sh b/t/t9300-fast-import.sh index ce09457..dd90a09 100755 --- a/t/t9300-fast-import.sh +++ b/t/t9300-fast-import.sh @@ -990,11 +990,52 @@ test_expect_success \ COMMIT M 040000 $branch "" - R "newdir" "" + C "newdir" "" INPUT_END git fast-import <input && git diff --exit-code branch:newdir N9' +test_expect_success \ + 'N: modify subtree, extract it, and modify again' \ + 'echo hello >expect.baz && + echo hello, world >expect.qux && + git fast-import <<-SETUP_END && + commit refs/heads/N10 + committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE + data <<COMMIT + hello, tree + COMMIT + + deleteall + M 644 inline foo/bar/baz + data <<EOF + hello + EOF + SETUP_END + + tree=$(git rev-parse --verify N10:) && + git fast-import <<-INPUT_END && + commit refs/heads/N11 + committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE + data <<COMMIT + copy to root by id and modify + COMMIT + + M 040000 $tree "" + M 100644 inline foo/bar/qux + data <<EOF + hello, world + EOF + R "foo" "" + C "bar/qux" "bar/quux" + INPUT_END + git show N11:bar/baz >actual.baz && + git show N11:bar/qux >actual.qux && + git show N11:bar/quux >actual.quux && + test_cmp expect.baz actual.baz && + test_cmp expect.qux actual.qux && + test_cmp expect.qux actual.quux' + ### ### series O ### -- 1.7.2.3 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html