From: Junio C Hamano <gitster@pobox.com>
To: Johannes Schindelin <Johannes.Schindelin@gmx.de>,
Daniel Barkalow <barkalow@iabervon.org>
Cc: git@vger.kernel.org, spearce@spearce.org
Subject: [PATCH] pull: allow "git pull origin $something:$current_branch" into an unborn branch
Date: Tue, 14 Oct 2008 15:53:44 -0700 [thread overview]
Message-ID: <7vmyh66b5z.fsf@gitster.siamese.dyndns.org> (raw)
In-Reply-To: 7vk5ca7rw3.fsf@gitster.siamese.dyndns.org
Some misguided documents floating on the Net suggests this sequence:
mkdir newdir && cd newdir
git init
git remote add origin $url
git pull origin master:master
"git pull" has known about an misguided "pull" like this where the
underlying fetch updates the current branch for a long time, and it also
has known about another form of insanity "git pull origin master" into an
unborn branch, but these two workarounds were not aware of the existence
of each other and did not work well together.
This fixes it.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
* This comes on top of js/maint-fetch-update-head. Passes all the tests,
and also its own.
git-pull.sh | 4 ++--
t/t5520-pull.sh | 12 ++++++++++++
2 files changed, 14 insertions(+), 2 deletions(-)
diff --git a/git-pull.sh b/git-pull.sh
index 75c3610..664fe34 100755
--- a/git-pull.sh
+++ b/git-pull.sh
@@ -124,7 +124,7 @@ orig_head=$(git rev-parse --verify HEAD 2>/dev/null)
git fetch --update-head-ok "$@" || exit 1
curr_head=$(git rev-parse --verify HEAD 2>/dev/null)
-if test "$curr_head" != "$orig_head"
+if test -n "$orig_head" && test "$curr_head" != "$orig_head"
then
# The fetch involved updating the current branch.
@@ -172,7 +172,7 @@ esac
if test -z "$orig_head"
then
- git update-ref -m "initial pull" HEAD $merge_head "" &&
+ git update-ref -m "initial pull" HEAD $merge_head "$curr_head" &&
git read-tree --reset -u HEAD || exit 1
exit
fi
diff --git a/t/t5520-pull.sh b/t/t5520-pull.sh
index 997b2db..725771f 100755
--- a/t/t5520-pull.sh
+++ b/t/t5520-pull.sh
@@ -29,6 +29,18 @@ test_expect_success 'checking the results' '
diff file cloned/file
'
+test_expect_success 'pulling into void using master:master' '
+ mkdir cloned-uho &&
+ (
+ cd cloned-uho &&
+ git init &&
+ git pull .. master:master
+ ) &&
+ test -f file &&
+ test -f cloned-uho/file &&
+ test_cmp file cloned-uho/file
+'
+
test_expect_success 'test . as a remote' '
git branch copy master &&
--
1.6.0.2.711.gf1ba4
next prev parent reply other threads:[~2008-10-14 22:55 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-10-11 11:38 [PATCH] fetch: refuse to fetch into the current branch in a non-bare repository Johannes Schindelin
2008-10-11 21:44 ` Junio C Hamano
2008-10-12 18:47 ` Shawn O. Pearce
2008-10-13 9:28 ` Johannes Schindelin
2008-10-12 18:52 ` Shawn O. Pearce
2008-10-12 20:37 ` Daniel Barkalow
2008-10-13 9:36 ` [PATCH v2] Fix fetch/pull when run without --update-head-ok Johannes Schindelin
2008-10-13 14:09 ` Shawn O. Pearce
2008-10-13 17:57 ` Johannes Schindelin
2008-10-13 14:23 ` Junio C Hamano
2008-10-13 17:30 ` Junio C Hamano
2008-10-13 18:12 ` Johannes Schindelin
2008-10-13 20:05 ` Daniel Barkalow
2008-10-14 9:49 ` Johannes Schindelin
2008-10-14 15:02 ` Shawn O. Pearce
2008-10-14 16:04 ` Daniel Barkalow
2008-10-14 16:15 ` Johannes Schindelin
2008-10-14 15:57 ` Daniel Barkalow
2008-10-14 16:17 ` Johannes Schindelin
2008-10-14 16:52 ` Daniel Barkalow
2008-10-14 17:02 ` Daniel Barkalow
2008-10-14 22:07 ` Junio C Hamano
2008-10-14 22:53 ` Junio C Hamano [this message]
2008-10-13 17:08 ` Daniel Barkalow
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=7vmyh66b5z.fsf@gitster.siamese.dyndns.org \
--to=gitster@pobox.com \
--cc=Johannes.Schindelin@gmx.de \
--cc=barkalow@iabervon.org \
--cc=git@vger.kernel.org \
--cc=spearce@spearce.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).