Code

git-svn: Allow for more argument types for commit (from..to)
authorEric Wong <normalperson@yhbt.net>
Mon, 20 Feb 2006 18:57:26 +0000 (10:57 -0800)
committerJunio C Hamano <junkio@cox.net>
Mon, 20 Feb 2006 21:32:41 +0000 (13:32 -0800)
Allow 'from..to' notation from the command line.

More liberal sha1 parsing when reading from stdin no longer requires the
sha1 to be the first character, so a leading 'commit ' string is OK.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
contrib/git-svn/git-svn
contrib/git-svn/git-svn.txt

index 477ec1694bc4785c80cecb2defbe0f1a380418b0..5f23d6b228d56db039569062b0aa05dff7eed4cd 100755 (executable)
@@ -216,14 +216,21 @@ sub commit {
                print "Reading from stdin...\n";
                @commits = ();
                while (<STDIN>) {
-                       if (/^([a-f\d]{6,40})\b/) {
+                       if (/\b([a-f\d]{6,40})\b/) {
                                unshift @commits, $1;
                        }
                }
        }
        my @revs;
-       foreach (@commits) {
-               push @revs, (safe_qx('git-rev-parse',$_));
+       foreach my $c (@commits) {
+               chomp(my @tmp = safe_qx('git-rev-parse',$c));
+               if (scalar @tmp == 1) {
+                       push @revs, $tmp[0];
+               } elsif (scalar @tmp > 1) {
+                       push @revs, reverse (safe_qx('git-rev-list',@tmp));
+               } else {
+                       die "Failed to rev-parse $c\n";
+               }
        }
        chomp @revs;
 
index 9912f5a6a94e64d67355f255966b2d6058ef75a1..07a236fe143388b15fbe80d5dcc1f4778f372fc0 100644 (file)
@@ -149,7 +149,7 @@ Tracking and contributing to an Subversion managed-project:
 # Commit only the git commits you want to SVN::
        git-svn commit <tree-ish> [<tree-ish_2> ...]
 # Commit all the git commits from my-branch that don't exist in SVN::
-       git rev-list --pretty=oneline git-svn-HEAD..my-branch | git-svn commit
+       git commit git-svn-HEAD..my-branch
 # Something is committed to SVN, pull the latest into your branch::
        git-svn fetch && git pull . git-svn-HEAD