Hi! Posting this one here so I don't forget about it.
The patch code should not change the wc when run with the --dry-run option but it will if we're adding a file with a parent scheduled for deletion. The patch code will add a file with a parent scheduled for deletion to the filesystem but not fail when trying to add it to version control. It would be better if the parent_dir and path would not be created or atleast that 'svn patch new.diff' and 'svn patch new.diff --dry-run' caused the same output. Run these commands on a greek-tree wc: [[[ echo "This is the file 'new'." >> A/C/new $SVN add A/C/new $SVN di > new.diff $SVN revert A/C/new rm A/C/new $SVN rm A/C LC_ALL=C $SVN patch new.diff # Here we get a message about 'Can't add 'new' to a parent dir scheduled for deletion. # But 'svn patch' still creates A/C/new. # If I had used 'svn patch new.diff --dry-run' I would have gotten: # 'A A/C/new' and the missing parent would have been deleted. rm -r A/C #LC_ALL=C gdb $SVN patch new.diff # Here we get a message about 'Can't create temporary file from template A/C/svn-XXXX' # The patch code copies the tmp file to the parent dir of the target file before renaming it. # Another error message would probably be a good idea. ]]] Cheers, Daniel