John Maher <jo...@rotair.com> writes:

> I use one folder for my source code (all branches) mainly because of
> vendor requirements the code must be run from the same directory.  I
> have created two branches for two new features.  One feature extends
> an existing library.  The other feature adds a new library as well as
> extending an existing one.  When I switch I create a conflict because
> the directory exists in one branch and not the other:
>
> local unversioned, incoming add upon switch
>
> This may or may not be what is supposed to happen, that would be the
> first thing I would like to know.  How to fix it would be the second
> thing that I would like to know.

svnadmin create repo
svn -mm mkdir file://`pwd`/repo/A
svn -mm cp file://`pwd`/repo/A ^/B
svn -mm mkdir file://`pwd`/repo/B/X
svn co file://`pwd`/repo/B wc
touch wc/X/f                        # an unversioned file

Switch can't remove wc/X because wc/X/f exists:

svn sw ^/A wc
svn st wc
?       wc/X

The unversioned wc/X will cause a conflict when switching back:

svn sw ^/B wc --accept postpone
svn st wc
D     C wc/X
      >   local dir unversioned, incoming dir add upon switch
?       wc/X/f
Summary of conflicts:
  Tree conflicts: 1

The conflict can be resolved by reverting the delete:

svn revert -R wc/X
svn st wc
?       wc/X/f

The original unversioned wc/X/f has been preserved across both switches.

-- 
Philip Martin | Subversion Committer
WANdisco // *Non-Stop Data*

Reply via email to