Re: fetch <repo> <branch>:<branch> fetches tags?

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

 



Junio C Hamano wrote:
> Brandon Casey <drafnel@xxxxxxxxx> writes:
> 
>>> Having said that, I do not particularly think the new behaviour
>>> is bad per-se.  If you are storing what you fetched locally in
>>> tracking branches, you are interested in their work enough to
>>> want to auto-follow their tags.
>> How is "tracking" defined? Is this a term that implies some configuration
>> to link a local branch to a remote branch? Or is any local branch created
>> from a remote branch considered "tracking"?
> 
> I probably should have said "Instead of just letting fetch
> temporarily store the result in FETCH_HEAD and using it from
> there, you saved it away; that's a good indication of you care
> about it deeply enough".
> 
> It's really about what's convenient.  I was somewhat upset that
> the behaviour change was not I was very aware of (perhaps I said
> it was a good idea and I then forgot), I didn't think the
> earlier behaviour was broken, but if I have to choose, I think
> the new behaviour is probably slightly nicer than the old one.

It feels a little inconsistent to me.

With this behavior adopted as standard, then all forms of fetch will
fetch tags except for 'git-fetch <repo> <branch>'. I think this is
probably the least used form for porcelain.

What I understand you to be saying is that creating a branch during
fetch indicates "I care deeply enough, so I want tags". At the moment,
I don't know why I would fetch if I didn't want to make a branch. Even
if I just wanted to cherry-pick one patch, or one source file, or (some
other contrived example), I think I would create a branch to give it
some anchor point, and why not create the branch during the fetch.

And, if I fetch now with the colon notation implying I want tags, later,
if I 'git pull <repo> <branch>' from within that branch, why does that
imply that I do not still want tags just because I'm not creating a 'new'
branch.

I think the current metric for indicating "caring deeply enough" is the
remote tracking configuration. Tracking implies "I care deeply enough,
I want tags", lack of tracking does not imply this. But I said this already
in another email. I am not sure if this feels right because it is documented
or because it is right.

An alternative to this is to make fetch completely consistent so it either
"always" gets tags, or "never" gets tags, and requires an option to reverse
its behavior.

It seems to me that "never" gets tags is the safer choice. This is because
accidentally fetching tags is a pain to clean up, but if I forget to ask
for tags, I just run the same command again and ask this time. If I fetch
or pull and use the --tags (the current --tags should be changed to --all-tags)
then I know what I am doing.

The documented behavior for tracking branches and fetching tags could be
retained by requiring a fetch option in the branch configuration and
modifying git-remote and commands that use --track, to add the option
by default. The big downside is that this would require existing repositories
to update their config file which would also cause confusion.

-brandon

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

  Powered by Linux