Re: [PATCH 00/11] Start retiring .git/remotes/ and .git/branches/ for good

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Junio,

On Sat, 13 May 2017, Junio C Hamano wrote:

> Johannes Schindelin <Johannes.Schindelin@xxxxxx> writes:
> 
> > 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.

M'kay. Not quite sure how that differs from my use case, which works quite
well with the "config" way. My `git remote | wc -l` says 21.

Let me re-format what you said next.

> 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.

So if I understand correctly, you want to do

(1) `git remote -v | grep <part-of-the-url>`

(2) `git remote show <shortname>`

(3) if (1) did not find it:
	`git remote add -f <short-name> <URL>`,
    otherwise:
	`git fetch <shortname>`

(4) `git remove rm <shortname>`

I have to admit that I used `git remote -v | grep ^<shortname>` for (2)
all the time, until I had a quick look at builtin/remote.c so I would not
make a complete fool out of myself in this reply, and I will use `git -p
remote show <shortname>` henceforth.

As to (1), I really do not use this myself, as my remotes pretty much
always have names that I remember very well. And if I don't, neither do I
remember the URL, so I have to sift through the output of `git -p remote
-v` manually anyway.

> >> 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.

No, I was, and I am still at least partially confused. I just read your
"We simply cannot beat ..." as a round-about way to say "I wish we had an
easy way to do XYZ" without stating the XYZ in a way that even dimwits
such as myself can understand.

> 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.

Okay, so my quest at removing maintenance burden is not entirely pointless
an exercise and a waste of my time.

Good. I will continue to work on that front, then, among other things.

Ciao,
Dscho



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]