aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <junkio@cox.net>2006-03-23 23:49:07 -0800
committerJunio C Hamano <junkio@cox.net>2006-03-23 23:49:07 -0800
commit79f558a5fc1c471e5db926a1272fe930f24784bb (patch)
tree6dd43a8262e61bf2cea75529454f5bc86e57686d
parentbdaa085f8c33e75cf477ff6b4292f35c9c5f4c22 (diff)
parentcb9594e28c940d2bbf4d7fb69c337d27155da37a (diff)
downloadgit-79f558a5fc1c471e5db926a1272fe930f24784bb.tar.gz
git-79f558a5fc1c471e5db926a1272fe930f24784bb.tar.xz
Merge branch 'jc/cvsimport'
* jc/cvsimport: cvsimport: fix reading from rev-parse cvsimport: honor -i and non -i upon subsequent imports
-rwxr-xr-xgit-cvsimport.perl19
1 files changed, 18 insertions, 1 deletions
diff --git a/git-cvsimport.perl b/git-cvsimport.perl
index 02d1928ad..3728294e7 100755
--- a/git-cvsimport.perl
+++ b/git-cvsimport.perl
@@ -453,6 +453,7 @@ chdir($git_tree);
my $last_branch = "";
my $orig_branch = "";
my %branch_date;
+my $tip_at_start = undef;
my $git_dir = $ENV{"GIT_DIR"} || ".git";
$git_dir = getwd()."/".$git_dir unless $git_dir =~ m#^/#;
@@ -487,6 +488,7 @@ unless(-d $git_dir) {
$last_branch = "master";
}
$orig_branch = $last_branch;
+ $tip_at_start = `git-rev-parse --verify HEAD`;
# populate index
system('git-read-tree', $last_branch);
@@ -873,7 +875,22 @@ if (defined $orig_git_index) {
# Now switch back to the branch we were in before all of this happened
if($orig_branch) {
- print "DONE; you may need to merge manually.\n" if $opt_v;
+ print "DONE.\n" if $opt_v;
+ if ($opt_i) {
+ exit 0;
+ }
+ my $tip_at_end = `git-rev-parse --verify HEAD`;
+ if ($tip_at_start ne $tip_at_end) {
+ for ($tip_at_start, $tip_at_end) { chomp; }
+ print "Fetched into the current branch.\n" if $opt_v;
+ system(qw(git-read-tree -u -m),
+ $tip_at_start, $tip_at_end);
+ die "Fast-forward update failed: $?\n" if $?;
+ }
+ else {
+ system(qw(git-merge cvsimport HEAD), "refs/heads/$opt_o");
+ die "Could not merge $opt_o into the current branch.\n" if $?;
+ }
} else {
$orig_branch = "master";
print "DONE; creating $orig_branch branch\n" if $opt_v;