[PATCH] convert: make tags children of the nodes they tag
Brendan Cully
brendan at kublai.com
Wed Jul 11 10:51:30 CDT 2007
On Wednesday, 11 July 2007 at 09:47, Edouard Gomez < wrote:
> > 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.
this isn't really feasible. You can't unbundle on top of a missing node.
> Do you see another solution if we want to keep the conversion process a stable
> process in time ?
use this code, which doesn't delete tags ;)
using the -r option to convert in fixed increments might also
help. Or we can try to convert tags to commit-like objects, so that we
can use the actual time when a tag is removed for systems that provide
that information, like SVN.
More information about the Mercurial-devel
mailing list