summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: fc6e714)
raw | patch | inline | side by side (parent: fc6e714)
author | Sven Verdoolaege <skimo@kotnet.org> | |
Tue, 5 Jul 2005 11:19:59 +0000 (13:19 +0200) | ||
committer | Sven Verdoolaege <skimo@kotnet.org> | |
Tue, 5 Jul 2005 11:19:59 +0000 (13:19 +0200) |
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.
working directory forward to the tip of the branch.
Additionally, if master and "origin" are equal,
move master forward to new origin first.
git-cvsimport-script | patch | blob | history |
diff --git a/git-cvsimport-script b/git-cvsimport-script
index 3e6d22e74201360fd7520f7b52e91d76e4065572..cdf989161435fd9bbc4791ae4a227be199b6dfae 100755 (executable)
--- a/git-cvsimport-script
+++ b/git-cvsimport-script
my $last_branch = "";
my $orig_branch = "";
+my $forward_master = 0;
my %branch_date;
my $git_dir = $ENV{"GIT_DIR"} || ".git";
$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);
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;
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");