From: "Bence Ferdinandy" <bence@ferdinandy.com>
To: "Junio C Hamano" <gitster@pobox.com>,
"Josh Steadmon" <steadmon@google.com>
Cc: <git@vger.kernel.org>, <phillip.wood@dunelm.org.uk>,
<l.s.r@web.de>, <Johannes.Schindelin@gmx.de>,
<karthik.188@gmail.com>, <me@ttaylorr.com>, <ps@pks.im>,
<jonathantanmy@google.com>
Subject: Re: Re* [PATCH] Fix `git fetch --tags` in repo with no configured remote
Date: Fri, 06 Dec 2024 12:23:36 +0100 [thread overview]
Message-ID: <D64KVBBE5WVH.19V9S7ZY89IZS@ferdinandy.com> (raw)
In-Reply-To: <xmqqcyi5xmhr.fsf@gitster.g>
On Fri Dec 06, 2024 at 09:08, Junio C Hamano <gitster@pobox.com> wrote:
> Junio C Hamano <gitster@pobox.com> writes:
>
>> Stepping back a bit, do we even need to learn where HEAD points at
>> in the remote, when we are not doing the "opportunistically set
>> $REMOTE/HEAD"? Your example is "in repo with no configured remote",
>> which by definition means that we do not use any refs/remotes/*/ ref
>> hierarchy to keep track of the remote-tracking branches for the
>> remote we are fetching from. There is no place we record what we
>> learn by running ls-remote HEAD against them, so should we even push
>> "HEAD" to the ls-remote prefixes in such a case?
Yes, it probably doesn't make any sense to do that.
>>
>> While this change may hide the breakage you saw in your set-up, we
>> may be now asking to ls-remote HEAD even in cases we do not need to.
>>
>>> Fix this by adding HEAD to the ref_prefixes list prior to handling the
>>> `--tags` flag, and removing the now obsolete check whether ref_prefixes
>>> is empty or not.
>>
>> And if we unconditionally add HEAD even when we do not need to,
>> especially with the loss of the ref-prefixes condition that was
>> there in order to implement "learn refs/tags/* hierarchy only when
>> we are doing the default fetch", wouldn't it mean we may learn
>> refs/tags/* even when we do not have to?
>
> In other words, what I think the "fix" should look like is more like
> the attached. It seems to pass your test, as well as existing tests
> Bence added and other tests about "git fetch".
>
> One thing I am not happy about is the abstraction violation that is
> needed to make the uses_remote_tracking() helper aware of the "use
> the rs, the refspec given from the command line, or if it is empty,
> use the configured 'fetch' refspec from the remote" rule, which is
> primarily used by get_ref_map() that is much later called, but the
> layering violation started when we started limiting the ls-remote
> request with narrowing common prefixes, and it would take a larger
> surgery to fix, I would think.
>
> ---- >8 ----
> Subject: [PATCH] fetch: do not ask for HEAD unnecessarily
>
> In 3f763ddf28 (fetch: set remote/HEAD if it does not exist,
> 2024-11-22), git-fetch learned to opportunistically set $REMOTE/HEAD
> when fetching by always asking for remote HEAD, in the hope that it
> will help setting refs/remotes/<name>/HEAD if missing.
>
> But it is not needed to always ask for remote HEAD. When we are
> fetching from a remote, for which we have remote-tracking branches,
> we do need to know about HEAD. But if we are doing one-shot fetch,
> e.g.,
>
> $ git fetch --tags https://github.com/git/git
>
> we do not even know what sub-hierarchy of refs/remotes/<remote>/
> we need to adjust the remote HEAD for. There is no need to ask for
> HEAD in such a case.
>
> Incidentally, because the unconditional request to list "HEAD"
> affected the number of ref-prefixes requested in the ls-remote
> request, this affected how the requests for tags are added to the
> same ls-remote request, breaking "git fetch --tags $URL" performed
> against a URL that is not configured as a remote.
>
> Reported-by: Josh Steadmon <steadmon@google.com>
> [jc: tests are also borrowed from Josh's patch]
> Signed-off-by: Junio C Hamano <gitster@pobox.com>
> ---
>
> * Even though I borrowed some part of the commit log message from
> Josh's version, it not clear to me how "*after* deciding" led to
> whatever the observed breakage (which was not described in the
> log message), in the following part.
>
> Specifically, we now unconditionally add HEAD to the
> ref_prefixes list, but we did this *after* deciding whether we
> also need to explicitly request tags.
>
> Bence's change asks "HEAD" after "if we are fetching something,
> then also ask about refs/tags/" logic thought we are not fetching
> anything (i.e. ref_prefixes.nr == 0 at that point). But before
> Bence's series, the same refs/tags/ logic saw that (ref_prefix.nr
> == 0), didn't it? So that does not sound like a sufficient
> explanation on how the series regressed.
I did a bit of poking around on what is happening. For one I can confirm, that
both before and after the set_head series
`transport_ls_refs_options.ref_prefixes.nr` is 0. So the difference must be
happening somewhere after that, and is not a side effect of calling set_head
either, but I didn't manage to pin it down further.
I also checked what happens in set_head, just to be on the safe side: `heads`
is empty so we reach the if where we check `heads.nr` which is 0. So at least
no strange refs are created :)
> ---
> builtin/fetch.c | 20 +++++++++++++++++++-
> t/t5510-fetch.sh | 17 +++++++++++++++++
> 2 files changed, 36 insertions(+), 1 deletion(-)
>
> diff --git a/builtin/fetch.c b/builtin/fetch.c
> index a64de4485f..3eb6f3acc9 100644
> --- a/builtin/fetch.c
> +++ b/builtin/fetch.c
> @@ -1643,6 +1643,21 @@ static int set_head(const struct ref *remote_refs)
> return result;
> }
>
> +static int uses_remote_tracking(struct transport *transport, struct refspec *rs)
> +{
> + if (!remote_is_configured(transport->remote, 0))
> + return 0;
> +
> + if (!rs->nr)
> + rs = &transport->remote->fetch;
> +
> + for (int i = 0; i < rs->nr; i++)
> + if (rs->items[i].dst)
> + return 1;
> +
> + return 0;
> +}
> +
> static int do_fetch(struct transport *transport,
> struct refspec *rs,
> const struct fetch_config *config)
> @@ -1712,7 +1727,10 @@ static int do_fetch(struct transport *transport,
> "refs/tags/");
> }
>
> - strvec_push(&transport_ls_refs_options.ref_prefixes, "HEAD");
> + if (uses_remote_tracking(transport, rs)) {
> + must_list_refs = 1;
> + strvec_push(&transport_ls_refs_options.ref_prefixes, "HEAD");
> + }
>
> if (must_list_refs) {
> trace2_region_enter("fetch", "remote_refs", the_repository);
> diff --git a/t/t5510-fetch.sh b/t/t5510-fetch.sh
> index 87698341f5..d7602333ff 100755
> --- a/t/t5510-fetch.sh
> +++ b/t/t5510-fetch.sh
> @@ -189,6 +189,23 @@ test_expect_success 'fetch --prune --tags with refspec prunes based on refspec'
> git rev-parse sometag
> '
>
> +test_expect_success 'fetch --tags gets tags even without a configured remote' '
> + REMOTE="$(pwd)/test_tag_1" &&
> + git init test_tag_1 &&
> + (
> + cd test_tag_1 &&
> + test_commit foo
> + ) &&
> + git init test_tag_2 &&
> + (
> + cd test_tag_2 &&
> + git fetch --tags "file://$REMOTE" &&
> + echo "foo" >expect &&
> + git tag >actual &&
> + test_cmp expect actual
> + )
> +'
> +
> test_expect_success REFFILES 'fetch --prune fails to delete branches' '
> cd "$D" &&
> git clone . prune-fail &&
next prev parent reply other threads:[~2024-12-06 11:24 UTC|newest]
Thread overview: 258+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-09-10 20:37 [RFC PATCH v2 0/2] set remote/HEAD with fetch Bence Ferdinandy
2024-09-10 20:37 ` [RFC PATCH v2 1/2] fetch: set-head with --set-head option Bence Ferdinandy
2024-09-10 22:19 ` Junio C Hamano
2024-09-11 12:13 ` Bence Ferdinandy
2024-09-11 15:52 ` Junio C Hamano
2024-09-19 12:13 ` [PATCH v3 0/2] fetch: set remote/HEAD if missing Bence Ferdinandy
2024-09-19 12:13 ` [PATCH v3 1/2] update_symref: add REF_CREATE_ONLY option Bence Ferdinandy
2024-09-19 22:46 ` Junio C Hamano
2024-09-20 14:11 ` Bence Ferdinandy
2024-09-21 13:40 ` Phillip Wood
2024-09-21 22:19 ` Bence Ferdinandy
2024-09-22 16:56 ` Junio C Hamano
2024-09-29 22:58 ` Bence Ferdinandy
2024-09-30 6:40 ` Patrick Steinhardt
2024-09-30 9:27 ` Bence Ferdinandy
2024-09-30 22:19 ` [PATCH v4 0/5] improve handling of remote/HEAD Bence Ferdinandy
2024-09-30 22:19 ` [PATCH v4 1/5] refs_update_symref: atomically record overwritten ref Bence Ferdinandy
2024-10-01 19:10 ` Junio C Hamano
2024-09-30 22:19 ` [PATCH v4 2/5] set-head: better output for --auto Bence Ferdinandy
2024-10-01 22:54 ` Junio C Hamano
2024-09-30 22:19 ` [PATCH v4 3/5] transaction: add TRANSACTION_CREATE_EXISTS error Bence Ferdinandy
2024-09-30 22:19 ` [PATCH v4 4/5] refs_update_symref: add create_only option Bence Ferdinandy
2024-09-30 22:19 ` [PATCH v4 5/5] fetch: set remote/HEAD if it does not exist Bence Ferdinandy
2024-10-03 19:21 ` [PATCH v4 0/5] improve handling of remote/HEAD Junio C Hamano
2024-10-03 19:48 ` Bence Ferdinandy
2024-10-09 13:57 ` [PATCH v5 1/6] refs_update_symref: atomically record overwritten ref Bence Ferdinandy
2024-10-09 13:57 ` [PATCH v5 2/6] set-head: add new variable for readability Bence Ferdinandy
2024-10-09 19:26 ` Junio C Hamano
2024-10-09 19:47 ` Bence Ferdinandy
2024-10-09 13:57 ` [PATCH v5 3/6] set-head: better output for --auto Bence Ferdinandy
2024-10-09 20:53 ` Junio C Hamano
2024-10-10 15:57 ` Junio C Hamano
2024-10-10 16:54 ` Ramsay Jones
2024-10-10 19:08 ` Bence Ferdinandy
2024-10-09 13:57 ` [PATCH v5 4/6] transaction: add TRANSACTION_CREATE_EXISTS error Bence Ferdinandy
2024-10-09 21:08 ` Junio C Hamano
2024-10-09 13:57 ` [PATCH v5 5/6] refs_update_symref: add create_only option Bence Ferdinandy
2024-10-09 21:37 ` Junio C Hamano
2024-10-09 13:57 ` [PATCH v5 6/6] fetch: set remote/HEAD if it does not exist Bence Ferdinandy
2024-10-09 22:01 ` Junio C Hamano
2024-10-10 13:29 ` [PATCH v6 1/6] refs_update_symref: atomically record overwritten ref Bence Ferdinandy
2024-10-10 13:29 ` [PATCH v6 2/6] set-head: add new variable for readability Bence Ferdinandy
2024-10-10 13:29 ` [PATCH v6 3/6] set-head: better output for --auto Bence Ferdinandy
2024-10-10 21:05 ` karthik nayak
2024-10-11 9:03 ` Bence Ferdinandy
2024-10-11 16:31 ` Junio C Hamano
2024-10-11 20:43 ` karthik nayak
2024-10-12 22:29 ` Bence Ferdinandy
2024-10-15 7:51 ` karthik nayak
2024-10-15 14:10 ` Phillip Wood
2024-10-15 16:17 ` Bence Ferdinandy
2024-10-10 13:29 ` [PATCH v6 4/6] transaction: add TRANSACTION_CREATE_EXISTS error Bence Ferdinandy
2024-10-10 21:12 ` karthik nayak
2024-10-11 16:34 ` Junio C Hamano
2024-10-10 13:30 ` [PATCH v6 5/6] refs_update_symref: add create_only option Bence Ferdinandy
2024-10-10 13:30 ` [PATCH v6 6/6] fetch: set remote/HEAD if it does not exist Bence Ferdinandy
2024-10-12 23:03 ` [PATCH v7 1/6] refs: atomically record overwritten ref in update_symref Bence Ferdinandy
2024-10-12 23:03 ` [PATCH v7 2/6] remote set-head: add new variable for readability Bence Ferdinandy
2024-10-12 23:03 ` [PATCH v7 3/6] remote set-head: better output for --auto Bence Ferdinandy
2024-10-12 23:03 ` [PATCH v7 4/6] refs: add TRANSACTION_CREATE_EXISTS error Bence Ferdinandy
2024-10-13 14:03 ` Phillip Wood
2024-10-13 20:52 ` Bence Ferdinandy
2024-10-14 8:48 ` Phillip Wood
2024-10-12 23:03 ` [PATCH v7 5/6] refs: add create_only option to refs_update_symref Bence Ferdinandy
2024-10-12 23:03 ` [PATCH v7 6/6] fetch: set remote/HEAD if it does not exist Bence Ferdinandy
2024-10-13 13:52 ` [PATCH v7 1/6] refs: atomically record overwritten ref in update_symref Phillip Wood
2024-10-13 21:24 ` Bence Ferdinandy
2024-10-15 14:05 ` Phillip Wood
2024-10-15 17:25 ` Bence Ferdinandy
2024-10-19 22:53 ` Bence Ferdinandy
2024-10-14 22:53 ` [PATCH v8 0/6] set-head/fetch remote/HEAD updates, small change from v7 Bence Ferdinandy
2024-10-14 22:53 ` [PATCH v8 1/6] refs: atomically record overwritten ref in update_symref Bence Ferdinandy
2024-10-15 7:41 ` karthik nayak
2024-10-15 16:24 ` Bence Ferdinandy
2024-10-14 22:53 ` [PATCH v8 2/6] remote set-head: add new variable for readability Bence Ferdinandy
2024-10-14 22:53 ` [PATCH v8 3/6] remote set-head: better output for --auto Bence Ferdinandy
2024-10-15 7:47 ` karthik nayak
2024-10-15 16:31 ` Bence Ferdinandy
2024-10-14 22:53 ` [PATCH v8 4/6] refs: add TRANSACTION_CREATE_EXISTS error Bence Ferdinandy
2024-10-14 22:53 ` [PATCH v8 5/6] refs: add create_only option to refs_update_symref Bence Ferdinandy
2024-10-14 22:53 ` [PATCH v8 6/6] fetch: set remote/HEAD if it does not exist Bence Ferdinandy
2024-10-16 0:26 ` [PATCH v8 0/6] set-head/fetch remote/HEAD updates, small change from v7 Taylor Blau
2024-10-16 8:18 ` Bence Ferdinandy
2024-10-16 21:05 ` Taylor Blau
2024-10-17 15:23 ` Bence Ferdinandy
2024-10-19 22:53 ` [PATCH v9 0/7] set-head/fetch remote/HEAD updates Bence Ferdinandy
2024-10-19 22:53 ` [PATCH v9 1/7] t/t5505-remote: set default branch to main Bence Ferdinandy
2024-10-19 22:53 ` [PATCH v9 2/7] refs: atomically record overwritten ref in update_symref Bence Ferdinandy
2024-10-19 22:53 ` [PATCH v9 3/7] remote set-head: refactor for readability Bence Ferdinandy
2024-10-19 22:53 ` [PATCH v9 4/7] remote set-head: better output for --auto Bence Ferdinandy
2024-10-19 22:53 ` [PATCH v9 5/7] refs: add TRANSACTION_CREATE_EXISTS error Bence Ferdinandy
2024-10-19 22:53 ` [PATCH v9 6/7] refs: add create_only option to refs_update_symref_extended Bence Ferdinandy
2024-10-19 22:53 ` [PATCH v9 7/7] fetch: set remote/HEAD if it does not exist Bence Ferdinandy
2024-10-21 21:13 ` [PATCH v9 0/7] set-head/fetch remote/HEAD updates Bence Ferdinandy
2024-10-22 19:45 ` [PATCH v11 0/8] " Bence Ferdinandy
2024-10-22 19:45 ` [PATCH v11 1/8] t/t5505-remote: set default branch to main Bence Ferdinandy
2024-10-22 19:53 ` Kristoffer Haugsbakk
2024-10-22 20:14 ` Bence Ferdinandy
2024-10-23 15:09 ` Taylor Blau
2024-10-23 15:34 ` Bence Ferdinandy
2024-10-23 18:45 ` Taylor Blau
2024-10-22 19:45 ` [PATCH v11 2/8] refs: atomically record overwritten ref in update_symref Bence Ferdinandy
2024-10-22 19:45 ` [PATCH v11 3/8] remote set-head: refactor for readability Bence Ferdinandy
2024-10-22 19:45 ` [PATCH v11 4/8] remote set-head: better output for --auto Bence Ferdinandy
2024-10-22 19:45 ` [PATCH v11 5/8] refs: add TRANSACTION_CREATE_EXISTS error Bence Ferdinandy
2024-10-22 19:45 ` [PATCH v11 6/8] refs: add create_only option to refs_update_symref_extended Bence Ferdinandy
2024-10-22 19:45 ` [PATCH v11 7/8] fetch: set remote/HEAD if it does not exist Bence Ferdinandy
2024-10-22 19:45 ` [PATCH v11 8/8] fetch set_head: handle mirrored bare repositories Bence Ferdinandy
2024-10-23 15:36 ` [PATCH v12 0/8] set-head/fetch remote/HEAD updates Bence Ferdinandy
2024-10-23 15:36 ` [PATCH v12 1/8] t/t5505-remote: set default branch to main Bence Ferdinandy
2024-11-15 4:52 ` Junio C Hamano
2024-11-15 22:03 ` Bence Ferdinandy
2024-10-23 15:36 ` [PATCH v12 2/8] refs: atomically record overwritten ref in update_symref Bence Ferdinandy
2024-11-15 5:50 ` Junio C Hamano
2024-11-15 22:18 ` Bence Ferdinandy
2024-11-15 23:27 ` Bence Ferdinandy
2024-11-16 7:58 ` Junio C Hamano
2024-11-17 23:39 ` Bence Ferdinandy
2024-11-18 0:39 ` Junio C Hamano
2024-11-18 7:22 ` Patrick Steinhardt
2024-11-18 8:08 ` Bence Ferdinandy
2024-11-18 8:24 ` Patrick Steinhardt
2024-11-18 11:37 ` Bence Ferdinandy
2024-10-23 15:36 ` [PATCH v12 3/8] remote set-head: refactor for readability Bence Ferdinandy
2024-11-15 5:50 ` Junio C Hamano
2024-10-23 15:36 ` [PATCH v12 4/8] remote set-head: better output for --auto Bence Ferdinandy
2024-11-15 5:50 ` Junio C Hamano
2024-11-15 22:49 ` Bence Ferdinandy
2024-11-15 23:13 ` Bence Ferdinandy
2024-11-16 0:22 ` Junio C Hamano
2024-11-16 0:15 ` Junio C Hamano
2024-11-16 14:43 ` Bence Ferdinandy
2024-10-23 15:36 ` [PATCH v12 5/8] refs: add TRANSACTION_CREATE_EXISTS error Bence Ferdinandy
2024-10-23 15:36 ` [PATCH v12 6/8] refs: add create_only option to refs_update_symref_extended Bence Ferdinandy
2024-10-23 15:36 ` [PATCH v12 7/8] fetch: set remote/HEAD if it does not exist Bence Ferdinandy
2024-10-23 16:50 ` Kristoffer Haugsbakk
2024-10-23 17:07 ` Bence Ferdinandy
2024-10-23 15:36 ` [PATCH v12 8/8] fetch set_head: handle mirrored bare repositories Bence Ferdinandy
2024-11-14 20:23 ` [PATCH v12 0/8] set-head/fetch remote/HEAD updates Bence Ferdinandy
2024-11-18 15:09 ` [PATCH v13 0/9] " Bence Ferdinandy
2024-11-18 15:09 ` [PATCH v13 1/9] t/t5505-remote: set default branch to main Bence Ferdinandy
2024-11-20 3:46 ` Junio C Hamano
2024-11-18 15:09 ` [PATCH v13 2/9] refs: standardize output of refs_read_symbolic_ref Bence Ferdinandy
2024-11-19 1:22 ` Junio C Hamano
2024-11-19 6:44 ` Patrick Steinhardt
2024-11-19 6:54 ` Junio C Hamano
2024-11-19 7:26 ` Patrick Steinhardt
2024-11-19 10:10 ` Bence Ferdinandy
2024-11-19 5:10 ` Junio C Hamano
2024-11-19 10:04 ` Bence Ferdinandy
2024-11-19 6:48 ` Patrick Steinhardt
2024-11-19 10:17 ` Bence Ferdinandy
2024-11-18 15:09 ` [PATCH v13 3/9] refs: atomically record overwritten ref in update_symref Bence Ferdinandy
2024-11-18 15:09 ` [PATCH v13 4/9] remote set-head: refactor for readability Bence Ferdinandy
2024-11-18 15:09 ` [PATCH v13 5/9] remote set-head: better output for --auto Bence Ferdinandy
2024-11-19 2:27 ` Junio C Hamano
2024-11-19 10:29 ` Bence Ferdinandy
2024-11-19 10:54 ` Junio C Hamano
2024-11-19 11:33 ` Bence Ferdinandy
2024-11-20 12:49 ` Bence Ferdinandy
2024-11-20 23:56 ` Junio C Hamano
2024-11-18 15:09 ` [PATCH v13 6/9] refs: add TRANSACTION_CREATE_EXISTS error Bence Ferdinandy
2024-11-18 15:09 ` [PATCH v13 7/9] refs: add create_only option to refs_update_symref_extended Bence Ferdinandy
2024-11-19 2:54 ` Junio C Hamano
2024-11-18 15:09 ` [PATCH v13 8/9] fetch: set remote/HEAD if it does not exist Bence Ferdinandy
2024-11-19 3:16 ` Junio C Hamano
2024-11-19 11:27 ` Bence Ferdinandy
2024-11-20 1:00 ` Junio C Hamano
2024-11-20 2:28 ` Junio C Hamano
2024-11-20 10:45 ` Bence Ferdinandy
2024-11-18 15:09 ` [PATCH v13 9/9] fetch set_head: handle mirrored bare repositories Bence Ferdinandy
2024-11-21 22:55 ` [PATCH v14 00/10] set-head/fetch remote/HEAD updates Bence Ferdinandy
2024-11-21 22:55 ` [PATCH v14 01/10] t/t5505-remote: set default branch to main Bence Ferdinandy
2024-11-21 22:55 ` [PATCH v14 02/10] t/t5505-remote: test failure of set-head Bence Ferdinandy
2024-11-22 4:54 ` Junio C Hamano
2024-11-21 22:55 ` [PATCH v14 03/10] refs: standardize output of refs_read_symbolic_ref Bence Ferdinandy
2024-11-22 10:37 ` karthik nayak
2024-11-22 10:53 ` Bence Ferdinandy
2024-11-22 10:55 ` Bence Ferdinandy
2024-11-22 11:30 ` karthik nayak
2024-11-22 12:23 ` Bence Ferdinandy
2024-11-25 2:56 ` Junio C Hamano
2024-11-26 14:57 ` Bence Ferdinandy
2024-11-26 16:53 ` karthik nayak
2024-11-26 20:02 ` Junio C Hamano
2024-11-26 20:56 ` Bence Ferdinandy
2024-11-26 21:39 ` Junio C Hamano
2024-11-26 20:44 ` Bence Ferdinandy
2024-11-22 11:27 ` Bence Ferdinandy
2024-11-21 22:55 ` [PATCH v14 04/10] refs: atomically record overwritten ref in update_symref Bence Ferdinandy
2024-11-21 22:55 ` [PATCH v14 05/10] remote set-head: refactor for readability Bence Ferdinandy
2024-11-21 22:55 ` [PATCH v14 06/10] remote set-head: better output for --auto Bence Ferdinandy
2024-11-21 22:55 ` [PATCH v14 07/10] refs: add TRANSACTION_CREATE_EXISTS error Bence Ferdinandy
2024-11-21 22:55 ` [PATCH v14 08/10] refs: add create_only option to refs_update_symref_extended Bence Ferdinandy
2024-11-21 22:55 ` [PATCH v14 09/10] fetch: set remote/HEAD if it does not exist Bence Ferdinandy
2024-11-21 22:55 ` [PATCH v14 10/10] fetch set_head: handle mirrored bare repositories Bence Ferdinandy
2024-11-22 12:28 ` [PATCH v15 00/10] set-head/fetch remote/HEAD updates Bence Ferdinandy
2024-11-22 12:28 ` [PATCH v15 01/10] t/t5505-remote: set default branch to main Bence Ferdinandy
2024-11-22 12:28 ` [PATCH v15 02/10] t/t5505-remote: test failure of set-head Bence Ferdinandy
2024-11-22 12:28 ` [PATCH v15 03/10] refs: standardize output of refs_read_symbolic_ref Bence Ferdinandy
2024-11-22 12:28 ` [PATCH v15 04/10] refs: atomically record overwritten ref in update_symref Bence Ferdinandy
2024-11-22 12:28 ` [PATCH v15 05/10] remote set-head: refactor for readability Bence Ferdinandy
2024-11-22 12:28 ` [PATCH v15 06/10] remote set-head: better output for --auto Bence Ferdinandy
2024-11-22 12:28 ` [PATCH v15 07/10] refs: add TRANSACTION_CREATE_EXISTS error Bence Ferdinandy
2024-11-22 12:28 ` [PATCH v15 08/10] refs: add create_only option to refs_update_symref_extended Bence Ferdinandy
2024-11-22 12:28 ` [PATCH v15 09/10] fetch: set remote/HEAD if it does not exist Bence Ferdinandy
2024-12-05 18:58 ` Josh Steadmon
2024-12-05 19:50 ` Josh Steadmon
2024-12-05 20:09 ` Bence Ferdinandy
2024-12-05 20:11 ` Josh Steadmon
2024-12-05 20:27 ` [PATCH] Fix `git fetch --tags` in repo with no configured remote Josh Steadmon
2024-12-06 3:07 ` Junio C Hamano
2024-12-06 3:28 ` Junio C Hamano
2024-12-06 4:00 ` Junio C Hamano
2024-12-06 8:07 ` Re* " Junio C Hamano
2024-12-06 8:08 ` Junio C Hamano
2024-12-06 11:23 ` Bence Ferdinandy [this message]
2024-12-06 11:30 ` Junio C Hamano
2024-12-05 20:57 ` [PATCH v15 09/10] fetch: set remote/HEAD if it does not exist Bence Ferdinandy
2024-11-22 12:28 ` [PATCH v15 10/10] fetch set_head: handle mirrored bare repositories Bence Ferdinandy
2024-11-27 9:16 ` [PATCH v1] fetch: add configuration for set_head behaviour Bence Ferdinandy
2024-11-27 13:46 ` Junio C Hamano
2024-11-27 19:20 ` Bence Ferdinandy
2024-11-28 0:12 ` Junio C Hamano
2024-11-28 5:49 ` Bence Ferdinandy
2024-11-28 6:06 ` Junio C Hamano
2024-12-03 21:56 ` [RFC PATCH v1 0/2] set_head finishing touches Bence Ferdinandy
2024-12-03 21:56 ` [RFC PATCH v1 1/2] fetch set_head: add warn-if-not-$branch option Bence Ferdinandy
2024-12-04 2:20 ` Junio C Hamano
2024-12-04 8:15 ` Bence Ferdinandy
2024-12-03 21:56 ` [RFC PATCH v1 2/2] remote set-head: set followRemoteHEAD to "warn" if "always" Bence Ferdinandy
2024-12-04 2:22 ` Junio C Hamano
2024-12-04 10:39 ` [PATCH v2 1/3] fetch set_head: move warn advice into advise_if_enabled Bence Ferdinandy
2024-12-04 10:39 ` [PATCH v2 2/3] fetch set_head: add warn-if-not-$branch option Bence Ferdinandy
2024-12-04 10:39 ` [PATCH v2 3/3] remote set-head: set followRemoteHEAD to "warn" if "always" Bence Ferdinandy
2024-12-04 11:43 ` Kristoffer Haugsbakk
2024-12-04 20:40 ` Junio C Hamano
2024-12-04 20:44 ` Kristoffer Haugsbakk
2024-12-05 8:14 ` Bence Ferdinandy
2024-12-05 12:16 ` [PATCH v3 1/3] fetch set_head: move warn advice into advise_if_enabled Bence Ferdinandy
2024-12-05 12:16 ` [PATCH v3 2/3] fetch set_head: add warn-if-not-$branch option Bence Ferdinandy
2025-01-05 11:42 ` Teng Long
2025-01-05 15:13 ` Bence Ferdinandy
2025-01-05 16:09 ` [PATCH] fetch: fix erroneous set_head advice message Bence Ferdinandy
2025-01-06 14:50 ` Junio C Hamano
2024-12-05 12:16 ` [PATCH v3 3/3] remote set-head: set followRemoteHEAD to "warn" if "always" Bence Ferdinandy
2024-12-04 19:28 ` [PATCH v2 1/3] fetch set_head: move warn advice into advise_if_enabled Junio C Hamano
2024-11-28 11:19 ` [PATCH v2] fetch: add configuration for set_head behaviour Bence Ferdinandy
2024-11-28 23:06 ` [PATCH v3] " Bence Ferdinandy
2024-12-02 0:58 ` Junio C Hamano
2024-11-28 23:09 ` Bence Ferdinandy
2024-09-19 12:13 ` [PATCH v3 2/2] fetch: set remote/HEAD if it does not exist Bence Ferdinandy
2024-09-19 23:07 ` Junio C Hamano
2024-09-20 13:50 ` Bence Ferdinandy
2024-09-10 20:37 ` [RFC PATCH v2 2/2] set-head: do not update if there is no change Bence Ferdinandy
2024-09-10 22:29 ` [RFC PATCH v2 0/2] set remote/HEAD with fetch Junio C Hamano
2024-09-11 12:24 ` Bence Ferdinandy
2024-09-11 15:59 ` 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=D64KVBBE5WVH.19V9S7ZY89IZS@ferdinandy.com \
--to=bence@ferdinandy.com \
--cc=Johannes.Schindelin@gmx.de \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jonathantanmy@google.com \
--cc=karthik.188@gmail.com \
--cc=l.s.r@web.de \
--cc=me@ttaylorr.com \
--cc=phillip.wood@dunelm.org.uk \
--cc=ps@pks.im \
--cc=steadmon@google.com \
/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).