Interesting oddity in convert svn

Eric M. Hopper hopper at omnifarious.org
Tue Oct 16 04:48:49 UTC 2007


On Mon, 2007-10-15 at 20:11 -0700, Eric M. Hopper wrote:
> In this changeset:
> 
> http://selenic.com/repo/hg/rev/ef338e34a9060749ae7cd5c99dd22433eec6ae5f
> 
> in this bunch of code:
> 
> +        if revnum in self.modulemap:
> +            new_module = self.modulemap[revnum]
> +            if new_module != self.module:
> +                self.module = new_module
> +                self.reparent(self.module)
> +
> 
> it becomes fairly clear that an individual Subversion changeset is
> thought to belong to either one branch or another, but not to several
> branches.  This assumption is incorrect.
> 
> In revision 11 of this repository:
> 
> https://svn.generalpresence.com:5131/repos/
> 
> I have a change which does indeed simultaneously affect several branches
> at the same time.  I was going through the entire repository fiddling
> with keyword substitution settings.
> 
> How deeply embedded is this assumption?

From Matt Mackall on IRC:
> I read your email but I'm not familiar enough with SVN's branching
> scheme to make any sense of it. convert assumes that the input can be
> converted to a DAG, which means nodes can't appear in multiple places
> that aren't merges.

What this tells me is that in cases where more than one branch is
affected by a single Subversion changeset, that changeset needs to be
split in two.  I suspect this is possible because in some places in the
Subversion converter the version identifier for a changeset does seem to
include the 'module', meaning the subversion subtree the change occurred
in.

I imagine this might become extremely tricky if a Subversion changeset
included a copy that created a new tag or a branch as well as
modifications to other branches.

Thanks,
-- 
A word is nothing more or less than the series of historical
connotations given to it. That's HOW we derive meaning, and to claim
that there is an arbitrary meaning of words above and beyond the way
people use them is a blatant misunderstanding of the nature of language.
-- Anonymous blogger
-- Eric Hopper (hopper at omnifarious.org http://www.omnifarious.org/~hopper)--
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 185 bytes
Desc: This is a digitally signed message part
URL: <http://lists.mercurial-scm.org/pipermail/mercurial-devel/attachments/20071015/e87bb11b/attachment.asc>


More information about the Mercurial-devel mailing list