Browse Source

Merge branch 'ew/remote' into next

* ew/remote:
  fetch,parse-remote,fmt-merge-msg: refs/remotes/* support
maint
Junio C Hamano 19 years ago
parent
commit
9937cbf491
  1. 10
      git-fetch.sh
  2. 8
      git-fmt-merge-msg.perl
  3. 8
      git-parse-remote.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)

8
git-fmt-merge-msg.perl

@ -75,6 +75,7 @@ while (<>) {
$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 @@ while (<>) {
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 @@ for my $src (@src) {
} }
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 ",

8
git-parse-remote.sh

@ -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…
Cancel
Save