While somehow versed in VCS (regular svn, git and git-svn user) I can't seem to wrap my head around this peculiar SVN behavior.
Whenever I need to rename a directory in my SVN working copy from an otherwise 'clean' state - i.e svn status
returns nothing and all other modifications have been commited - like so (which is what the svn doc suggests):
svn mv foo bar
svn commit
SVN complains loudly:
Adding bar
Adding bar/toto
Deleting foo
svn: Commit failed (details follow):
svn: Item '/test/foo' is out of date
As you wish:
svn update
Which gives:
C foo
At revision 46.
Summary of conflicts:
Tree conflicts: 1
There's a tree conflict, while no third-party change happened. Obviously, the only way to get out of this tree conflict mess is generically (from the svn red book):
svn resolve --accept working -R .
svn commit
Renaming it remotely on the repo then updating my working copy seems quite braindead:
url=$(svn info | grep -e '^URL:' | sed 's/^URL: //') svn mv $url/foo $url/bar
svn update
Is there a sanctioned, more streamlined way to rename a folder that I'm missing? What is the root cause behind that particularly surprising tree conflict state?