Greg Stein <gst...@gmail.com> writes: > On Thu, Apr 26, 2012 at 10:06, Apache subversion Wiki > <comm...@subversion.apache.org> wrote: >>... >> + == Problem Cases == >> + >> + Move A to B: >> + >> + || op-depth || local-relpath || presence || revision || repos || >> moved-to || >> + || 0 || A || normal || 1 || A || >> || >> + || 0 || A/f || normal || 1 || A/f || >> || >> + || 1 || A || base-deleted || 1 || A || B >> || >> + || 1 || A/f || base-deleted || 1 || A/f || >> || >> + || 1 || B || normal || 1 || A || >> || >> + || 1 || B/f || normal || 1 || A/f || >> || >> + >> + Delete B/f and replace with something copied from elsewhere: >> + >> + || op-depth || local-relpath || presence || revision || repos || >> moved-to || >> + || 0 || A || normal || 1 || A || >> || >> + || 0 || A/f || normal || 1 || A/f || >> || >> + || 1 || A || base-deleted || 1 || A || B >> || >> + || 1 || A/f || base-deleted || 1 || A/f || >> || >> + || 1 || B || normal || 1 || A || >> || >> + || 1 || B/f || normal || 1 || A/f || >> || >> + || 2 || B/f || normal || 1 || X || >> || > > Wouldn't the B/f line at op_depth==1 have not-present to indicate that > it was deleted?
No. Before delete: op-depth local-relpath presence 1 B normal 1 B/f normal Delete B/f: op-depth local-relpath presence 1 B normal 1 B/f normal 2 B/f base-deleted Replace B/f op-depth local-relpath presence 1 B normal 1 B/f normal 2 B/f normal >> + >> + Now update A and go through the mixed-revision base tree: we can't >> represent the mixed-revision copy since that would require B/f at op-depth=2 >> to record both A/f@2 and X@1. > > Hm? I would expect the A/f@2 to be in the op_depth==1 line, and B/f at > op_depth==2 to continue to refer to X@1. No. When we have mixed-rev A and A/f and A gets moved to B the result is: op-depth local-relpath presence revision 0 A normal 1 0 A/f normal 2 1 B normal 1 1 B/f not-present 2 B/f normal 2 and that's a problem if op-depth=2 B/f is already used for somethin else. -- uberSVN: Apache Subversion Made Easy http://www.uberSVN.com