git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
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");
-

  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).