summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xcontrib/git-svn/git-svn13
-rw-r--r--contrib/git-svn/git-svn.txt2
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