All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/3] git-cvsexportcommit.perl tabified
@ 2007-10-16  8:08 Michael Witten
  2007-10-16  8:08 ` [PATCH 2/3] git-cvsexportcommit.perl tmpdir removed Michael Witten
  0 siblings, 1 reply; 13+ messages in thread
From: Michael Witten @ 2007-10-16  8:08 UTC (permalink / raw)
  To: git; +Cc: Michael Witten

Signed-off-by: Michael Witten <mfwitten@mit.edu>
---
    This patch attempts to tabify this code.
    Please be gentle, this is my second time
    submitting a patch.

 git-cvsexportcommit.perl |  284 +++++++++++++++++++++++-----------------------
 1 files changed, 141 insertions(+), 143 deletions(-)

diff --git a/git-cvsexportcommit.perl b/git-cvsexportcommit.perl
index a33fa8d..b330c3d 100755
--- a/git-cvsexportcommit.perl
+++ b/git-cvsexportcommit.perl
@@ -12,7 +12,7 @@ use Data::Dumper;
 use File::Basename qw(basename dirname);
 
 unless ($ENV{GIT_DIR} && -r $ENV{GIT_DIR}){
-    die "GIT_DIR is not defined or is unreadable";
+	die "GIT_DIR is not defined or is unreadable";
 }
 
 our ($opt_h, $opt_P, $opt_p, $opt_v, $opt_c, $opt_f, $opt_a, $opt_m, $opt_d, $opt_u);
@@ -25,15 +25,13 @@ die "Need at least one commit identifier!" unless @ARGV;
 
 my @cvs;
 if ($opt_d) {
-	@cvs = ('cvs', '-d', $opt_d);
+		@cvs = ('cvs', '-d', $opt_d);
 } else {
-	@cvs = ('cvs');
+		@cvs = ('cvs');
 }
 
 # setup a tempdir
-our ($tmpdir, $tmpdirname) = tempdir('git-cvsapplycommit-XXXXXX',
-				     TMPDIR => 1,
-				     CLEANUP => 1);
+our ($tmpdir, $tmpdirname) = tempdir('git-cvsapplycommit-XXXXXX', TMPDIR => 1, CLEANUP => 1);
 
 # resolve target commit
 my $commit;
@@ -41,18 +39,18 @@ $commit = pop @ARGV;
 $commit = safe_pipe_capture('git-rev-parse', '--verify', "$commit^0");
 chomp $commit;
 if ($?) {
-    die "The commit reference $commit did not resolve!";
+	die "The commit reference $commit did not resolve!";
 }
 
 # resolve what parent we want
 my $parent;
 if (@ARGV) {
-    $parent = pop @ARGV;
-    $parent =  safe_pipe_capture('git-rev-parse', '--verify', "$parent^0");
-    chomp $parent;
-    if ($?) {
-	die "The parent reference did not resolve!";
-    }
+	$parent = pop @ARGV;
+	$parent =  safe_pipe_capture('git-rev-parse', '--verify', "$parent^0");
+	chomp $parent;
+	if ($?) {
+		die "The parent reference did not resolve!";
+	}
 }
 
 # find parents from the commit itself
@@ -65,44 +63,44 @@ my $title;
 my $msg = '';
 
 foreach my $line (@commit) {
-    chomp $line;
-    if ($stage eq 'headers' && $line eq '') {
-	$stage = 'msg';
-	next;
-    }
-
-    if ($stage eq 'headers') {
-	if ($line =~ m/^parent (\w{40})$/) { # found a parent
-	    push @parents, $1;
-	} elsif ($line =~ m/^author (.+) \d+ [-+]\d+$/) {
-	    $author = $1;
-	} elsif ($line =~ m/^committer (.+) \d+ [-+]\d+$/) {
-	    $committer = $1;
+	chomp $line;
+	if ($stage eq 'headers' && $line eq '') {
+		$stage = 'msg';
+		next;
 	}
-    } else {
-	$msg .= $line . "\n";
-	unless ($title) {
-	    $title = $line;
+
+	if ($stage eq 'headers') {
+		if ($line =~ m/^parent (\w{40})$/) { # found a parent
+			push @parents, $1;
+		} elsif ($line =~ m/^author (.+) \d+ [-+]\d+$/) {
+			$author = $1;
+		} elsif ($line =~ m/^committer (.+) \d+ [-+]\d+$/) {
+			$committer = $1;
+		}
+	} else {
+		$msg .= $line . "\n";
+		unless ($title) {
+			$title = $line;
+		}
 	}
-    }
 }
 
 if ($parent) {
-    my $found;
-    # double check that it's a valid parent
-    foreach my $p (@parents) {
-	if ($p eq $parent) {
-	    $found = 1;
-	    last;
-	}; # found it
-    }
-    die "Did not find $parent in the parents for this commit!" if !$found and !$opt_P;
+	my $found;
+	# double check that it's a valid parent
+	foreach my $p (@parents) {
+		if ($p eq $parent) {
+			$found = 1;
+			last;
+		}; # found it
+	}
+	die "Did not find $parent in the parents for this commit!" if !$found and !$opt_P;
 } else { # we don't have a parent from the cmdline...
-    if (@parents == 1) { # it's safe to get it from the commit
-	$parent = $parents[0];
-    } else { # or perhaps not!
-	die "This commit has more than one parent -- please name the parent you want to use explicitly";
-    }
+	if (@parents == 1) { # it's safe to get it from the commit
+		$parent = $parents[0];
+	} else { # or perhaps not!
+		die "This commit has more than one parent -- please name the parent you want to use explicitly";
+	}
 }
 
 $opt_v && print "Applying to CVS commit $commit from parent $parent\n";
@@ -110,14 +108,14 @@ $opt_v && print "Applying to CVS commit $commit from parent $parent\n";
 # grab the commit message
 open(MSG, ">.msg") or die "Cannot open .msg for writing";
 if ($opt_m) {
-    print MSG $opt_m;
+	print MSG $opt_m;
 }
 print MSG $msg;
 if ($opt_a) {
-    print MSG "\n\nAuthor: $author\n";
-    if ($author ne $committer) {
-	print MSG "Committer: $committer\n";
-    }
+	print MSG "\n\nAuthor: $author\n";
+	if ($author ne $committer) {
+		print MSG "Committer: $committer\n";
+	}
 }
 close MSG;
 
@@ -153,70 +151,70 @@ map { s/\\([0-7]{3})/sprintf('%c',oct $1)/eg } @bfiles,@files;
 my $dirty;
 my @dirs;
 foreach my $p (@afiles) {
-    my $path = dirname $p;
-    while (!-d $path and ! grep { $_ eq $path } @dirs) {
-	unshift @dirs, $path;
-	$path = dirname $path;
-    }
+	my $path = dirname $p;
+	while (!-d $path and ! grep { $_ eq $path } @dirs) {
+		unshift @dirs, $path;
+		$path = dirname $path;
+	}
 }
 
 # ... check dirs,
 foreach my $d (@dirs) {
-    if (-e $d) {
-	$dirty = 1;
-	warn "$d exists and is not a directory!\n";
-    }
+	if (-e $d) {
+		$dirty = 1;
+		warn "$d exists and is not a directory!\n";
+	}
 }
 
 # ... query status of all files that we have a directory for and parse output of 'cvs status' to %cvsstat.
 my @canstatusfiles;
 foreach my $f (@files) {
-    my $path = dirname $f;
-    next if (grep { $_ eq $path } @dirs);
-    push @canstatusfiles, $f;
+	my $path = dirname $f;
+	next if (grep { $_ eq $path } @dirs);
+	push @canstatusfiles, $f;
 }
 
 my %cvsstat;
 if (@canstatusfiles) {
-    if ($opt_u) {
-      my @updated = safe_pipe_capture(@cvs, 'update', @canstatusfiles);
-      print @updated;
-    }
-    my @cvsoutput;
-    @cvsoutput= safe_pipe_capture(@cvs, 'status', @canstatusfiles);
-    my $matchcount = 0;
-    foreach my $l (@cvsoutput) {
-        chomp $l;
-        if ( $l =~ /^File:/ and  $l =~ /Status: (.*)$/ ) {
-            $cvsstat{$canstatusfiles[$matchcount]} = $1;
-            $matchcount++;
-        }
-    }
+	if ($opt_u) {
+	  my @updated = safe_pipe_capture(@cvs, 'update', @canstatusfiles);
+	  print @updated;
+	}
+	my @cvsoutput;
+	@cvsoutput= safe_pipe_capture(@cvs, 'status', @canstatusfiles);
+	my $matchcount = 0;
+	foreach my $l (@cvsoutput) {
+		chomp $l;
+		if ( $l =~ /^File:/ and  $l =~ /Status: (.*)$/ ) {
+			$cvsstat{$canstatusfiles[$matchcount]} = $1;
+			$matchcount++;
+		}
+	}
 }
 
 # ... validate new files,
 foreach my $f (@afiles) {
-    if (defined ($cvsstat{$f}) and $cvsstat{$f} ne "Unknown") {
-	$dirty = 1;
-	warn "File $f is already known in your CVS checkout -- perhaps it has been added by another user. Or this may indicate that it exists on a different branch. If this is the case, use -f to force the merge.\n";
-	warn "Status was: $cvsstat{$f}\n";
-    }
+	if (defined ($cvsstat{$f}) and $cvsstat{$f} ne "Unknown") {
+		$dirty = 1;
+		warn "File $f is already known in your CVS checkout -- perhaps it has been added by another user. Or this may indicate that it exists on a different branch. If this is the case, use -f to force the merge.\n";
+		warn "Status was: $cvsstat{$f}\n";
+	}
 }
 # ... validate known files.
 foreach my $f (@files) {
-    next if grep { $_ eq $f } @afiles;
-    # TODO:we need to handle removed in cvs
-    unless (defined ($cvsstat{$f}) and $cvsstat{$f} eq "Up-to-date") {
-	$dirty = 1;
-	warn "File $f not up to date but has status '$cvsstat{$f}' in your CVS checkout!\n";
-    }
+	next if grep { $_ eq $f } @afiles;
+	# TODO:we need to handle removed in cvs
+	unless (defined ($cvsstat{$f}) and $cvsstat{$f} eq "Up-to-date") {
+		$dirty = 1;
+		warn "File $f not up to date but has status '$cvsstat{$f}' in your CVS checkout!\n";
+	}
 }
 if ($dirty) {
-    if ($opt_f) {	warn "The tree is not clean -- forced merge\n";
-	$dirty = 0;
-    } else {
-	die "Exiting: your CVS tree is not clean for this merge.";
-    }
+	if ($opt_f) {		warn "The tree is not clean -- forced merge\n";
+		$dirty = 0;
+	} else {
+		die "Exiting: your CVS tree is not clean for this merge.";
+	}
 }
 
 print "Applying\n";
@@ -225,30 +223,30 @@ print "Applying\n";
 print "Patch applied successfully. Adding new files and directories to CVS\n";
 my $dirtypatch = 0;
 foreach my $d (@dirs) {
-    if (system(@cvs,'add',$d)) {
-	$dirtypatch = 1;
-	warn "Failed to cvs add directory $d -- you may need to do it manually";
-    }
+	if (system(@cvs,'add',$d)) {
+		$dirtypatch = 1;
+		warn "Failed to cvs add directory $d -- you may need to do it manually";
+	}
 }
 
 foreach my $f (@afiles) {
-    if (grep { $_ eq $f } @bfiles) {
-      system(@cvs, 'add','-kb',$f);
-    } else {
-      system(@cvs, 'add', $f);
-    }
-    if ($?) {
-	$dirtypatch = 1;
-	warn "Failed to cvs add $f -- you may need to do it manually";
-    }
+	if (grep { $_ eq $f } @bfiles) {
+		system(@cvs, 'add','-kb',$f);
+	} else {
+		system(@cvs, 'add', $f);
+	}
+	if ($?) {
+		$dirtypatch = 1;
+		warn "Failed to cvs add $f -- you may need to do it manually";
+	}
 }
 
 foreach my $f (@dfiles) {
-    system(@cvs, 'rm', '-f', $f);
-    if ($?) {
-	$dirtypatch = 1;
-	warn "Failed to cvs rm -f $f -- you may need to do it manually";
-    }
+	system(@cvs, 'rm', '-f', $f);
+	if ($?) {
+		$dirtypatch = 1;
+		warn "Failed to cvs rm -f $f -- you may need to do it manually";
+	}
 }
 
 print "Commit to CVS\n";
@@ -257,25 +255,25 @@ my @commitfiles = map { unless (m/\s/) { '\''.$_.'\''; } else { $_; }; } (@files
 my $cmd = join(' ', @cvs)." commit -F .msg @commitfiles";
 
 if ($dirtypatch) {
-    print "NOTE: One or more hunks failed to apply cleanly.\n";
-    print "You'll need to apply the patch in .cvsexportcommit.diff manually\n";
-    print "using a patch program. After applying the patch and resolving the\n";
-    print "problems you may commit using:";
-    print "\n    $cmd\n\n";
-    exit(1);
+	print "NOTE: One or more hunks failed to apply cleanly.\n";
+	print "You'll need to apply the patch in .cvsexportcommit.diff manually\n";
+	print "using a patch program. After applying the patch and resolving the\n";
+	print "problems you may commit using:";
+	print "\n	$cmd\n\n";
+	exit(1);
 }
 
 if ($opt_c) {
-    print "Autocommit\n  $cmd\n";
-    print safe_pipe_capture(@cvs, 'commit', '-F', '.msg', @files);
-    if ($?) {
-	die "Exiting: The commit did not succeed";
-    }
-    print "Committed successfully to CVS\n";
-    # clean up
-    unlink(".msg");
+	print "Autocommit\n  $cmd\n";
+	print safe_pipe_capture(@cvs, 'commit', '-F', '.msg', @files);
+	if ($?) {
+		die "Exiting: The commit did not succeed";
+	}
+	print "Committed successfully to CVS\n";
+	# clean up
+	unlink(".msg");
 } else {
-    print "Ready for you to commit, just run:\n\n   $cmd\n";
+	print "Ready for you to commit, just run:\n\n   $cmd\n";
 }
 
 # clean up
@@ -297,25 +295,25 @@ END
 # to work around shell problems with weird characters in arguments
 # if the exec returns non-zero we die
 sub safe_pipe_capture {
-    my @output;
-    if (my $pid = open my $child, '-|') {
-	@output = (<$child>);
-	close $child or die join(' ',@_).": $! $?";
-    } else {
-	exec(@_) or die "$! $?"; # exec() can fail the executable can't be found
-    }
-    return wantarray ? @output : join('',@output);
+	my @output;
+	if (my $pid = open my $child, '-|') {
+		@output = (<$child>);
+		close $child or die join(' ',@_).": $! $?";
+	} else {
+		exec(@_) or die "$! $?"; # exec() can fail the executable can't be found
+	}
+	return wantarray ? @output : join('',@output);
 }
 
 sub safe_pipe_capture_blob {
-    my $output;
-    if (my $pid = open my $child, '-|') {
-        local $/;
-	undef $/;
-	$output = (<$child>);
-	close $child or die join(' ',@_).": $! $?";
-    } else {
-	exec(@_) or die "$! $?"; # exec() can fail the executable can't be found
-    }
-    return $output;
+	my $output;
+	if (my $pid = open my $child, '-|') {
+		local $/;
+		undef $/;
+		$output = (<$child>);
+		close $child or die join(' ',@_).": $! $?";
+	} else {
+		exec(@_) or die "$! $?"; # exec() can fail the executable can't be found
+	}
+	return $output;
 }
-- 
1.5.3.4.207.g6d7480-dirty

^ permalink raw reply related	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2007-10-20 13:57 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-10-16  8:08 [PATCH 1/3] git-cvsexportcommit.perl tabified Michael Witten
2007-10-16  8:08 ` [PATCH 2/3] git-cvsexportcommit.perl tmpdir removed Michael Witten
2007-10-16  8:08   ` [PATCH 3/3] git-cvsexportcommit.perl: git-apply no longer needs --binary Michael Witten
2007-10-16 13:04     ` Johannes Schindelin
2007-10-16 15:27       ` Michael Witten
2007-10-16 21:20         ` Robin Rosenberg
2007-10-16 22:13           ` Michael Witten
2007-10-16 22:49             ` Johannes Schindelin
2007-10-16 23:22               ` Michael Witten
2007-10-17  1:11             ` Shawn O. Pearce
2007-10-17  1:34               ` Michael Witten
2007-10-20 13:59                 ` Robin Rosenberg
2007-10-17  2:25   ` [PATCH 2/3] git-cvsexportcommit.perl tmpdir removed Shawn O. Pearce

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.