git-svn: svn (command-line) 1.0.x compatibility
Tested on a plain Ubuntu Warty installation using subversion 1.0.6-1.2ubuntu3 svn add --force was never needed, as it only affected directories, which git (thankfully) doesn't track The 1.0.x also didn't support symlinks(!), so allow NO_SYMLINK to be defined for running tests Signed-off-by: Eric Wong <normalperson@yhbt.net>
This commit is contained in:
parent
86f363791b
commit
0e8a002c59
@ -1306,12 +1306,12 @@ sub svn_checkout_tree {
|
|||||||
} elsif ($m->{chg} eq 'T') {
|
} elsif ($m->{chg} eq 'T') {
|
||||||
sys(qw(svn rm --force),$m->{file_b});
|
sys(qw(svn rm --force),$m->{file_b});
|
||||||
apply_mod_line_blob($m);
|
apply_mod_line_blob($m);
|
||||||
sys(qw(svn add --force), $m->{file_b});
|
sys(qw(svn add), $m->{file_b});
|
||||||
svn_check_prop_executable($m);
|
svn_check_prop_executable($m);
|
||||||
} elsif ($m->{chg} eq 'A') {
|
} elsif ($m->{chg} eq 'A') {
|
||||||
svn_ensure_parent_path( $m->{file_b} );
|
svn_ensure_parent_path( $m->{file_b} );
|
||||||
apply_mod_line_blob($m);
|
apply_mod_line_blob($m);
|
||||||
sys(qw(svn add --force), $m->{file_b});
|
sys(qw(svn add), $m->{file_b});
|
||||||
svn_check_prop_executable($m);
|
svn_check_prop_executable($m);
|
||||||
} else {
|
} else {
|
||||||
croak "Invalid chg: $m->{chg}\n";
|
croak "Invalid chg: $m->{chg}\n";
|
||||||
|
@ -11,7 +11,10 @@ mkdir import
|
|||||||
cd import
|
cd import
|
||||||
|
|
||||||
echo foo > foo
|
echo foo > foo
|
||||||
|
if test -z "$NO_SYMLINK"
|
||||||
|
then
|
||||||
ln -s foo foo.link
|
ln -s foo foo.link
|
||||||
|
fi
|
||||||
mkdir -p dir/a/b/c/d/e
|
mkdir -p dir/a/b/c/d/e
|
||||||
echo 'deep dir' > dir/a/b/c/d/e/file
|
echo 'deep dir' > dir/a/b/c/d/e/file
|
||||||
mkdir -p bar
|
mkdir -p bar
|
||||||
@ -129,6 +132,8 @@ test_expect_success "$name" \
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if test -z "$NO_SYMLINK"
|
||||||
|
then
|
||||||
name='executable file becomes a symlink to bar/zzz (file)'
|
name='executable file becomes a symlink to bar/zzz (file)'
|
||||||
rm exec.sh
|
rm exec.sh
|
||||||
ln -s bar/zzz exec.sh
|
ln -s bar/zzz exec.sh
|
||||||
@ -140,8 +145,6 @@ test_expect_success "$name" \
|
|||||||
svn up $SVN_TREE &&
|
svn up $SVN_TREE &&
|
||||||
test -L $SVN_TREE/exec.sh"
|
test -L $SVN_TREE/exec.sh"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
name='new symlink is added to a file that was also just made executable'
|
name='new symlink is added to a file that was also just made executable'
|
||||||
chmod +x bar/zzz
|
chmod +x bar/zzz
|
||||||
ln -s bar/zzz exec-2.sh
|
ln -s bar/zzz exec-2.sh
|
||||||
@ -154,8 +157,6 @@ test_expect_success "$name" \
|
|||||||
test -x $SVN_TREE/bar/zzz &&
|
test -x $SVN_TREE/bar/zzz &&
|
||||||
test -L $SVN_TREE/exec-2.sh"
|
test -L $SVN_TREE/exec-2.sh"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
name='modify a symlink to become a file'
|
name='modify a symlink to become a file'
|
||||||
git help > help || true
|
git help > help || true
|
||||||
rm exec-2.sh
|
rm exec-2.sh
|
||||||
@ -169,6 +170,7 @@ test_expect_success "$name" \
|
|||||||
test -f $SVN_TREE/exec-2.sh &&
|
test -f $SVN_TREE/exec-2.sh &&
|
||||||
test ! -L $SVN_TREE/exec-2.sh &&
|
test ! -L $SVN_TREE/exec-2.sh &&
|
||||||
diff -u help $SVN_TREE/exec-2.sh"
|
diff -u help $SVN_TREE/exec-2.sh"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
if test -n "$GIT_SVN_LC_ALL" && echo $GIT_SVN_LC_ALL | grep -q '\.UTF-8$'
|
if test -n "$GIT_SVN_LC_ALL" && echo $GIT_SVN_LC_ALL | grep -q '\.UTF-8$'
|
||||||
@ -193,6 +195,12 @@ test_expect_success "$name" \
|
|||||||
git-rev-list --pretty=raw remotes/alt | grep ^tree | uniq > b &&
|
git-rev-list --pretty=raw remotes/alt | grep ^tree | uniq > b &&
|
||||||
diff -u a b"
|
diff -u a b"
|
||||||
|
|
||||||
|
if test -n "$NO_SYMLINK"
|
||||||
|
then
|
||||||
|
test_done
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
name='check imported tree checksums expected tree checksums'
|
name='check imported tree checksums expected tree checksums'
|
||||||
rm -f expected
|
rm -f expected
|
||||||
if test -n "$GIT_SVN_LC_ALL" && echo $GIT_SVN_LC_ALL | grep -q '\.UTF-8$'
|
if test -n "$GIT_SVN_LC_ALL" && echo $GIT_SVN_LC_ALL | grep -q '\.UTF-8$'
|
||||||
|
Loading…
Reference in New Issue
Block a user