tests/test-convert-svn-sink.out
author Maxim Dounin <mdounin@mdounin.ru>
Sat, 29 Dec 2007 17:11:48 +0300
changeset 5811 180a3eee4b75
parent 5698 b63ef7b1441c
child 6004 5af5f0f9d724
permissions -rw-r--r--
Fix copies reporting in log and convert. If copy logged in file revision, we report copy for changeset only if file revisions linkrev points back to the changeset in question or both changeset parents contain different file revisions. This fixes extra copies reported when executable bit was changed for previously copied file.

% add
adding a
adding d1/d2/b
% modify
1:e0e2b8a9156b
assuming destination a-hg
initializing svn repo 'a-hg'
initializing svn wc 'a-hg-wc'
scanning source...
sorting...
converting...
1 add a file
0 modify a file
At revision 2.
                2        2 test         .
                2        2 test         a
                2        1 test         d1
                2        1 test         d1/d2
                2        1 test         d1/d2/b
<?xml version="1.0"?>
<log>
<logentry
   revision="2">
<author>test</author>
<date/>
<paths>
<path
   action="M">/a</path>
</paths>
<msg>modify a file</msg>
</logentry>
<logentry
   revision="1">
<author>test</author>
<date/>
<paths>
<path
   action="A">/a</path>
<path
   action="A">/d1</path>
<path
   action="A">/d1/d2</path>
<path
   action="A">/d1/d2/b</path>
</paths>
<msg>add a file</msg>
</logentry>
</log>
a:
a
d1

a-hg-wc:
a
d1
same
% rename
2:7009fc4efb34
assuming destination a-hg
initializing svn wc 'a-hg-wc'
scanning source...
sorting...
converting...
0 rename a file
At revision 3.
                3        3 test         .
                3        3 test         b
                3        1 test         d1
                3        1 test         d1/d2
                3        1 test         d1/d2/b
<?xml version="1.0"?>
<log>
<logentry
   revision="3">
<author>test</author>
<date/>
<paths>
<path
   action="D">/a</path>
<path
   copyfrom-path="/a"
   copyfrom-rev="2"
   action="A">/b</path>
</paths>
<msg>rename a file</msg>
</logentry>
</log>
a:
b
d1

a-hg-wc:
b
d1
% copy
3:56c519973ce6
assuming destination a-hg
initializing svn wc 'a-hg-wc'
scanning source...
sorting...
converting...
0 copy a file
At revision 4.
                4        4 test         .
                4        3 test         b
                4        4 test         c
                4        1 test         d1
                4        1 test         d1/d2
                4        1 test         d1/d2/b
<?xml version="1.0"?>
<log>
<logentry
   revision="4">
<author>test</author>
<date/>
<paths>
<path
   copyfrom-path="/b"
   copyfrom-rev="3"
   action="A">/c</path>
</paths>
<msg>copy a file</msg>
</logentry>
</log>
a:
b
c
d1

a-hg-wc:
b
c
d1
% remove
4:ed4dc9a6f585
assuming destination a-hg
initializing svn wc 'a-hg-wc'
scanning source...
sorting...
converting...
0 remove a file
At revision 5.
                5        5 test         .
                5        4 test         c
                5        1 test         d1
                5        1 test         d1/d2
                5        1 test         d1/d2/b
<?xml version="1.0"?>
<log>
<logentry
   revision="5">
<author>test</author>
<date/>
<paths>
<path
   action="D">/b</path>
</paths>
<msg>remove a file</msg>
</logentry>
</log>
a:
c
d1

a-hg-wc:
c
d1
% executable
5:f205b3636d77
assuming destination a-hg
initializing svn wc 'a-hg-wc'
scanning source...
sorting...
converting...
0 make a file executable
At revision 6.
                6        6 test         .
                6        6 test         c
                6        1 test         d1
                6        1 test         d1/d2
                6        1 test         d1/d2/b
<?xml version="1.0"?>
<log>
<logentry
   revision="6">
<author>test</author>
<date/>
<paths>
<path
   action="M">/c</path>
</paths>
<msg>make a file executable</msg>
</logentry>
</log>
executable
% executable in new directory
adding d1/a
assuming destination a-hg
initializing svn repo 'a-hg'
initializing svn wc 'a-hg-wc'
scanning source...
sorting...
converting...
0 add executable file in new directory
At revision 1.
                1        1 test         .
                1        1 test         d1
                1        1 test         d1/a
<?xml version="1.0"?>
<log>
<logentry
   revision="1">
<author>test</author>
<date/>
<paths>
<path
   action="A">/d1</path>
<path
   action="A">/d1/a</path>
</paths>
<msg>add executable file in new directory</msg>
</logentry>
</log>
executable
% copy to new directory
assuming destination a-hg
initializing svn wc 'a-hg-wc'
scanning source...
sorting...
converting...
0 copy file to new directory
At revision 2.
                2        2 test         .
                2        1 test         d1
                2        1 test         d1/a
                2        2 test         d2
                2        2 test         d2/a
<?xml version="1.0"?>
<log>
<logentry
   revision="2">
<author>test</author>
<date/>
<paths>
<path
   action="A">/d2</path>
<path
   copyfrom-path="/d1/a"
   copyfrom-rev="1"
   action="A">/d2/a</path>
</paths>
<msg>copy file to new directory</msg>
</logentry>
</log>
% branchy history
adding b
adding left-1
adding left-2
1 files updated, 0 files merged, 2 files removed, 0 files unresolved
adding right-1
adding right-2
3 files updated, 0 files merged, 2 files removed, 0 files unresolved
warning: conflicts during merge.
merging b
merging b failed!
2 files updated, 0 files merged, 0 files removed, 1 files unresolved
There are unresolved merges, you can redo the full merge using:
  hg update -C 2
  hg merge 4
assuming destination b-hg
initializing svn repo 'b-hg'
initializing svn wc 'b-hg-wc'
scanning source...
sorting...
converting...
5 base
4 left-1
3 left-2
2 right-1
1 right-2
0 merge
% expect 4 changes
At revision 4.
                4        4 test         .
                4        3 test         b
                4        2 test         left-1
                4        3 test         left-2
                4        4 test         right-1
                4        4 test         right-2
<?xml version="1.0"?>
<log>
<logentry
   revision="4">
<author>test</author>
<date/>
<paths>
<path
   action="A">/right-1</path>
<path
   action="A">/right-2</path>
</paths>
<msg>merge</msg>
</logentry>
<logentry
   revision="3">
<author>test</author>
<date/>
<paths>
<path
   action="M">/b</path>
<path
   action="A">/left-2</path>
</paths>
<msg>left-2</msg>
</logentry>
<logentry
   revision="2">
<author>test</author>
<date/>
<paths>
<path
   action="M">/b</path>
<path
   action="A">/left-1</path>
</paths>
<msg>left-1</msg>
</logentry>
<logentry
   revision="1">
<author>test</author>
<date/>
<paths>
<path
   action="A">/b</path>
</paths>
<msg>base</msg>
</logentry>
</log>