From: Junio C Hamano <junkio@cox.net>
To: GIT mailing list <git@vger.kernel.org>
Cc: Junio C Hamano <junkio@cox.net>
Subject: [PATCH 3/3] Update git-pull to match updated git-fetch.
Date: Thu, 18 Aug 2005 00:39:31 -0700 [thread overview]
Message-ID: <11243507711980-git-send-email-junkio@cox.net> (raw)
In-Reply-To: <7vek8rlnbn.fsf@assigned-by-dhcp.cox.net>
This retires the git-parse-remote script, and allows pull to fetch
from multiple remote references. There is no support for resolving
more than two heads, so that would be next.
Signed-off-by: Junio C Hamano <junkio@cox.net>
---
Makefile | 2 +
git-parse-remote | 79 ------------------------------------------------------
git-pull-script | 14 ++++++----
3 files changed, 10 insertions(+), 85 deletions(-)
delete mode 100755 git-parse-remote
3a071a02828c71bbfdc2749d25814906cd9c8b18
diff --git a/Makefile b/Makefile
--- a/Makefile
+++ b/Makefile
@@ -64,7 +64,7 @@ SCRIPTS=git git-apply-patch-script git-m
git-reset-script git-add-script git-checkout-script git-clone-script \
gitk git-cherry git-rebase-script git-relink-script git-repack-script \
git-format-patch-script git-sh-setup-script git-push-script \
- git-branch-script git-parse-remote git-parse-remote-script git-verify-tag-script \
+ git-branch-script git-parse-remote-script git-verify-tag-script \
git-ls-remote-script git-clone-dumb-http git-rename-script \
git-request-pull-script git-bisect-script
diff --git a/git-parse-remote b/git-parse-remote
deleted file mode 100755
--- a/git-parse-remote
+++ /dev/null
@@ -1,79 +0,0 @@
-: To be included in git-pull and git-fetch scripts.
-
-# A remote repository can be specified on the command line
-# in one of the following formats:
-#
-# <repo>
-# <repo> <head>
-# <repo> tag <tag>
-#
-# where <repo> could be one of:
-#
-# a URL (including absolute or local pathname)
-# a short-hand
-# a short-hand followed by a trailing path
-#
-# A short-hand <name> has a corresponding file $GIT_DIR/branches/<name>,
-# whose contents is a URL, possibly followed by a URL fragment #<head>
-# to name the default branch on the remote side to fetch from.
-
-_remote_repo= _remote_store= _remote_head= _remote_name=
-
-case "$1" in
-*:* | /* | ../* | ./* )
- _remote_repo="$1"
- ;;
-* )
- # otherwise, it is a short hand.
- case "$1" in
- */*)
- # a short-hand followed by a trailing path
- _token=$(expr "$1" : '\([^/]*\)/')
- _rest=$(expr "$1" : '[^/]*\(/.*\)$')
- ;;
- *)
- _token="$1"
- _rest=
- _remote_store="refs/heads/$_token"
- ;;
- esac
- test -f "$GIT_DIR/branches/$_token" ||
- die "No such remote branch: $_token"
-
- _remote_repo=$(cat "$GIT_DIR/branches/$_token")"$_rest"
- ;;
-esac
-
-case "$_remote_repo" in
-*"#"*)
- _remote_head=`expr "$_remote_repo" : '.*#\(.*\)$'`
- _remote_repo=`expr "$_remote_repo" : '\(.*\)#'`
- ;;
-esac
-
-_remote_name=$(echo "$_remote_repo" | sed 's|\.git/*$||')
-
-case "$2" in
-tag)
- _remote_name="tag '$3' of $_remote_name"
- _remote_head="refs/tags/$3"
- _remote_store="$_remote_head"
- ;;
-?*)
- # command line specified a head explicitly; do not
- # store the fetched head as a branch head.
- _remote_name="head '$2' of $_remote_name"
- _remote_head="refs/heads/$2"
- _remote_store=''
- ;;
-'')
- case "$_remote_head" in
- '')
- _remote_head=HEAD ;;
- *)
- _remote_name="head '$_remote_head' of $_remote_name"
- _remote_head="refs/heads/$_remote_head"
- ;;
- esac
- ;;
-esac
diff --git a/git-pull-script b/git-pull-script
--- a/git-pull-script
+++ b/git-pull-script
@@ -1,12 +1,16 @@
#!/bin/sh
#
. git-sh-setup-script || die "Not a git archive"
-. git-parse-remote "$@"
-merge_name="$_remote_name"
-
git-fetch-script "$@" || exit 1
+merge_head=$(sed -e 's/ .*//' "$GIT_DIR"/FETCH_HEAD | tr '\012' ' ')
+merge_name=$(sed -e 's/^[0-9a-f]* //' "$GIT_DIR"/FETCH_HEAD |
+ tr '\012' ' ')
+
+case "$merge_head" in
+'' | *' '?*) die "Cannot resolve multiple heads at the same time (yet)." ;;
+esac
+
git-resolve-script \
"$(cat "$GIT_DIR"/HEAD)" \
- "$(cat "$GIT_DIR"/FETCH_HEAD)" \
- "Merge $merge_name"
+ $merge_head "Merge $merge_name"
next prev parent reply other threads:[~2005-08-18 7:39 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-08-18 7:24 Multi-head pulling series Junio C Hamano
2005-08-18 7:39 ` [PATCH 1/3] Start adding the $GIT_DIR/remotes/ support Junio C Hamano
2005-08-18 7:39 ` [PATCH 2/3] Multi-head fetch Junio C Hamano
2005-08-18 7:39 ` Junio C Hamano [this message]
2005-08-18 10:45 ` Multi-head pulling series Josef Weidendorfer
2005-08-20 18:54 ` Junio C Hamano
2005-08-22 16:35 ` Josef Weidendorfer
2005-08-23 1:07 ` Junio C Hamano
2005-08-23 5:37 ` Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=11243507711980-git-send-email-junkio@cox.net \
--to=junkio@cox.net \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.