diff options
author | Eric Sunshine <sunshine@sunshineco.com> | 2013-07-21 06:52:40 -0400 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2013-07-21 15:13:42 -0700 |
commit | ccf6b45aff3f89016cf1a3e39a37e73e72c3e0f6 (patch) | |
tree | c0a9defa56a9648279471b70bf4b05192886aa2f | |
parent | 8e7c4a82ec25ee92bcb81de8bb8c4a27876d6edc (diff) | |
download | git-ccf6b45aff3f89016cf1a3e39a37e73e72c3e0f6.tar.gz git-ccf6b45aff3f89016cf1a3e39a37e73e72c3e0f6.tar.xz |
contrib: contacts: interpret committish akin to format-patch
As a convenience, accept the same style <since> committish as accepted
by git-format-patch. For example:
% git contacts origin
will consider commits in the current branch built atop 'origin', just as
"git format-patch origin" will format commits built atop 'origin'.
Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rwxr-xr-x | contrib/contacts/git-contacts | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/contrib/contacts/git-contacts b/contrib/contacts/git-contacts index 1686ff340..4553add0a 100755 --- a/contrib/contacts/git-contacts +++ b/contrib/contacts/git-contacts @@ -102,9 +102,26 @@ sub scan_patch_file { close $f; } +sub parse_rev_args { + my @args = @_; + open my $f, '-|', + qw(git rev-parse --revs-only --default HEAD --symbolic), @args + or die; + my @revs; + while (<$f>) { + chomp; + push @revs, $_; + } + close $f; + return @revs if scalar(@revs) != 1; + return "^$revs[0]", 'HEAD' unless $revs[0] =~ /^-/; + return $revs[0], 'HEAD'; +} + sub scan_rev_args { my ($commits, $args) = @_; - open my $f, '-|', qw(git rev-list --reverse), @$args or die; + my @revs = parse_rev_args(@$args); + open my $f, '-|', qw(git rev-list --reverse), @revs or die; while (<$f>) { chomp; my $id = $_; |