Details
-
Improvement
-
Status: Open
-
Critical
-
Resolution: Unresolved
-
all
-
None
Description
Committing a property change to a directory fails if that directory is out-of-date, even if it's only out-of-date due to bubble-up semantics. This can be a bit tiresome; from the user's point of view, why is the property change being prohibited? It's hard to justify.
The shell script below demonstrates the problem.
I think there's some reason we have this limitation – no theoretical showstopper, just ease of implementation or something like that. Might be time to reexamine the tradeoff, though.
============= cut here ======= 8-< ======= cut here ============ #!/bin/sh # Edit these as necessary: SVN=${HOME}/src/subversion/subversion/clients/cmdline/svn SVNADMIN=${HOME}/src/subversion/subversion/svnadmin/svnadmin # Clean up from a previous run. rm -rf wc repos # Set up the repository. ${SVNADMIN} create repos ${SVN} mkdir -m "Create a top-level directory." file://`pwd`/repos/trunk ${SVN} mkdir -m "Create a subdir." file://`pwd`/repos/trunk/subdir/ # Create a working copy. ${SVN} co file://`pwd`/repos/trunk/ wc # Create a file in a subdir, just to make a change. cd wc/subdir echo "A file." > somefile ${SVN} add somefile ${SVN} ci -m "Add somefile." cd .. # Try to commit a property on the top-level dir. It should fail # because out of date. ${SVN} propset "myprop" "myval" . ${SVN} ci -m "Attempting to committing myprop on top dir." echo "" echo "That failure was expected. Now we update and try again:" ${SVN} up ${SVN} ci -m "Attempting to committing myprop on top dir." echo "" echo "It succeeded this time, as expected."