Re: [PATCH] push.default: Rename 'tracking' to 'upstream'

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

 



Sverre Rabbelier <srabbelier@xxxxxxxxx> writes:

> On Wed, Feb 16, 2011 at 10:26, Matthieu Moy
> <Matthieu.Moy@xxxxxxxxxxxxxxx> wrote:
>>> I think that for 'branch.<name>.upstream' it would make more sense to
>
> I like the idea of naming it 'upstream', although I don't care much
> either way for restricting what you specify. I've always thought
> 'merge' was a curious name that didn't really fit with my mental model
> of what I was configuring.

That pretty much comes from the days back when 'merge' was the only method
of integrating with what the other party did.  

I agree "upstream" is a better name.  The name "merge" is about what
operation uses it, and does not say why it is used (i.e. "we merge with it
because it is _the other end_ of the integration"); the latter is a more
important thing to express.

Until another method of integration (namely, rebase) started using the
same mechanism, this was Ok, but when it happend, the name "merge"
immediately stopped making sense, but we did not rename nor give a synonym
to the variable.

The name "upstream" prepares us for yet another method of integration that
nobody has invented yet.

As to its value being what the other end calls the source, I think it is
not a good idea to change it, and it is even a worse idea to add a new
configuration variable that points into the tracking branches on our side.
@{upstream} is a short-hand notation to call the tracking branch of the
"upstream" we have been discussing, and has to point at refs/remotes/
hierarchy, but the entire point of the notation is that the users do not
have to see/type "refs/remotes/" when they say

    $ git merge @{upstream}

but at the level of an end-user's world-view, his branch that was forked
from origin's "master" integrates with origin's "master", and the use of
an intermediary, the refs/remotes/origin/master remote tracking branch
that is kept on the local side, is a mere implementation detail.

IOW, I consider --set-upstream that takes refs/remotes without bothering
to go through the remotes.<name>.fetch mapping is a design bug (it may
have come from sloppy initial coding---it certainly is easier to store
what you get without computing anything).  That may be something we might
want to fix in 1.8.0.
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[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]