From: Eric Wong Date: Mon, 20 Feb 2006 18:57:26 GMT Subject: [PATCH 3/9] git-svn: Allow for more argument types for commit (from..to) Message-ID: <1140461846433-git-send-email-normalperson@yhbt.net> In-Reply-To: <11404618464102-git-send-email-normalperson@yhbt.net> 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 --- contrib/git-svn/git-svn | 13 ++++++++++--- contrib/git-svn/git-svn.txt | 2 +- 2 files changed, 11 insertions(+), 4 deletions(-) 4d8326c4868461e8a48a4e25ef11ece6e9f92843 diff --git a/contrib/git-svn/git-svn b/contrib/git-svn/git-svn index 477ec16..5f23d6b 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 () { - 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 9912f5a..07a236f 100644 --- a/contrib/git-svn/git-svn.txt +++ b/contrib/git-svn/git-svn.txt @@ -149,7 +149,7 @@ Tracking and contributing to an Subversi # Commit only the git commits you want to SVN:: git-svn commit [ ...] # 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 -- 1.2.0.gdee6