git-svn: Allow for more argument types for commit (from..to)
[gitweb.git] / contrib / git-svn / git-svn
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;