Two branches a and b starting at root, with commits interleaved like:
root a0 a1 b0 a2 a3 b1
were converted in the following order:
root a0 b0 a1 b1 a2 a3
Replace depth based toposort with a more classic traversal method.
The problem is that previously commit.date was used for sorting, but it's a
string like "1 Jan xxx 2007", so it it wrong to use it for sorting.
Another problem is that why we are using depth for sorting -- I have no clear
answer -- it seems to be plain wrong.
This patch is just an RFC.
Previously the parent was determined by the last changeset where the branched
file was changed even if the branch is based on an earlier revision.
Fix written by mpm.
This should give the user a better hint of what's going wrong.
Improve some error messages. In particular, mention "CVS checkout" instead
of "CVS repo".
Fixes issue822 and issue826.
Add Mercurial as a source format, clarify that the include directive triggers the exclusion of all not explicitely included files/dirs and use MAPFILE instead of revmapfile in the text, following the short message convention.
Better handles this case:
The output from cvsps -A -u --cvs-direct -q:
---------------------
PatchSet 1
Date: 2008/02/08 20:33:28
Author: fk
Branch: HEAD
Tag: (none)
Log:
initial
Members:
file_one:INITIAL->1.1
---------------------
PatchSet 2
Date: 2008/02/08 20:33:32
Author: fk
Branch: branch_name
Ancestor branch: HEAD
Tag: (none)
Log:
new file on branch
Members:
file_two:1.1->1.1.2.1
- Improve performance by reading 'replay' output instead of
calling 'delta' command after 'replay'. This increases speed
significantly.
- Some times 'replay' command might fail with conflicts (don't
know why), a new get from that revision just fixes it. So,
if something fails, get a fresh copy from that revision and
try from there.
The "one revision belongs to one branch" assumptions is relaxed. Branch
revisions are parsed down to the first branch copy encountered, older history
is skipped. It means the conversion is still not satisfying when dealing with
branches overwriting themselves. This issue already existed in the previous
version.
In some subversion repositories, trunk is present but no branches
are used. The current code is assuming that both trunk and branches
must exist before adding trunk's head to the heads list.
It's just better to separate the branch layout stuff from the trunk one.