summaryrefslogtreecommitdiff
path: root/git-cvsimport-script
diff options
context:
space:
mode:
authorSven Verdoolaege <skimo@kotnet.org>2005-07-05 11:19:59 (GMT)
committerSven Verdoolaege <skimo@kotnet.org>2005-07-05 11:19:59 (GMT)
commit210569f9aecee4d41420b9d9c8780f5c6bbee3cc (patch)
tree811eb7539083fc0a19cd8b6171643f6cbd304bb0 /git-cvsimport-script
parentfc6e714c838846aad566528f6ada904651c514f9 (diff)
downloadgit-210569f9aecee4d41420b9d9c8780f5c6bbee3cc.zip
git-210569f9aecee4d41420b9d9c8780f5c6bbee3cc.tar.gz
git-210569f9aecee4d41420b9d9c8780f5c6bbee3cc.tar.bz2
git-cvsimport-script: move working directory forward
If HEAD happened to point to a cvs branch, move the working directory forward to the tip of the branch. Additionally, if master and "origin" are equal, move master forward to new origin first.
Diffstat (limited to 'git-cvsimport-script')
-rwxr-xr-xgit-cvsimport-script32
1 files changed, 27 insertions, 5 deletions
diff --git a/git-cvsimport-script b/git-cvsimport-script
index 3e6d22e..cdf9891 100755
--- a/git-cvsimport-script
+++ b/git-cvsimport-script
@@ -372,6 +372,7 @@ chdir($git_tree);
my $last_branch = "";
my $orig_branch = "";
+my $forward_master = 0;
my %branch_date;
my $git_dir = $ENV{"GIT_DIR"} || ".git";
@@ -403,6 +404,21 @@ unless(-d $git_dir) {
$last_branch = "master";
}
$orig_branch = $last_branch;
+ if (-f "$git_dir/CVS2GIT_HEAD") {
+ die <<EOM;
+CVS2GIT_HEAD exists.
+Make sure your working directory corresponds to HEAD and remove CVS2GIT_HEAD.
+You may need to run
+
+ git-read-tree -m -u CVS2GIT_HEAD HEAD
+EOM
+ }
+ system('cp', "$git_dir/HEAD", "$git_dir/CVS2GIT_HEAD");
+
+ $forward_master =
+ $opt_o ne 'master' && -f "$git_dir/refs/heads/master" &&
+ system('cmp', '-s', "$git_dir/refs/heads/master",
+ "$git_dir/refs/heads/$opt_o") == 0;
# populate index
system('git-read-tree', $last_branch);
@@ -695,9 +711,19 @@ while(<CVS>) {
unlink($git_index);
+if (defined $orig_git_index) {
+ $ENV{GIT_INDEX_FILE} = $orig_git_index;
+} else {
+ delete $ENV{GIT_INDEX_FILE};
+}
+
# Now switch back to the branch we were in before all of this happened
if($orig_branch) {
print "DONE\n" if $opt_v;
+ system("cp","$git_dir/refs/heads/$opt_o","$git_dir/refs/heads/master")
+ if $forward_master;
+ system('git-read-tree', '-m', '-u', 'CVS2GIT_HEAD', 'HEAD');
+ die "read-tree failed: $?\n" if $?;
} else {
$orig_branch = "master";
print "DONE; creating $orig_branch branch\n" if $opt_v;
@@ -705,11 +731,7 @@ if($orig_branch) {
unless -f "$git_dir/refs/heads/master";
unlink("$git_dir/HEAD");
symlink("refs/heads/$orig_branch","$git_dir/HEAD");
- if (defined $orig_git_index) {
- $ENV{GIT_INDEX_FILE} = $orig_git_index;
- } else {
- delete $ENV{GIT_INDEX_FILE};
- }
system('git checkout');
die "checkout failed: $?\n" if $?;
}
+unlink("$git_dir/CVS2GIT_HEAD");