[PATCH] Use git-for-each-ref to check whether the origin branch exists.
From: Stephan Springl <springl-git@bfw-online.de>
This works in repositories that have their refs packed by "git-pack-refs --all --prune" whereas testing the file $git_dir/refs/heads/$opt_o does not.
Acked-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
---
On Wed, 23 May 2007, Stephan Springl wrote:
> This helps us to use git-cvsimport on our ref-packed
> repositories.
Default for ref-packed repositories is to pack only the tags,
therefore you usually do not need this patch. However, it looks
obviously correct to me. A cursory test also showed that it does
not break anything.
> Maybe you want to use this or a similar solution to be
> integrated in stock git.
Unfortunately your patch is white-space corrupted (it has an extra
space on all lines starting with a space, it seems). Therefore I
redid it with this email.
It would be nice to follow Documentation/SubmittingPatches next
time. For example, I guess that you want to sign off on it...
git-cvsimport.perl | 10 +++++-----
1 files changed, 5 insertions(+), 5 deletions(-)
Show changes to git-cvsimport.perl +5 −5
diff --git a/git-cvsimport.perl b/git-cvsimport.perl
index ac74bc5..f68afe7 100755
--- a/git-cvsimport.perl
+++ b/git-cvsimport.perl
@@ -559,11 +559,6 @@ unless (-d $git_dir) {
$last_branch = $opt_o;
$orig_branch = "";
} else {
- -f "$git_dir/refs/heads/$opt_o"
- or die "Branch '$opt_o' does not exist.\n".
- "Either use the correct '-o branch' option,\n".
- "or import to a new repository.\n";
-
open(F, "git-symbolic-ref HEAD |") or
die "Cannot run git-symbolic-ref: $!\n";
chomp ($last_branch = <F>);
@@ -588,6 +583,11 @@ unless (-d $git_dir) {
$branch_date{$head} = $1;
}
close(H);
+ if (!exists $branch_date{$opt_o}) {
+ die "Branch '$opt_o' does not exist.\n".
+ "Either use the correct '-o branch' option,\n".
+ "or import to a new repository.\n";
+ }
}
-d $git_dir
--
1.5.2.2527.ga2df