Julian Foad <julian.f...@wandisco.com> writes: > On Thu, 2011-02-24, Philip Martin wrote: >> "C. Michael Pilato" <cmpil...@collab.net> writes: >> > On 02/23/2011 12:17 PM, Philip Martin wrote: >> >> Philip Martin <philip.mar...@wandisco.com> writes: >> >> >> >>> Changelists only contain files in 1.6, but in 1.7 files can be replaced >> >>> with directories: >> >>> >> >>> $ svn changelist qq wc/foo >> >>> $ svn rm wc/foo >> >>> $ svn mkdir wc/foo >> >>> >> >>> Does the changelist qq refer to the replacing dir foo or only to the >> >>> replaced file foo? >> > >> > If a directory replaces a file with a changelist, the changelist should be >> > removed from that path. We do not allow changelist assignments on >> > directories, period, making the rest of your thread irrelevant: >> >> That's not what happens at present, I'll raise an issue. Should the >> mkdir fail, or should it remove the file from the changelist, or raise a >> tree conflict? This currently also happens during merge. > > The 'mkdir' should definitely NOT raise a tree conflict. Tree conflicts > are the result of merging two conflicting tree-change operations that > both apply to the same starting node. That's not at all what's > happening here.
So mkdir should fail or remove the file from the changelist. What about merge? It can replace a file with a directory. If the file has local mods then a tree conflict arises: $ svn merge ^/ wc --- Merging r2 through r3 into 'wc': C wc/foo --- Recording mergeinfo for merge of r2 through r3 into 'wc': U wc Summary of conflicts: Tree conflicts: 1 $ svn st wc M wc --- Changelist 'qq': M C wc/foo > local edit, incoming replace upon merge Summary of conflicts: Tree conflicts: 1 But if the file is unmodified then it simply gets replaced: $ svn merge ^/ wc --- Merging r2 through r3 into 'wc': R wc/foo --- Recording mergeinfo for merge of r2 through r3 into 'wc': U wc $ svn st wc M wc --- Changelist 'qq': R + wc/foo -- Philip