On Wed, Nov 28, 2007 at 07:16:36PM +0000, Johannes Schindelin wrote: > > -sub get_headref ($$) { > > - my $name = shift; > > - my $git_dir = shift; > > - > > - my $f = "$git_dir/$remote/$name"; > > - if (open(my $fh, $f)) { > > - chomp(my $r = <$fh>); > > - is_sha1($r) or die "Cannot get head id for $name ($r): $!"; > > - return $r; > > - } > > - die "unable to open $f: $!" unless $! == POSIX::ENOENT; > > - return undef; > > +sub get_headref ($) { > > + my $name = shift; > > + my $r = `git show-ref -s '$name'`; > > + return undef unless $? == 0; > > + chomp $r; > > + return $r; > > } > > Where has $remote gone? Gah, thank you. Obviously I deleted it without looking when I removed the now-unnecessary $git_dir. However, let me put a curse on whoever is responsible for randomly using "$remote" as a global in this function, when all of the other parameters (including the obvious-candidate-for-a-global $git_dir) are passed in. Since get_headref is useful in contexts where "$remote" is not always prepended (see patch 3/3), I think the best solution is: diff --git a/git-cvsimport.perl b/git-cvsimport.perl index 1b5f187..bbf9799 100755 --- a/git-cvsimport.perl +++ b/git-cvsimport.perl @@ -692,7 +692,8 @@ my (@old,@new,@skipped,%ignorebranch); $ignorebranch{'#CVSPS_NO_BRANCH'} = 1; sub commit { - if ($branch eq $opt_o && !$index{branch} && !get_headref($branch)) { + if ($branch eq $opt_o && !$index{branch} && + !get_headref("$remote/$branch")) { # looks like an initial commit # use the index primed by git-init $ENV{GIT_INDEX_FILE} = "$git_dir/index"; @@ -716,7 +717,7 @@ sub commit { update_index(@old, @new); @old = @new = (); my $tree = write_tree(); - my $parent = get_headref($last_branch); + my $parent = get_headref("$remote/$last_branch"); print "Parent ID " . ($parent ? $parent : "(empty)") . "\n" if $opt_v; my @commit_args; @@ -727,7 +728,7 @@ sub commit { foreach my $rx (@mergerx) { next unless $logmsg =~ $rx && $1; my $mparent = $1 eq 'HEAD' ? $opt_o : $1; - if (my $sha1 = get_headref($mparent)) { + if (my $sha1 = get_headref("$remote/$mparent")) { push @commit_args, '-p', $mparent; print "Merge parent branch: $mparent\n" if $opt_v; } - 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