[PATCH] convert: make convert from cvs recognise branch points correctly [revised, 3]

Patrick Mézard pmezard at gmail.com
Mon Apr 20 17:51:26 CDT 2009


Henrik Stuart a écrit :
> # HG changeset patch
> # User Henrik Stuart <henrik.stuart at edlund.dk>
> # Date 1239706830 -7200
> # Node ID f8fd162954633e67b27605b2541eb46e155d4780
> # Parent  aece3c9e62f1a685e4cebd3ecf0b22e1c8101ae1
> convert: make convert from cvs recognise branch points correctly
> 
> This patch fixes issue 1447 by using the symbolic names for branches
> in the rlog output to determine the branch point for each file and
> then finding the latest possible branch point in the given changesets
> such that all the file revisions match and the date is earlier than
> the branch commit. For commits on non-branches, the current
> functionality is maintained.
> 
> Co-contributor: Greg Ward <greg-hg at gerg.ca>

"such that all the file revisions match".

I don't understand how this could be done since cvsps does not recreate anything similar to a mercurial revision manifest. changeset.entries contains the revision of files updated in the revision which is clearly not enough to make a correct parent match. Given:


. b,1.2.2.1
|
|
\_____. a,1.4
      |
      |
      . a,1.3
      |
      |
      . b,1.2

How do you know the branch revision containing b,1.2.2.1 should have for parent the one with a,1.4 instead of the one with a,1.3 ? We need to know the branch revision contains a copy/child of a,1.4. Is it even possible to know that if 'a' is never committed on the branch? We have a symbolic name but nothing (ie not even a date) to relate it with the branch revision, right?


--
Patrick Mézard


More information about the Mercurial-devel mailing list