I've gone ahead and added Python tests for the below scenarios: Philip's

scenario in move_tests.py and mine in svnmucc_tests.py.

I have an odd problem with Philip's scenario (move_tests.py

nested_replaces): if I set expected_status['A/B'] to an Item(status='A '),

I get an error stating the actual tree has a 'R ' node; and when

I change the expectation to 'R ', I get an error stating the actual tree

has 'A '.

The patch and the two error outputs are attached. (I note that one of

them says "in status tree" and one "in entries tree".)

That patch isn't ready for commit; I am only at the point of

constructing a State object that will make the test pass, but I haven't

yet compared that State object to the actual moves the test does to

determine whether the 'svn status' output is buggy or correct.

I'm not really familiar with expected_status objects, so perhaps someone can

have a look at constructing the State object here?

Daniel

Daniel Shahaf wrote on Tue, Jun 25, 2013 at 21:53:07 +0000:

*> On Tue, Jun 25, 2013 at 12:42:55PM +0100, Philip Martin wrote:
*

*> > R /A (from /X/Y/Z:1)
*

*> > A /A/B (from /A/B:1)
*

*> > R /A/B/C (from /X:1)
*

*> > D /A/B/C/Y
*

*> > R /X (from /A/B/C:1)
*

*> > A /X/Y (from /X/Y:1)
*

*> > R /X/Y/Z (from /A:1)
*

*> > D /X/Y/Z/B
*

*> >
*

*>
*

*> What if we had three trees?
*

*>
*

*> % svnmucc -mm -U $URL \
*

*> rm A rm M rm X \
*

*> cp HEAD X/Y/Z A cp HEAD A/B/C M cp HEAD M/N/O X \
*

*> cp HEAD A/B A/B cp HEAD M/N M/N cp HEAD X/Y X/Y \
*

*> rm A/B/C rm M/N/O rm X/Y/Z \
*

*> cp HEAD X A/B/C cp HEAD A M/N/O cp HEAD M X/Y/Z \
*

*> ;
*

*> r2 committed by danielsh at 2013-06-25T21:51:29.046012Z
*

*> % svn log qv -r2 $URL
*

*> ------------------------------------------------------------------------
*

*> r2 | danielsh | 2013-06-25 21:51:29 +0000 (Tue, 25 Jun 2013)
*

*> Changed paths:
*

*> R /A (from /X/Y/Z:1)
*

*> A /A/B (from /A/B:1)
*

*> R /A/B/C (from /X:1)
*

*> R /M (from /A/B/C:1)
*

*> A /M/N (from /M/N:1)
*

*> R /M/N/O (from /A:1)
*

*> R /X (from /M/N/O:1)
*

*> A /X/Y (from /X/Y:1)
*

*> R /X/Y/Z (from /M:1)
*

*> ------------------------------------------------------------------------
*

*>
*

*> How would such a thing be represented?
*

*>
*

*> > How would Ev2 describe that? Perhaps
*

Received on 2013-06-26 14:19:30 CEST