From: Sven Verdoolaege <skimo@kotnet.org>
To: Matthias Urlichs <smurf@smurf.noris.de>, git@vger.kernel.org
Subject: [PATCH] git-cvsimport-script: use private index.
Date: Mon, 4 Jul 2005 14:13:44 +0200 [thread overview]
Message-ID: <20050704121344.GJ18608MdfPADPa@garage.linux.student.kuleuven.ac.be> (raw)
In-Reply-To: <20050703103517.GJ5992MdfPADPa@garage.linux.student.kuleuven.ac.be>
git-cvsimport-script: use private index.
---
commit 79ee456cf222982f7ee3f003440c57b5f7cffa8b
tree c27c7f8bafa48d81a4d9f7562b851681984a9c7e
parent 2eb6d82eaa869a1faf4ba3326fd628f76f9f93a8
author Sven Verdoolaege <skimo@kotnet.org> Mon, 04 Jul 2005 13:36:59 +0200
committer Sven Verdoolaege <skimo@kotnet.org> Mon, 04 Jul 2005 13:36:59 +0200
git-cvsimport-script | 43 +++++++++++++++++++++++--------------------
1 files changed, 23 insertions(+), 20 deletions(-)
diff --git a/git-cvsimport-script b/git-cvsimport-script
--- a/git-cvsimport-script
+++ b/git-cvsimport-script
@@ -16,6 +16,8 @@
use strict;
use warnings;
use Getopt::Std;
+use File::Spec;
+use File::Temp qw(tempfile);
use File::Path qw(mkpath);
use File::Basename qw(basename dirname);
use Time::Local;
@@ -377,6 +379,12 @@ my %branch_date;
my $git_dir = $ENV{"GIT_DIR"} || ".git";
$git_dir = getwd()."/".$git_dir unless $git_dir =~ m#^/#;
$ENV{"GIT_DIR"} = $git_dir;
+my $orig_git_index;
+$orig_git_index = $ENV{GIT_INDEX_FILE} if exists $ENV{GIT_INDEX_FILE};
+my ($git_ih, $git_index) = tempfile('gitXXXXXX', SUFFIX => '.idx',
+ DIR => File::Spec->tmpdir());
+close ($git_ih);
+$ENV{GIT_INDEX_FILE} = $git_index;
unless(-d $git_dir) {
system("git-init-db");
die "Cannot init the GIT db at $git_tree: $?\n" if $?;
@@ -398,6 +406,9 @@ unless(-d $git_dir) {
}
$orig_branch = $last_branch;
+ # populate index
+ system('git-read-tree', $last_branch);
+
# Get the last import timestamps
opendir(D,"$git_dir/refs/heads");
while(defined(my $head = readdir(D))) {
@@ -643,11 +654,6 @@ while(<CVS>) {
system("git-read-tree","-m","$last_branch","$branch");
die "read-tree failed: $?\n" if $?;
}
- if($branch ne $last_branch) {
- unlink("$git_dir/HEAD");
- symlink("refs/heads/$branch","$git_dir/HEAD");
- $last_branch = $branch;
- }
$state = 9;
} elsif($state == 8) {
$logmsg .= "$_\n";
@@ -686,26 +692,23 @@ while(<CVS>) {
}
&$commit() if $branch and $state != 11;
+unlink($git_index);
+
# Now switch back to the branch we were in before all of this happened
if($orig_branch) {
- print "DONE; switching back to $orig_branch\n" if $opt_v;
+ print "DONE\n" if $opt_v;
} else {
$orig_branch = "master";
print "DONE; creating $orig_branch branch\n" if $opt_v;
system("cp","$git_dir/refs/heads/$opt_o","$git_dir/refs/heads/master")
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 $?;
}
-
-if ($orig_branch) {
- system("git-read-tree",$last_branch);
- die "read-tree failed: $?\n" if $?;
-} else {
- system('git-read-tree', $orig_branch);
- die "read-tree failed: $?\n" if $?;
- system('git-checkout-cache', '-a');
- die "checkout-cache failed: $?\n" if $?;
-}
-
-unlink("$git_dir/HEAD");
-symlink("refs/heads/$orig_branch","$git_dir/HEAD");
-
next prev parent reply other threads:[~2005-07-04 12:32 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-06-28 19:23 [PATCH] cvsimport: rewritten in Perl Matthias Urlichs
2005-06-29 15:06 ` Nicolas Pitre
2005-06-29 20:40 ` Matthias Urlichs
2005-06-30 10:30 ` Matthias Urlichs
2005-06-30 16:48 ` Nicolas Pitre
2005-06-30 10:34 ` [PATCH] cvsimport-in-Perl: Limit the number of arguments to git-update-cache Matthias Urlichs
2005-06-30 16:54 ` Nicolas Pitre
2005-06-30 17:15 ` Nicolas Pitre
2005-06-30 18:02 ` Matthias Urlichs
2005-06-30 14:55 ` [PATCH] cvsimport: perform string comparison on "HEAD" Sven Verdoolaege
2005-06-30 15:21 ` Matthias Urlichs
2005-06-30 16:38 ` [PATCH] cvsimport: Limit the log string to 32k Matthias Urlichs
2005-06-30 15:02 ` [PATCH] cvsimport: rewritten in Perl Sven Verdoolaege
2005-06-30 15:21 ` Matthias Urlichs
2005-06-30 15:44 ` Sven Verdoolaege
2005-06-30 16:10 ` Matthias Urlichs
2005-06-30 16:14 ` Sven Verdoolaege
2005-06-30 16:30 ` Matthias Urlichs
2005-06-30 17:22 ` Nicolas Pitre
2005-07-01 9:43 ` Matthias Urlichs
2005-07-03 10:35 ` Sven Verdoolaege
2005-07-03 10:36 ` [PATCH] Make specification of CVS module to convert optional Sven Verdoolaege
2005-07-03 10:37 ` git-cvsimport-script: clean up documentation Sven Verdoolaege
2005-07-03 11:37 ` git-cvsimport-script: Honour CVS_SERVER Sven Verdoolaege
2005-07-03 11:38 ` [PATCH] git-cvsimport-script: Support :ext: access method Sven Verdoolaege
2005-07-03 12:21 ` cvsimport: rewritten in Perl Sven Verdoolaege
2005-07-03 13:44 ` Matthias Urlichs
2005-07-05 23:02 ` Wolfgang Denk
2005-07-06 2:41 ` Linus Torvalds
2005-07-06 6:37 ` Sven Verdoolaege
2005-07-06 7:32 ` Matthias Urlichs
2005-07-06 10:24 ` Wolfgang Denk
2005-07-04 12:13 ` [PATCH] git-cvsimport-script: leave working directory alone Sven Verdoolaege
2005-07-04 12:13 ` Sven Verdoolaege [this message]
2005-07-04 14:06 ` [PATCH] git-cvsimport-script: fix branch switching Sven Verdoolaege
2005-07-04 14:09 ` [PATCH] git-cvsimport-script: update cvsps cache instead of rebuilding it Sven Verdoolaege
2005-06-30 19:38 ` [PATCH] cvsimport: rewritten in Perl Sven Verdoolaege
2005-06-30 21:00 ` Matthias Urlichs
2005-07-01 7:01 ` Sven Verdoolaege
2005-07-01 7:25 ` Matthias Urlichs
2005-07-04 13:03 ` Sven Verdoolaege
2005-07-04 13:53 ` Matthias Urlichs
2005-07-04 13:46 ` Sven Verdoolaege
2005-07-04 14:36 ` Matthias Urlichs
2005-07-04 15:52 ` Sven Verdoolaege
2005-07-03 23:03 ` Sven Verdoolaege
2005-07-04 1:49 ` Matthias Urlichs
2005-07-04 10:47 ` Sven Verdoolaege
2005-06-30 18:48 ` Stephen C. Tweedie
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20050704121344.GJ18608MdfPADPa@garage.linux.student.kuleuven.ac.be \
--to=skimo@kotnet.org \
--cc=git@vger.kernel.org \
--cc=skimo@liacs.nl \
--cc=smurf@smurf.noris.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).