[PATCH] convert: make tags children of the nodes they tag

Edouard Gomez < ed.gomez at free.fr
Wed Jul 11 04:47:56 CDT 2007


Brendan Cully <brendan <at> kublai.com> writes:
> They also have the same date and branch as the nodes they tag. One
> advantage of this scheme is that a clone -r branch will get the tags
> that belong on that branch and avoid those that don't (otherwise, many
> operations complain about invalid tags).

That's a very good thing.

> One regression is that deleted tags are not discovered when convert is
> run incrementally. This could be fixed in a second changeset if
> desired.

It's even worse.

The only problem with this approach is that 2 conversions of the same repo at
different times will result in two different mercurial repos where tag nodes
have been deleted, because the following commit nodes have a different id.

The only solution i see to solve this, is when deleting tag nodes (that can be
found because they are duplicates according to their source ids), we must do:
 - bundle the children nodes
 - strip from the tag node
 - reapply each changeset on top of the new parent node (tag node's parent)

This means that removing a tag can be quite heavy operation.

Do you see another solution if we want to keep the conversion process a stable
process in time ?

-- 
Edouard Gomez



More information about the Mercurial-devel mailing list