Right now, we have two restrictions on mixed-revision working copies:
1. You can't commit the deletion of a file or dir which is out-of-date.
2. You can't commit a propchange on an out-of-date directory.
Our rationale for file-deletion is obvious. I mean, duh, you don't want to
destroy someone else's textual changes. The same argument applies to
directories: you don't want to destroy a directory (or change its props) unless
you know you're not accidentally destroying someone else's newer version of it.
The problem is that we're being very *lazy* about detecting out-of-date
directories. I mean, suppose you have version N of a directory, and the
repository HEAD's version of the directory is *identical* in terms of entries
and props. (In other words, it's the same node-rev-id.) We shouldn't get an
out-of-date error if we try to commit a dir-propchange, or try delete the
directory. svn_fs_merge() should notice the identical node-rev-ids.
If we made this work, things would definitely get easier for users.