[PATCH] convert: make tags children of the nodes they tag
Edouard Gomez <
ed.gomez at free.fr
Wed Jul 11 09:47:56 UTC 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