From: Junio C Hamano Date: Wed, 16 Nov 2005 19:43:41 GMT Subject: Re: [PATCH] symref support for import scripts Message-ID: <7vu0ec7502.fsf@assigned-by-dhcp.cox.net> In-Reply-To: <1132165648.4024.6.camel@dv> Pavel Roskin writes: > Fix git import script not to assume that .git/HEAD is a symlink. > > Signed-off-by: Pavel Roskin Thanks. Martin and Matthias, are these OK with you two? All of the changes look trivially correct, so I'll take them. > diff --git a/git-cvsimport.perl b/git-cvsimport.perl > index 7bd9136..efe1934 100755 > --- a/git-cvsimport.perl > +++ b/git-cvsimport.perl > @@ -437,7 +437,11 @@ unless(-d $git_dir) { > "Either use the correct '-o branch' option,\n". > "or import to a new repository.\n"; > > - $last_branch = basename(readlink("$git_dir/HEAD")); > + open(F, "git-symbolic-ref HEAD |") or > + die "Cannot run git-symbolic-ref: $!\n"; > + chomp ($last_branch = ); > + $last_branch = basename($last_branch); > + close(F); > unless($last_branch) { > warn "Cannot read the last branch name: $! -- assuming 'master'\n"; > $last_branch = "master"; This part, before or after Pavel's fixes, seems to refuse a branch named 'topic/#1'. This is not a problem for import scripts that name their own branches based on what is in the foreign SCM and flatten their the branch namespaces, but I'd prefer a comment about the issue somewhere around this code, to prevent people from copying and pasting the use of "basename()". There is a corresponding piece in svnimport as well.