Re: [PATCH 00/11] Start retiring .git/remotes/ and .git/branches/ for good
- From
Junio C Hamano <gitster@pobox.com>
- Date
- May 12, 2017, 21:11 UTC
- Message-ID
- <xmqq7f1l6as6.fsf@gitster.mtv.corp.google.com>
- In-Reply-To
- <alpine.DEB.2.21.1.1705121617420.146734@virtualbox>
Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
Show 17 quoted lines
> On Fri, 12 May 2017, Junio C Hamano wrote: >> ... >> FWIW, I do not think there is any reason for people to be using >> .git/remotes/, but for .git/branches/, I do not think I can offer a >> more efficient and easier to use alternative based on .git/config to >> do these things: >> >> $ grep <substring> .git/branches/* ;# what did I call that remote? >> $ cat .git/branches/$name ;# where do I get that from? >> $ echo "$URL#$branch" >.git/branches/$name ;# I just learned a new src >> $ rm .git/branch/$name ;# I no longer need it >> >> without having to learn things experienced CLI/UNIX person already >> knows. > > I do not understand what you want to tell me with that example. It is > confusing me utterly.
They show how it helps a user, whose primary use of Git is to fetch from many places, to keep the the old "branches" machinery. It is not "hard" to migrate in the sense that there is a way to (1) find the short-name you gave to a remote from a part of URL etc., (2) find the exact attributes of the repository a short-name refers to, (3) update an existing or add a new short-name and (4) remove an existing one. The remotes.*.{url,fetch} configuration are expressive enough to represent these operations. It however is more work and I couldn't think of alternatives.
Show 9 quoted lines
> >> We simply cannot beat the above with anything like >> >> $ git config remote.$name.fetch refs/heads/$branch >> >> even though the config based remote definition may be infinitely >> more powerful. > > Then maybe we need to teach, say, `git remote` to be that powerful?
Ah, after all, you weren't confused utterly.
Not necessarily "that powerful", but yes, if we had something that is quick and easy to use as a replacement, I do agree we can plan .git/{branches,remotes}'s removal. The point of "branches" thing to existing users, I think, is not its expressive power (it is much much simpler and can do only one thing) but its simplicity.
Thanks.