Subject: Re: [PATCH v2 0/5] remote: announce removal of "branches/" and "remotes/"

From: Patrick Steinhardt <[email-masked]>
Date: Tue, 7 Jan 2025 13:48:19 +0100

On Mon, Jan 06, 2025 at 07:42:25AM -0800, Junio C Hamano wrote:
> Patrick Steinhardt <[email-masked]> writes:
> 
> > back when Git was in its infancy, remotes were configured via separate
> > files in "branches/" (back in 2005). This mechanism was replaced later
> > that year with the "remotes/" directory. These mechanism have evenutally
> > been replaced by config-based remotes,...
> 
> Just a historical note, as I am not sure how much of it still
> matters.  In all of the above "replaced" is an incorrect verb to
> use.  "A more-powerful-but-different mechanism to do the same and
> more was introduced later" is a fair statement, though.
> 
> Specifically the ".git/branches/name" mechanism was never removed as
> it had one distinct advantage over all other mechanisms for users
> who have to juggle tons of remotes that change either their URLs or
> branch names or both not so infrequently.  Instead of having to edit
> files in .git/remotes/*, being able to say
> 
> 	$ ls .git/branches/*partialname*
> 	$ echo "$URL#$branch" >.git/branches/foo
> 	$ rm .git/brnaches/foo
> 
> was powerful.  Offhand I do not know if "git remote" command
> improved the usability aspect of newer mechanisms good enough
> to allow us to start using the verb "replace" here.

I would claim the fact that nobody nowadays knows about either of the
old mechanisms is a good indicator that git-remote(1) has indeed
completely replaced them. I'm happy to slightly reword it though, even
if it doesn't ultimately end up in any of the commits anyway :)

Patrick