[PATCH] git-cvsimport: fix initial checkout
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