Merge branch 'jc/request-pull-show-head-4'
* jc/request-pull-show-head-4: request-pull: do not emit "tag" before the tagname request-pull: update the "pull" command generation logic
This commit is contained in:
commit
835fbdb67a
@ -57,12 +57,38 @@ headrev=$(git rev-parse --verify "$head"^0) || exit
|
|||||||
merge_base=$(git merge-base $baserev $headrev) ||
|
merge_base=$(git merge-base $baserev $headrev) ||
|
||||||
die "fatal: No commits in common between $base and $head"
|
die "fatal: No commits in common between $base and $head"
|
||||||
|
|
||||||
find_matching_branch="/^$headrev "'refs\/heads\//{
|
# $head is the token given from the command line. If a ref with that
|
||||||
s/^.* refs\/heads\///
|
# name exists at the remote and their values match, we should use it.
|
||||||
p
|
# Otherwise find a ref that matches $headrev.
|
||||||
q
|
find_matching_ref='
|
||||||
}'
|
sub abbr {
|
||||||
branch=$(git ls-remote "$url" | sed -n -e "$find_matching_branch")
|
my $ref = shift;
|
||||||
|
if ($ref =~ s|refs/heads/|| || $ref =~ s|refs/tags/||) {
|
||||||
|
return $ref;
|
||||||
|
} else {
|
||||||
|
return $ref;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
my ($exact, $found);
|
||||||
|
while (<STDIN>) {
|
||||||
|
my ($sha1, $ref, $deref) = /^(\S+)\s+(\S+?)(\^\{\})?$/;
|
||||||
|
next unless ($sha1 eq $ARGV[1]);
|
||||||
|
$found = abbr($ref);
|
||||||
|
if ($ref =~ m|/\Q$ARGV[0]\E$|) {
|
||||||
|
$exact = $found;
|
||||||
|
last;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ($exact) {
|
||||||
|
print "$exact\n";
|
||||||
|
} elsif ($found) {
|
||||||
|
print "$found\n";
|
||||||
|
}
|
||||||
|
'
|
||||||
|
|
||||||
|
ref=$(git ls-remote "$url" | perl -e "$find_matching_ref" "$head" "$headrev")
|
||||||
|
|
||||||
url=$(git ls-remote --get-url "$url")
|
url=$(git ls-remote --get-url "$url")
|
||||||
|
|
||||||
git show -s --format='The following changes since commit %H:
|
git show -s --format='The following changes since commit %H:
|
||||||
@ -71,7 +97,7 @@ git show -s --format='The following changes since commit %H:
|
|||||||
|
|
||||||
are available in the git repository at:
|
are available in the git repository at:
|
||||||
' $baserev &&
|
' $baserev &&
|
||||||
echo " $url${branch+ $branch}" &&
|
echo " $url${ref+ $ref}" &&
|
||||||
git show -s --format='
|
git show -s --format='
|
||||||
for you to fetch changes up to %H:
|
for you to fetch changes up to %H:
|
||||||
|
|
||||||
@ -81,7 +107,7 @@ for you to fetch changes up to %H:
|
|||||||
|
|
||||||
if test -n "$branch_name"
|
if test -n "$branch_name"
|
||||||
then
|
then
|
||||||
echo "(from the branch description for $branch local branch)"
|
echo "(from the branch description for $branch_name local branch)"
|
||||||
echo
|
echo
|
||||||
git config "branch.$branch_name.description"
|
git config "branch.$branch_name.description"
|
||||||
fi &&
|
fi &&
|
||||||
@ -101,7 +127,7 @@ fi &&
|
|||||||
git shortlog ^$baserev $headrev &&
|
git shortlog ^$baserev $headrev &&
|
||||||
git diff -M --stat --summary $patch $merge_base..$headrev || status=1
|
git diff -M --stat --summary $patch $merge_base..$headrev || status=1
|
||||||
|
|
||||||
if test -z "$branch"
|
if test -z "$ref"
|
||||||
then
|
then
|
||||||
echo "warn: No branch of $url is at:" >&2
|
echo "warn: No branch of $url is at:" >&2
|
||||||
git show -s --format='warn: %h: %s' $headrev >&2
|
git show -s --format='warn: %h: %s' $headrev >&2
|
||||||
|
@ -67,9 +67,11 @@ test_expect_success 'setup: two scripts for reading pull requests' '
|
|||||||
|
|
||||||
cat <<-\EOT >read-request.sed &&
|
cat <<-\EOT >read-request.sed &&
|
||||||
#!/bin/sed -nf
|
#!/bin/sed -nf
|
||||||
|
# Note that a request could ask for "tag $tagname"
|
||||||
/ in the git repository at:$/!d
|
/ in the git repository at:$/!d
|
||||||
n
|
n
|
||||||
/^$/ n
|
/^$/ n
|
||||||
|
s/ tag \([^ ]*\)$/ tag--\1/
|
||||||
s/^[ ]*\(.*\) \([^ ]*\)/please pull\
|
s/^[ ]*\(.*\) \([^ ]*\)/please pull\
|
||||||
\1\
|
\1\
|
||||||
\2/p
|
\2/p
|
||||||
@ -178,6 +180,7 @@ test_expect_success 'request names an appropriate branch' '
|
|||||||
read branch
|
read branch
|
||||||
} <digest &&
|
} <digest &&
|
||||||
{
|
{
|
||||||
|
test "$branch" = full ||
|
||||||
test "$branch" = master ||
|
test "$branch" = master ||
|
||||||
test "$branch" = for-upstream
|
test "$branch" = for-upstream
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user