From: Sergey Vlasov Date: Sat, 24 Jun 2006 13:06:38 GMT Subject: Re: [PATCH] cvsimport: setup indexes correctly for ancestors and incremental imports Message-ID: <20060624170638.6f127420.vsu@altlinux.ru> In-Reply-To: <11511475882820-git-send-email-martin@catalyst.net.nz> On Sat, 24 Jun 2006 23:13:08 +1200 Martin Langhoff wrote: > Two bugs had slipped in the "keep one index per branch during import" > patch. Both incremental imports and new branches would see an > empty tree for their initial commit. Now we cover all the relevant > cases, checking whether we actually need to setup the index before > preparing the actual commit, and doing it. > > Signed-off-by: Martin Langhoff > > --- > git-cvsimport.perl | 19 +++++++++++++++++-- > 1 files changed, 17 insertions(+), 2 deletions(-) > > diff --git a/git-cvsimport.perl b/git-cvsimport.perl > old mode 100644 > new mode 100755 > index d961b7b..1c1fd02 > --- a/git-cvsimport.perl > +++ b/git-cvsimport.perl > @@ -813,11 +813,26 @@ while() { > unless ($index{$branch}) { > $index{$branch} = tmpnam(); > $ENV{GIT_INDEX_FILE} = $index{$branch}; > - system("git-read-tree", $branch); > + } > + if ($ancestor) { > + system("git-read-tree", $ancestor); > die "read-tree failed: $?\n" if $?; > } else { > + unless ($index{$branch}) { This seems to be dead code - even if $index{$branch} was not set, it will be set inside "unless ($index{$branch})" above. Or there is another bug here? > + $index{$branch} = tmpnam(); > + $ENV{GIT_INDEX_FILE} = $index{$branch}; > + system("git-read-tree", $branch); > + die "read-tree failed: $?\n" if $?; > + } > + } > + } else { > + # just in case > + unless ($index{$branch}) { > + $index{$branch} = tmpnam(); > $ENV{GIT_INDEX_FILE} = $index{$branch}; > - } > + system("git-read-tree", $branch); > + die "read-tree failed: $?\n" if $?; > + } > } > $last_branch = $branch if $branch ne $last_branch; > $state = 9;