From ccf6b45aff3f89016cf1a3e39a37e73e72c3e0f6 Mon Sep 17 00:00:00 2001 From: Eric Sunshine Date: Sun, 21 Jul 2013 06:52:40 -0400 Subject: contrib: contacts: interpret committish akin to format-patch As a convenience, accept the same style 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 Signed-off-by: Junio C Hamano --- contrib/contacts/git-contacts | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) (limited to 'contrib/contacts') diff --git a/contrib/contacts/git-contacts b/contrib/contacts/git-contacts index 1686ff340a..4553add0a6 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 = $_; -- cgit v1.2.3