convert: handle past or foreign partial svn copies
Subversion allows revisions to be composed of subparts coming from revisions
before the parent or from other part of the repository. There is no simple
representation for these now, keep the changes but do not track their origins.
% initial svn import
Adding projA/trunk
Adding projA/trunk/a
Adding projA/trunk/d1
Adding projA/trunk/d1/b
Adding projA/trunk/d1/c
Adding projA/trunk/d2
Adding projA/trunk/d2/d
Committed revision 1.
% update svn repository
A A/trunk
A A/trunk/a
A A/trunk/d1
A A/trunk/d1/b
A A/trunk/d1/c
A A/trunk/d2
A A/trunk/d2/d
Checked out revision 1.
Sending trunk/a
Sending trunk/d1/c
Transmitting file data ..
Committed revision 2.
Committed revision 3.
D trunk
A subproject
A subproject/a
A subproject/d1
A subproject/d1/b
A subproject/d1/c
A subproject/d2
A subproject/d2/d
Updated to revision 3.
A subproject/trunk
Adding subproject/trunk
Committed revision 4.
A subproject/branches
Adding subproject/branches
Committed revision 5.
Committed revision 6.
Committed revision 7.
A subproject/trunk/d1
A subproject/trunk/d1/b
A subproject/trunk/d1/c
A subproject/trunk/d2
A subproject/trunk/d2/d
D subproject/d1
D subproject/d2
Updated to revision 7.
D subproject/trunk/d2/d
D subproject/trunk/d2
Sending subproject/trunk/d1/b
Deleting subproject/trunk/d2
Transmitting file data .
Committed revision 8.
Committed revision 9.
% copy a directory from a past revision
Committed revision 10.
% convert trunk and branches
initializing destination A-hg repository
scanning source...
sorting...
converting...
8 createtrunk
7 moved1
6 moved1
5 moved2
4 changeb and rm d2
3 changeb and rm d2
2 moved1again
1 moved1again
0 copydirfrompast
o 8 copydirfrompast files: d2/d
|
o 7 moved1again files: d1/b d1/c
|
| o 6 moved1again files:
| |
o | 5 changeb and rm d2 files: d1/b d2/d
| |
| o 4 changeb and rm d2 files: b
| |
o | 3 moved2 files: d2/d
| |
o | 2 moved1 files: d1/b d1/c
| |
| o 1 moved1 files: b c
|
o 0 createtrunk files:
default 8:
d1 6: