Hello,

I have seen an issue with subversion in which tree conflicts are being
produced when creating a branch from a working copy in which not all
files are at the same revision. This is happening when trying to merge
changes into this branch.

Please refer to the following sequence. Is this supposed to be happening
in this way? I do not exactly understand what causes the tree conflicts.
Shouldn't there at least be a warning on trying to copy from a working
copy with mixed revisions?


>svn co https://localhost/svn/test
Checked out revision 0.

>cd test

test>mkdir trunk

test>mkdir branches

test>mkdir tags

test>svn add trunk branches tags
A         trunk
A         branches
A         tags

test>svn commit -m "initial structure"
Adding         branches
Adding         tags
Adding         trunk

Committed revision 1.

test>svn switch https://localhost/svn/test/trunk
D    trunk
D    branches
D    tags
Updated to revision 1.

test>mkdir d1

test>mkdir d2

test>mkdir d3

test>echo loremipsum > d1\f1.txt

test>echo loremipsum > d2\f1.txt

test>echo loremipsum > d3\f1.txt

test>svn add d1 d2 d3
A         d1
A         d1\f1.txt
A         d2
A         d2\f1.txt
A         d3
A         d3\f1.txt

test>svn ci -m "stuff"
Adding         d1
Adding         d1\f1.txt
Adding         d2
Adding         d2\f1.txt
Adding         d3
Adding         d3\f1.txt
Transmitting file data ...
Committed revision 2.

test>svn copy . https://localhost/svn/test/branches/b1 -m "created b1"

Committed revision 3.

test>svn rename d1 d1_r
A         d1_r
D         d1\f1.txt
D         d1

test>svn commit -m "d1 renamed"
Deleting       d1
Adding         d1_r

Committed revision 4.

test>svn switch https://localhost/svn/test/branches/b1
D    d1_r
A    d1
A    d1\f1.txt
Updated to revision 4.

test>svn merge https://localhost/svn/test/trunk
--- Merging r2 through r4 into '.':
A    d1_r
A    d1_r\f1.txt
   C d2
   C d3
Summary of conflicts:
  Tree conflicts: 2

D:\repositories\test>svn status -v
 M               4        3 weyh         .
                 4        3 weyh         d1
                 4        2 weyh         d1\f1.txt
      C          4        3 weyh         d2
      >   local add, incoming add upon merge
                 4        2 weyh         d2\f1.txt
A  +             -       ?   ?           d1_r
A  +             -        2 weyh         d1_r\f1.txt
      C          4        3 weyh         d3
      >   local add, incoming add upon merge
                 4        2 weyh         d3\f1.txt

Best regards,
Matthias

Reply via email to