[PATCH] git-cvsimport: fix initial checkout
From: Marc-Andre Lureau <hidden>
Date: 2016-06-15 22:44:22
Subsystem:
the rest · Maintainer:
Linus Torvalds
git-symbolic-ref HEAD returns master reference, even if the file does not exists. That prevents the initial checkout and fails in git-rev-parse. The patch checks the existence of the reference file before assuming an original branch exists. There might be better solutions than checking file existence. --- git-cvsimport.perl | 11 ++++++++--- 1 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/git-cvsimport.perl b/git-cvsimport.perl
index 95c5eec..1512fe4 100755
--- a/git-cvsimport.perl
+++ b/git-cvsimport.perl@@ -570,12 +570,16 @@ unless (-d $git_dir) { 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) { + if (-f "$git_dir/$last_branch") { + $last_branch = basename($last_branch); + unless ($last_branch) { warn "Cannot read the last branch name: $! -- assuming 'master'\n"; $last_branch = "master"; + } + } else { + $last_branch = ""; } + close(F); $orig_branch = $last_branch; $tip_at_start = `git-rev-parse --verify HEAD`;
@@ -953,6 +957,7 @@ while (<CVS>) { print "* UNKNOWN LINE * $_\n"; } } + commit() if $branch and $state != 11; unless ($opt_P) {
--
1.5.4.4.534.gfb90c.dirty