From: Patrick Steinhardt <ps@pks.im>
To: Junio C Hamano <gitster@pobox.com>
Cc: git@vger.kernel.org
Subject: Re: [PATCH 01/10] contrib: remove "remotes2config.sh"
Date: Wed, 7 May 2025 08:27:34 +0200 [thread overview]
Message-ID: <aBr9VuYurCCvRYnj@pks.im> (raw)
In-Reply-To: <xmqqr011ikjc.fsf@gitster.g>
On Tue, May 06, 2025 at 12:52:39PM -0700, Junio C Hamano wrote:
> Patrick Steinhardt <ps@pks.im> writes:
>
> > Remotes can be configured either via a repository's config or by using
> > the ".git/branches/" or ".git/remotes/" directories. Back when the new
> > config-based mechanism has been introduced we also introduced a helper
> > script that migrates from the old-style remote configuration to the new
> > config-based mechanism.
> >
> > With the recent removal announcement for the two directories we also
> > started to instruct users to migrate repositories that still use these
> > mechanism to use config-based remotes. Notably though, the migration
> > path doesn't even use the migration script. Instead, git-remote(1)
> > itself knows how to migrate any such remote via `git remote rename`.
>
> Makes sense.
>
> This logically comes after your series, which ended at 8ccc75c2
> (remote: announce removal of "branches/" and "remotes/",
> 2025-01-22), lands. After that, we can safely remove this script at
> the 3.0 boundary, at the same time we clean up the code paths that
> are conditionally compiled with WITH_BREAKING_CHANGES.
>
> > Furthermore, the script hasn't been touched since afa75bc8aa1 (contrib:
> > Make remotes2config.sh script more robust, 2007-12-02).
>
> A single-purpose thing that is done correctly on top of a right
> abstraction does not necessarily need further updates, so I doubt
> this paragraph contributes to the decision to remove the script in
> any way.
>
> > Given that there is a migration path without this script it is very
> > unlikely that anyone still uses the script. Remove it.
>
> Sounds good, but not right now, I presume?
I think it should be fine to remove it right now. If it was the
canonical way to migrate repos to the new format we definitely
shouldn't. But nowhere in our tree do we even point to this script, and
the deprecation notice we have created explicitly tells users to use
`git remote rename`:
static void warn_about_deprecated_remote_type(const char *type,
const struct remote *remote)
{
warning(_("reading remote from \"%s/%s\", which is nominated for removal.\n"
"\n"
"If you still use the \"remotes/\" directory it is recommended to\n"
"migrate to config-based remotes:\n"
"\n"
"\tgit remote rename %s %s\n"
"\n"
"If you cannot, please let us know why you still need to use it by\n"
"sending an e-mail to <git@vger.kernel.org>."),
type, remote->name, remote->name, remote->name);
}
So I highly doubt this script plays any role in the migration towards
config-based remotes. Also because the script only cares about the
"remotes/" directory -- it doesn't even know to migrate remotes from
"branches/".
Another data point: the script doesn't even work as-is, as it sources
". git-sh-setup". So for it to work it would need to be installed into
"$prefix/libexec/git-core" together with our other tools, or it needs to
be called so that "git-sh-setup" is in the user's PATH. Both of which
seems quite unlikely to me.
All of this reasoning should of course go into the commit message.
Patrick
next prev parent reply other threads:[~2025-05-07 6:27 UTC|newest]
Thread overview: 87+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-05-06 14:12 [PATCH 00/10] Spring cleanup of "contrib/" Patrick Steinhardt
2025-05-06 14:12 ` [PATCH 01/10] contrib: remove "remotes2config.sh" Patrick Steinhardt
2025-05-06 19:52 ` Junio C Hamano
2025-05-07 6:27 ` Patrick Steinhardt [this message]
2025-05-07 17:21 ` Junio C Hamano
2025-05-06 14:12 ` [PATCH 02/10] contrib: remove "examples" directory Patrick Steinhardt
2025-05-06 14:12 ` [PATCH 03/10] contrib: remove remote-helper stubs Patrick Steinhardt
2025-05-06 14:12 ` [PATCH 04/10] contrib: remove "thunderbird-patch-inline" Patrick Steinhardt
2025-05-06 14:12 ` [PATCH 05/10] contrib: remove "hooks" directory Patrick Steinhardt
2025-05-06 14:12 ` [PATCH 06/10] contrib: remove "mw-to-git" Patrick Steinhardt
2025-05-06 20:34 ` Junio C Hamano
2025-05-07 9:11 ` Matthieu Moy
2025-05-06 14:12 ` [PATCH 07/10] contrib: remove "persistent-https" remote helper Patrick Steinhardt
2025-05-06 20:25 ` Junio C Hamano
2025-05-06 14:12 ` [PATCH 08/10] contrib: remove "git-resurrect.sh" Patrick Steinhardt
2025-05-06 20:11 ` Junio C Hamano
2025-05-07 6:58 ` Patrick Steinhardt
2025-05-07 17:48 ` Junio C Hamano
2025-05-07 18:36 ` Kristoffer Haugsbakk
2025-05-06 14:12 ` [PATCH 09/10] contrib: remove "emacs" directory Patrick Steinhardt
2025-05-06 19:59 ` Junio C Hamano
2025-05-06 14:12 ` [PATCH 10/10] contrib: remove "git-new-workdir" Patrick Steinhardt
2025-05-06 19:57 ` Junio C Hamano
2025-05-07 6:27 ` Patrick Steinhardt
2025-05-07 17:25 ` Junio C Hamano
2025-05-09 7:53 ` Patrick Steinhardt
2025-05-06 20:43 ` [PATCH 00/10] Spring cleanup of "contrib/" Junio C Hamano
2025-05-06 22:51 ` Eric Sunshine
2025-05-07 1:32 ` Todd Zullinger
2025-05-07 3:55 ` Eric Sunshine
2025-05-07 6:27 ` Patrick Steinhardt
2025-05-10 20:07 ` D. Ben Knoble
2025-05-12 13:10 ` Phillip Wood
2025-05-09 9:17 ` [PATCH v2 00/11] " Patrick Steinhardt
2025-05-09 9:17 ` [PATCH v2 01/11] contrib: remove "remotes2config.sh" Patrick Steinhardt
2025-05-09 9:17 ` [PATCH v2 02/11] contrib: remove "examples" directory Patrick Steinhardt
2025-05-09 9:17 ` [PATCH v2 03/11] contrib: remove remote-helper stubs Patrick Steinhardt
2025-05-09 9:17 ` [PATCH v2 04/11] contrib: remove "thunderbird-patch-inline" Patrick Steinhardt
2025-05-09 9:17 ` [PATCH v2 05/11] contrib: remove "hooks" directory Patrick Steinhardt
2025-05-09 9:17 ` [PATCH v2 06/11] contrib: remove "mw-to-git" Patrick Steinhardt
2025-05-09 9:17 ` [PATCH v2 07/11] contrib: remove "persistent-https" remote helper Patrick Steinhardt
2025-05-09 9:17 ` [PATCH v2 08/11] contrib: remove "git-resurrect.sh" Patrick Steinhardt
2025-05-09 9:17 ` [PATCH v2 09/11] contrib: remove "emacs" directory Patrick Steinhardt
2025-05-09 9:17 ` [PATCH v2 10/11] contrib: remove "git-new-workdir" Patrick Steinhardt
2025-05-09 9:17 ` [PATCH v2 11/11] contrib: remove "stats" directory Patrick Steinhardt
2025-05-09 23:31 ` Elijah Newren
2025-05-09 23:53 ` [PATCH v2 00/11] Spring cleanup of "contrib/" Elijah Newren
2025-05-10 0:00 ` Junio C Hamano
2025-05-12 9:39 ` Patrick Steinhardt
2025-05-12 4:05 ` [PATCH v2 04/11] contrib: remove "thunderbird-patch-inline" Collin Funk
2025-05-12 13:02 ` Phillip Wood
2025-05-12 14:45 ` Patrick Steinhardt
2025-05-12 16:22 ` Junio C Hamano
2025-05-14 15:19 ` Phillip Wood
2025-05-16 13:53 ` [PATCH v2] contrib: update thunderbird-patch-inline Phillip Wood
2025-05-16 14:05 ` Kristoffer Haugsbakk
2025-05-19 5:38 ` Patrick Steinhardt
2025-05-19 5:50 ` Collin Funk
2025-05-19 14:21 ` Phillip Wood
2025-06-03 22:12 ` Junio C Hamano
2025-05-19 15:48 ` Junio C Hamano
2025-05-10 12:30 ` [PATCH 00/10] Spring cleanup of "contrib/" Peter Krefting
2025-05-12 9:19 ` [PATCH v3 00/11] " Patrick Steinhardt
2025-05-12 9:19 ` [PATCH v3 01/11] contrib: remove "remotes2config.sh" Patrick Steinhardt
2025-05-12 9:19 ` [PATCH v3 02/11] contrib: remove "examples" directory Patrick Steinhardt
2025-05-12 9:19 ` [PATCH v3 03/11] contrib: remove remote-helper stubs Patrick Steinhardt
2025-05-12 9:19 ` [PATCH v3 04/11] contrib: remove "thunderbird-patch-inline" Patrick Steinhardt
2025-05-16 22:49 ` Junio C Hamano
2025-05-26 8:47 ` Toon Claes
2025-06-04 14:45 ` Junio C Hamano
2025-05-12 9:19 ` [PATCH v3 05/11] contrib: remove "hooks" directory Patrick Steinhardt
2025-05-12 9:19 ` [PATCH v3 06/11] contrib: remove "mw-to-git" Patrick Steinhardt
2025-05-12 9:19 ` [PATCH v3 07/11] contrib: remove "persistent-https" remote helper Patrick Steinhardt
2025-05-12 9:19 ` [PATCH v3 08/11] contrib: remove "git-resurrect.sh" Patrick Steinhardt
2025-05-12 9:19 ` [PATCH v3 09/11] contrib: remove "emacs" directory Patrick Steinhardt
2025-05-12 9:20 ` [PATCH v3 10/11] contrib: remove "git-new-workdir" Patrick Steinhardt
2025-09-08 9:28 ` Gabriel Scherer
2025-09-08 9:58 ` Kristoffer Haugsbakk
2025-09-08 15:22 ` Gabriel Scherer
2025-09-12 18:14 ` D. Ben Knoble
2025-09-12 18:55 ` Gabriel Scherer
2025-09-12 22:21 ` Junio C Hamano
2025-09-12 20:05 ` Phillip Wood
2025-09-12 22:19 ` Junio C Hamano
2025-09-08 18:43 ` Junio C Hamano
2025-05-12 9:20 ` [PATCH v3 11/11] contrib: remove some scripts in "stats" directory Patrick Steinhardt
2025-05-13 2:53 ` [PATCH v3 00/11] Spring cleanup of "contrib/" Elijah Newren
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=aBr9VuYurCCvRYnj@pks.im \
--to=ps@pks.im \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.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).