Re: [PATCH 1/2] fast-import: filemodify after M 040000 <tree> "" crashes
- From
Jonathan Nieder <jrnieder@gmail.com>
- Date
- Oct 18, 2010, 01:44 UTC
- Message-ID
- <20101018014404.GD25524@burratino>
- In-Reply-To
- <AANLkTik3iSSzKCxi9aeNw+ATPXvTN6yw-=NDGtqCidce@mail.gmail.com>
Sverre Rabbelier wrote:
> On Sun, Oct 17, 2010 at 20:03, Jonathan Nieder <jrnieder@gmail.com> wrote:
Show 8 quoted lines
>> 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@gmail.com> --- 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