[py-dev] py.path.svnwc ensure problems

Martijn Faassen faassen at startifact.com
Tue Feb 19 20:49:08 CET 2008


Hi there,

Here's an argument why .ensure() should add directories automatically. 
Imagine the following sequence of events:

two checkouts of the same stuff, a and b

In a:

create a directory foo
create a content object bar in foo
svn add foo and bar
svn commit

In b:

svn up
get foo and its contents, bar

Back to a:

svn remove foo
svn commit

Back to b:

change foo/bar
svn up

What happens now is that the foo directory will remain in b, and the
changed 'bar' file will remain as well. Both will however be considered
to be unknown.

One can reproduce this sequence of events working with py.path.svnwc. In 
fact, I have. :) My code has an .ensure() to make sure that foo/bar 
exists. This ensure() fails as 'foo' isn't known to SVN anymore after 
the last SVN up. If ensure() instead re-added 'foo' to SVN, things would 
proceed properly. You would think that ensure() in the case of svnwc 
would need to ensure that the whole path exists in SVN instead of 
bailing out with an error.

One question is what .ensure() should do with any other content in foo 
should foo be automatically added. I guess it should not automatically 
re-add it. Actually in my use case it should actually probably be doing 
so, so I have some thinking to do...

Regards,

Martijn




More information about the Pytest-dev mailing list