Re: can I remove or move a tag in a remote repository?
- From
Johannes Schindelin <johannes.schindelin@gmx.de>
- Date
- Nov 29, 2006, 09:54 UTC
- Message-ID
- <Pine.LNX.4.63.0611291040590.30004@wbgn013.biozentrum.uni-wuerzburg.de>
- In-Reply-To
- <7virgz1bz7.fsf@assigned-by-dhcp.cox.net>
Hi,
On Tue, 28 Nov 2006, Junio C Hamano wrote:
Show 36 quoted lines
> Jim Meyering <jim@meyering.net> writes: > > > Here's the problem: > > When I try to push the new tags, git-push fails: > > > > $ git-push -f --tags ssh+git://git.sv.gnu.org/srv/git/coreutils master:refs/heads/master > > updating 'refs/tags/cvs-head' > > from 2fd3fd29a8b40be695bc2327c8cd3bd33e521100 > > to db18f53ffb221e9957124d8af81c11a7e350ac3b > > ... > > Total 1, written 1 (delta 0), reused 0 (delta 0) > > Unpacking 1 objects > > error: denying non-fast forward; you should pull first > > > > I get the same error also when using --force. > > I think this is due to overeager receive.denyNonFastForwards > configuration setting at the repository you are pushing into. > > I _think_ what receive-pack does in this case is totally wrong. > It should either: > > (1) deny overwriting existing tags -- tags are meant to be > immutable so it should not allow them to be "updated" > regardless of fast-forwardness, or > > (2) allow overwriting things under refs/tags/ without any > fast-forward checking. After all, a tag could point at a > tree or a blob, and there is no fast-forwardness among > trees. > > The client side check in "git fetch" takes the latter viewpoint, > and I think we should be consistent with it. > > Johannes, what do you think? Does the following patch look sane > to you?
It does if you agree that (2) is correct.
But I don't agree. cvs-head really should be a head IMHO, not a tag, because cvs-head really tracks a branch.
I also think that git-fetch silently updating tags is wrong. Rather, it should warn that the tags are different. But I've been wrong before.
Ciao, Dscho