[commit-patch] Make VCS initialization more perl-like, less shell-like.
[commit-patch] Support svn 1.7 which apparently doesn't scatter .svn droppings in every subdirectory. (Thanks sneakypete81)
[commit-patch] Only run the vc-add or remove commands when there are files to add or remove.
[commit-patch] Save backups of removed files, too (I can't remember why, but it was important)
[commit-patch] Use --relative with "git diff" so that commit-partial doesn't silently fail when you in a subdirectory.

"git apply" seems to filter the diff so that only files within the current
directory (and its descendants) get applied. It (crazily) does this silently
and there doesn't seem to be an option to override this.

The other option would be to cd to the project root just before calling "git
apply" but I think it's more intuitive to diff from your current
directory--just cd to the root yourself if you want to see the whole
project's changes.
[commit-patch] Better error reporting when various things fail.
[commit-patch] Quote things better in --verbose mode.
[commit-patch] Whitespace
[commit-patch] Use --force when patching back to the clean version so if something goes wrong it doesn't ask interactive questions.