summaryrefslogtreecommitdiff
path: root/git-diff.sh
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2006-02-20 18:57:28 (GMT)
committerJunio C Hamano <junkio@cox.net>2006-02-20 21:32:41 (GMT)
commitcf52b8f06389189bd32565c5c6adad75ac8a1a62 (patch)
tree6c838c6bf412f160020d2e46ac6e9702a7c87052 /git-diff.sh
parentbbe0c9b8d82aa98aad2ae7e6554cc0b9e2836363 (diff)
downloadgit-cf52b8f06389189bd32565c5c6adad75ac8a1a62.zip
git-cf52b8f06389189bd32565c5c6adad75ac8a1a62.tar.gz
git-cf52b8f06389189bd32565c5c6adad75ac8a1a62.tar.bz2
git-svn: fix several corner-case and rare bugs with 'commit'
None of these were really show-stoppers (or even triggered) on most of the trees I've tracked. * Node change prevention for identically named nodes. This is a limitation of SVN, but we find the error and exit before it's passed to SVN so we don't dirty our working tree when our commit fails. git-svn will exit with an error code 1 if any of the following conditions are found: 1. a directory is removed and a file of the same name of the removed directory is created 1a. a file has its parent directory removed and the file is takes the name of the removed parent directory:: baz/zzz => baz 2. a file is removed and a directory of the same name of the removed file is created. 2a. a file is moved into a deeper directory that shares the previous name of the file:: dir/$file => dir/file/$file Since SVN cannot handle these cases, the user will have to manually split the commit into several parts. * --rmdir now handles nested/deep removals. If dir/a/b/c/d/e/file is removed, and everything else is in the dir/ hierarchy is otherwise empty, then dir/ will be deleted when file is deleted from svn and --rmdir specified. * Always assert that we have written the tree we want to write on commits. This helped me find several bugs in the symlink handling code (which as been fixed). * Several symlink handling fixes. We now refuse to set permissions on symlinks. We also always unlink a file if we're going to overwrite it. * Apply changes in a pre-determined order, so we always have rename from locations handy before we delete them. Signed-off-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'git-diff.sh')
0 files changed, 0 insertions, 0 deletions