Re: Dropping '+' from fetch = +refs/heads/*:refs/remotes/origin/*?
- From
Johannes Sixt <j.sixt@viscovery.net>
- Date
- Sep 2, 2011, 07:00 UTC
- Message-ID
- <4E607F27.2000405@viscovery.net>
- In-Reply-To
- <20110902000039.GB9339@sigill.intra.peff.net>
Am 9/2/2011 2:00, schrieb Jeff King:
> Right now, I think of it as a local cache for whatever the remote side > has. In other words, a way of separating the network-fetching parts of > the workflow from the local parts.
This is also my interpretation. For this reason, I don't think a change is necessary.
Show 9 quoted lines
> So I consider that a downside, because it's extra work for the user[1]. > What are the upsides? > > Is this about preventing workflow-related mistakes where people > accidentally merge in rebased commits, creating annoying shadow > histories? > > Is it about preventing malicious rewinds from infecting downstream > repositories?
All good questions to ask.
Show 14 quoted lines
> [1] What I really don't like is that cloning git.git is no longer: > > git clone git://git.kernel.org/pub/scm/git/git.git > > which is a minimal as it can be, but becomes: > > git clone git://git.kernel.org/pub/scm/git/git.git > cd git > git config --add remote.origin.fetch +refs/heads/pu:refs/remotes/origin/pu > > It's not that my fingers are too tired to do all that typing, but > rather that the first set of instructions is very easy to explain, > and the second one is full of magic and head-scratching about why > git isn't handling this magic itself.
Absolutely.
> It would be considerably nicer if the server had some way of saying > "I expect this branch to be rewound". Which has been discussed off > and on over the years, as I recall.
So, if such a feature were available, wouldn't it be nicer if the initial clone set up the refspec like this:
[remote "origin"]
url = git://git.kernel.org/pub/scm/git/git.git
fetch = +refs/heads/*:refs/remotes/origin/*
fetch = refs/heads/maint:refs/remotes/origin/maint
fetch = refs/heads/master:refs/remotes/origin/masteri.e., the non-wildcard refspec are about which branches are *not* expected to be rewound rather than the other way around.
-- Hannes