From: Paolo Bonzini <paolo.bonzini@lu.unisi.ch>
To: Junio C Hamano <junkio@cox.net>
Cc: git@vger.kernel.org
Subject: [PATCH] git-fetch, git-parse-remote: Cleanup implementation of '.'
Date: Fri, 16 Mar 2007 09:38:09 +0100 [thread overview]
Message-ID: <45FA5771.1040200@lu.unisi.ch> (raw)
In-Reply-To: <7vr6rqyr60.fsf@assigned-by-dhcp.cox.net>
As per the mailing list exchanges, this applies the following changes:
- renames the data source from 'builtin' to 'self'.
- renames fetch_packs/fetch_heads to fetch_per_ref and fetch_all_at_once
- processes any remote whose URL is '.' (not only the builtin one) using
native-store (this is tested by t3200-branch.sh).
Signed-Off-By: Paolo Bonzini <bonzini@gnu.org>
---
git-fetch.sh | 33 +++++++++++++--------------------
git-parse-remote.sh | 8 ++++----
2 files changed, 17 insertions(+), 24 deletions(-)
The patch is a cleanup of the one you posted, and it was
appropriately tested with no regression.
I can see now what you meant by the split between fetch and
merge logic making my patch more complicated than necessary.
diff --git a/git-fetch.sh b/git-fetch.sh
index 3b01f06..a650116 100755
--- a/git-fetch.sh
+++ b/git-fetch.sh
@@ -161,7 +161,7 @@ then
fi
fi
-fetch_packs () {
+fetch_all_at_once () {
eval=$(echo "$1" | git-fetch--tool parse-reflist "-")
eval "$eval"
@@ -169,7 +169,9 @@ fetch_packs () {
( : subshell because we muck with IFS
IFS=" $LF"
(
- if test -f "$remote" ; then
+ if test "$remote" = . ; then
+ git-show-ref $rref || echo failed "$remote"
+ elif test -f "$remote" ; then
test -n "$shallow_depth" &&
die "shallow clone with bundle is not supported"
git-bundle unbundle "$remote" $rref ||
@@ -192,7 +194,7 @@ fetch_packs () {
}
-fetch_heads () {
+fetch_per_ref () {
reflist="$1"
refs=
rref=
@@ -286,10 +288,6 @@ fetch_heads () {
rsync_slurped_objects=t
}
;;
- .)
- local_name=$remote_name
- head=$(git-rev-parse --verify "$local_name")
- ;;
esac
append_fetch_head "$head" "$remote" \
@@ -300,19 +298,14 @@ fetch_heads () {
}
fetch_main () {
- data_source=$(get_data_source "$remote_nick")
- if test "$data_source" = builtin; then
- fetch_heads "$@"
- else
- case "$remote" in
- http://* | https://* | ftp://* | rsync://* )
- fetch_heads "$@"
- ;;
- *)
- fetch_packs "$@"
- ;;
- esac
- fi
+ case "$remote" in
+ http://* | https://* | ftp://* | rsync://* )
+ fetch_per_ref "$@"
+ ;;
+ *)
+ fetch_all_at_once "$@"
+ ;;
+ esac
}
fetch_main "$reflist" || exit
diff --git a/git-parse-remote.sh b/git-parse-remote.sh
index a94215d..f25f9c1 100755
--- a/git-parse-remote.sh
+++ b/git-parse-remote.sh
@@ -10,7 +10,7 @@ get_data_source () {
echo ''
;;
.)
- echo builtin
+ echo self
;;
*)
if test "$(git-config --get "remote.$1.url")"
@@ -34,7 +34,7 @@ get_remote_url () {
'')
echo "$1"
;;
- builtin)
+ self)
echo "$1"
;;
config)
@@ -63,7 +63,7 @@ get_default_remote () {
get_remote_default_refs_for_push () {
data_source=$(get_data_source "$1")
case "$data_source" in
- '' | branches | builtin)
+ '' | branches | self)
;; # no default push mapping, just send matching refs.
config)
git-config --get-all "remote.$1.push" ;;
@@ -169,7 +169,7 @@ get_remote_default_refs_for_fetch () {
case "$data_source" in
'')
echo "HEAD:" ;;
- builtin)
+ self)
canon_refs_list_for_fetch -d "$1" \
$(git-show-ref | sed -n 's,.*[ ]\(refs/.*\),\1:,p') ;;
config)
next prev parent reply other threads:[~2007-03-16 8:38 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-03-15 8:23 [PATCH, fixed] git-fetch, git-branch: Support local --track via a special remote `.' Paolo Bonzini
2007-03-16 0:21 ` Junio C Hamano
2007-03-16 8:38 ` Paolo Bonzini [this message]
2007-03-16 9:32 ` [PATCH] git-fetch, git-parse-remote: Cleanup implementation of '.' Junio C Hamano
2007-03-16 9:38 ` Paolo Bonzini
2007-03-16 10:00 ` 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=45FA5771.1040200@lu.unisi.ch \
--to=paolo.bonzini@lu.unisi.ch \
--cc=bonzini@gnu.org \
--cc=git@vger.kernel.org \
--cc=junkio@cox.net \
/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.