diff options
-rwxr-xr-x | contrib/git-svn/git-svn | 13 | ||||
-rw-r--r-- | contrib/git-svn/git-svn.txt | 2 |
2 files changed, 11 insertions, 4 deletions
diff --git a/contrib/git-svn/git-svn b/contrib/git-svn/git-svn index 477ec1694b..5f23d6b228 100755 --- a/contrib/git-svn/git-svn +++ b/contrib/git-svn/git-svn @@ -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; diff --git a/contrib/git-svn/git-svn.txt b/contrib/git-svn/git-svn.txt index 9912f5a6a9..07a236fe14 100644 --- a/contrib/git-svn/git-svn.txt +++ b/contrib/git-svn/git-svn.txt @@ -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 |