mirror of
https://github.com/git/git.git
synced 2024-11-05 08:47:56 +01:00
Merge branch 'ew/remote' into next
* ew/remote: fetch,parse-remote,fmt-merge-msg: refs/remotes/* support
This commit is contained in:
commit
9937cbf491
3 changed files with 20 additions and 6 deletions
10
git-fetch.sh
10
git-fetch.sh
|
@ -94,6 +94,9 @@ append_fetch_head () {
|
||||||
# remote-nick is the URL given on the command line (or a shorthand)
|
# remote-nick is the URL given on the command line (or a shorthand)
|
||||||
# remote-name is the $GIT_DIR relative refs/ path we computed
|
# remote-name is the $GIT_DIR relative refs/ path we computed
|
||||||
# for this refspec.
|
# for this refspec.
|
||||||
|
|
||||||
|
# the $note_ variable will be fed to git-fmt-merge-msg for further
|
||||||
|
# processing.
|
||||||
case "$remote_name_" in
|
case "$remote_name_" in
|
||||||
HEAD)
|
HEAD)
|
||||||
note_= ;;
|
note_= ;;
|
||||||
|
@ -103,6 +106,9 @@ append_fetch_head () {
|
||||||
refs/tags/*)
|
refs/tags/*)
|
||||||
note_="$(expr "$remote_name_" : 'refs/tags/\(.*\)')"
|
note_="$(expr "$remote_name_" : 'refs/tags/\(.*\)')"
|
||||||
note_="tag '$note_' of " ;;
|
note_="tag '$note_' of " ;;
|
||||||
|
refs/remotes/*)
|
||||||
|
note_="$(expr "$remote_name_" : 'refs/remotes/\(.*\)')"
|
||||||
|
note_="remote branch '$note_' of " ;;
|
||||||
*)
|
*)
|
||||||
note_="$remote_name of " ;;
|
note_="$remote_name of " ;;
|
||||||
esac
|
esac
|
||||||
|
@ -147,10 +153,10 @@ fast_forward_local () {
|
||||||
else
|
else
|
||||||
echo >&2 "* $1: storing $3"
|
echo >&2 "* $1: storing $3"
|
||||||
fi
|
fi
|
||||||
git-update-ref "$1" "$2"
|
git-update-ref "$1" "$2"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
refs/heads/*)
|
refs/heads/* | refs/remotes/*)
|
||||||
# $1 is the ref being updated.
|
# $1 is the ref being updated.
|
||||||
# $2 is the new value for the ref.
|
# $2 is the new value for the ref.
|
||||||
local=$(git-rev-parse --verify "$1^0" 2>/dev/null)
|
local=$(git-rev-parse --verify "$1^0" 2>/dev/null)
|
||||||
|
|
|
@ -75,6 +75,7 @@ sub shortlog {
|
||||||
$src{$src} = {
|
$src{$src} = {
|
||||||
BRANCH => [],
|
BRANCH => [],
|
||||||
TAG => [],
|
TAG => [],
|
||||||
|
R_BRANCH => [],
|
||||||
GENERIC => [],
|
GENERIC => [],
|
||||||
# &1 == has HEAD.
|
# &1 == has HEAD.
|
||||||
# &2 == has others.
|
# &2 == has others.
|
||||||
|
@ -91,6 +92,11 @@ sub shortlog {
|
||||||
push @{$src{$src}{TAG}}, $1;
|
push @{$src{$src}{TAG}}, $1;
|
||||||
$src{$src}{HEAD_STATUS} |= 2;
|
$src{$src}{HEAD_STATUS} |= 2;
|
||||||
}
|
}
|
||||||
|
elsif (/^remote branch (.*)$/) {
|
||||||
|
$origin = $1;
|
||||||
|
push @{$src{$src}{R_BRANCH}}, $1;
|
||||||
|
$src{$src}{HEAD_STATUS} |= 2;
|
||||||
|
}
|
||||||
elsif (/^HEAD$/) {
|
elsif (/^HEAD$/) {
|
||||||
$origin = $src;
|
$origin = $src;
|
||||||
$src{$src}{HEAD_STATUS} |= 1;
|
$src{$src}{HEAD_STATUS} |= 1;
|
||||||
|
@ -123,6 +129,8 @@ sub shortlog {
|
||||||
}
|
}
|
||||||
push @this, andjoin("branch ", "branches ",
|
push @this, andjoin("branch ", "branches ",
|
||||||
$src{$src}{BRANCH});
|
$src{$src}{BRANCH});
|
||||||
|
push @this, andjoin("remote branch ", "remote branches ",
|
||||||
|
$src{$src}{R_BRANCH});
|
||||||
push @this, andjoin("tag ", "tags ",
|
push @this, andjoin("tag ", "tags ",
|
||||||
$src{$src}{TAG});
|
$src{$src}{TAG});
|
||||||
push @this, andjoin("commit ", "commits ",
|
push @this, andjoin("commit ", "commits ",
|
||||||
|
|
|
@ -86,14 +86,14 @@ canon_refs_list_for_fetch () {
|
||||||
local=$(expr "$ref" : '[^:]*:\(.*\)')
|
local=$(expr "$ref" : '[^:]*:\(.*\)')
|
||||||
case "$remote" in
|
case "$remote" in
|
||||||
'') remote=HEAD ;;
|
'') remote=HEAD ;;
|
||||||
refs/heads/* | refs/tags/*) ;;
|
refs/heads/* | refs/tags/* | refs/remotes/*) ;;
|
||||||
heads/* | tags/* ) remote="refs/$remote" ;;
|
heads/* | tags/* | remotes/* ) remote="refs/$remote" ;;
|
||||||
*) remote="refs/heads/$remote" ;;
|
*) remote="refs/heads/$remote" ;;
|
||||||
esac
|
esac
|
||||||
case "$local" in
|
case "$local" in
|
||||||
'') local= ;;
|
'') local= ;;
|
||||||
refs/heads/* | refs/tags/*) ;;
|
refs/heads/* | refs/tags/* | refs/remotes/*) ;;
|
||||||
heads/* | tags/* ) local="refs/$local" ;;
|
heads/* | tags/* | remotes/* ) local="refs/$local" ;;
|
||||||
*) local="refs/heads/$local" ;;
|
*) local="refs/heads/$local" ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue