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 <normalperson@yhbt.net>
Acked-by: Uwe Zeisberger <zeisberg@informatik.uni-freiburg.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
Eric Wong 2006-10-24 02:50:37 -07:00 committed by Junio C Hamano
parent 2eb10ac7b5
commit 9ffd652a38

View File

@ -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);