Re: [PATCH] symref support for import scripts
- From
Junio C Hamano <junkio@cox.net>
- Date
- Nov 16, 2005, 19:43 UTC
- Message-ID
- <7vu0ec7502.fsf@assigned-by-dhcp.cox.net>
- In-Reply-To
- <1132165648.4024.6.camel@dv>
Pavel Roskin <proski@gnu.org> writes:
> Fix git import script not to assume that .git/HEAD is a symlink. > > Signed-off-by: Pavel Roskin <proski@gnu.org>
Thanks.
Martin and Matthias, are these OK with you two? All of the changes look trivially correct, so I'll take them.
Show 17 quoted lines
> 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 = <F>);
> + $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.