From 9ffd652a385298f3565fdc3f0d0424001a376539 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Tue, 24 Oct 2006 02:50:37 -0700 Subject: [PATCH] git-svn: fix symlink-to-file changes when using command-line svn 1.4.0 I incorrectly thought this was hopelessly broken in svn 1.4.0, but now it's just broken in that the old method didn't work. It looks like svn propdel and svn propset must be used now and the (imho) more obvious svn rm --force && svn add no longer works. "make -C t full-svn-test" should now work. Signed-off-by: Eric Wong Acked-by: Uwe Zeisberger Signed-off-by: Junio C Hamano --- git-svn.perl | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/git-svn.perl b/git-svn.perl index 54d235693..37ecc5178 100755 --- a/git-svn.perl +++ b/git-svn.perl @@ -1501,10 +1501,13 @@ sub svn_checkout_tree { apply_mod_line_blob($m); svn_check_prop_executable($m); } elsif ($m->{chg} eq 'T') { - sys(qw(svn rm --force),$m->{file_b}); - apply_mod_line_blob($m); - sys(qw(svn add), $m->{file_b}); svn_check_prop_executable($m); + apply_mod_line_blob($m); + if ($m->{mode_a} =~ /^120/ && $m->{mode_b} !~ /^120/) { + sys(qw(svn propdel svn:special), $m->{file_b}); + } else { + sys(qw(svn propset svn:special *),$m->{file_b}); + } } elsif ($m->{chg} eq 'A') { svn_ensure_parent_path( $m->{file_b} ); apply_mod_line_blob($m); -- 2.30.2