Re: [PATCH] fetch: refuse to fetch into the current branch in a non-bare repository
- From
Shawn O. Pearce <spearce@spearce.org>
- Date
- Oct 12, 2008, 18:47 UTC
- Message-ID
- <20081012184727.GE4856@spearce.org>
- In-Reply-To
- <7vprm6iz6z.fsf@gitster.siamese.dyndns.org>
Junio C Hamano <gitster@pobox.com> wrote:
Show 11 quoted lines
> Johannes Schindelin <Johannes.Schindelin@gmx.de> writes: > > > Some confusing tutorials suggest that it would be a good idea to call > > something like this: > > > > git pull origin master:master > > > > While it might make sense to store what you want to merge, it typically > > is plain wrong. > > I am somewhat confused.
The description is confusing, yes. It should be about git fetch, not git pull.
> This "confusion" has been there for very long time and (at least the > scripted version of) git-pull/git-fetch pair has supported a workaround in > the form of --update-head-ok option.
I think "git fetch url side:master" when master is the current branch and we have omitted --update-head-ok is broken. Specifically Dscho's last hunk which adds this test. The test fails on current master.
Looking at the code in builtin-fetch.c, the only usage of update_head_ok is for output about the current branch. I think it should have been used in at least one other spot, to decide if the RHS of a refspec is valid for storage. Dscho's patch tries to address that.
diff --git a/t/t5510-fetch.sh b/t/t5510-fetch.sh index 9aae496..cd8b550 100755 --- a/t/t5510-fetch.sh +++ b/t/t5510-fetch.sh @@ -323,4 +323,10 @@ test_expect_success 'auto tag following fetches minimum' ' ) ' +test_expect_success 'refuse to fetch into the current branch' ' + + test_must_fail git fetch . side:master + +' + test_done
-- Shawn.