Hello. The following scenario fails for me: delete a file, create a symlink with the same name, run "svn diff". Instead of displaying the diff, SVN tries to read the link content. If "NOWHERE" variable is set to the file name, the symlink refers to itself, showing another error.
Instead I would expect something with "-" and "+" markers. If you uncomment #echo "link $NOWHERE" > $WC_PATH/trunk/file and comment out "ln -s" call, the script will display approximately what I would expect (but without svn:special). I'm not sure if this is a known bug, sorry for reporting something known if it is. Locally I also have similar scenario failing in another way: before reading the symlink it displays deletion of "trunk/trunk/symlink" (yes, unexpectedly double "trunk", in my local test the file is called "symlink"). But I think it's the same issue. If it will still fail after this one is fixed, I'll analyze why. #!/bin/sh SVN=svn #1. Create an empty SVN repository. REPOSITORY_PATH="$PWD/svn.repo" svnadmin create "$REPOSITORY_PATH" # 2. Add a file to the repository. WC_PATH="/tmp/wc" REPOSITORY_URL="file://$REPOSITORY_PATH" $SVN co $REPOSITORY_URL $WC_PATH $SVN mkdir $WC_PATH/trunk echo "content" > $WC_PATH/trunk/file $SVN add $WC_PATH/trunk/file $SVN commit -m "A file added." $WC_PATH # 3. Replace the file with a symlink pointing to nowhere (or to itself --- for another kind of error) NOWHERE="changed/path" #NOWHERE="file" rm $WC_PATH/trunk/file ln -s $NOWHERE $WC_PATH/trunk/file # By the way: uncomment the following line and comment out the previous one for comparison #echo "link $NOWHERE" > $WC_PATH/trunk/file # 4. Create diff between repository HEAD and working copy: $SVN diff --git $REPOSITORY_URL $WC_PATH echo "" echo "" echo "-----------------------------------------" echo "If you see something like" echo "-content" echo "+link $NOWHERE" echo "And svn:special property set to '*'" echo "Then consider test passed" echo "-----------------------------------------" -- Dmitry Pavlenko, TMate Software, http://subgit.com/ - git-svn bridge