Code

git-svn: svn (command-line) 1.0.x compatibility
authorEric Wong <normalperson@yhbt.net>
Fri, 16 Jun 2006 02:51:05 +0000 (19:51 -0700)
committerEric Wong <normalperson@yhbt.net>
Fri, 16 Jun 2006 10:04:21 +0000 (03:04 -0700)
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>
contrib/git-svn/git-svn.perl
contrib/git-svn/t/t0000-contrib-git-svn.sh

index 417fcf1feba797e65a289994aadcd0e0f2a450a4..ab1d06500ddc8d47dcb54b3752fdc08547f86476 100755 (executable)
@@ -1306,12 +1306,12 @@ sub svn_checkout_tree {
                } elsif ($m->{chg} eq 'T') {
                        sys(qw(svn rm --force),$m->{file_b});
                        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);
                } elsif ($m->{chg} eq 'A') {
                        svn_ensure_parent_path( $m->{file_b} );
                        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);
                } else {
                        croak "Invalid chg: $m->{chg}\n";
index 0f52746647a48cba2207e6596718f90b6920cf68..443d5183670dbaf837f1aba37384fca084454496 100644 (file)
@@ -11,7 +11,10 @@ mkdir import
 cd import
 
 echo foo > foo
-ln -s foo foo.link
+if test -z "$NO_SYMLINK"
+then
+       ln -s foo foo.link
+fi
 mkdir -p dir/a/b/c/d/e
 echo 'deep dir' > dir/a/b/c/d/e/file
 mkdir -p bar
@@ -129,46 +132,45 @@ test_expect_success "$name" \
 
 
 
-name='executable file becomes a symlink to bar/zzz (file)'
-rm exec.sh
-ln -s bar/zzz exec.sh
-git update-index exec.sh
-git commit -m "$name"
-
-test_expect_success "$name" \
-    "git-svn commit --find-copies-harder --rmdir remotes/git-svn..mybranch5 &&
-     svn up $SVN_TREE &&
-     test -L $SVN_TREE/exec.sh"
-
-
-
-name='new symlink is added to a file that was also just made executable'
-chmod +x bar/zzz
-ln -s bar/zzz exec-2.sh
-git update-index --add bar/zzz exec-2.sh
-git commit -m "$name"
-
-test_expect_success "$name" \
-    "git-svn commit --find-copies-harder --rmdir remotes/git-svn..mybranch5 &&
-     svn up $SVN_TREE &&
-     test -x $SVN_TREE/bar/zzz &&
-     test -L $SVN_TREE/exec-2.sh"
-
-
-
-name='modify a symlink to become a file'
-git help > help || true
-rm exec-2.sh
-cp help exec-2.sh
-git update-index exec-2.sh
-git commit -m "$name"
-
-test_expect_success "$name" \
-    "git-svn commit --find-copies-harder --rmdir remotes/git-svn..mybranch5 &&
-     svn up $SVN_TREE &&
-     test -f $SVN_TREE/exec-2.sh &&
-     test ! -L $SVN_TREE/exec-2.sh &&
-     diff -u help $SVN_TREE/exec-2.sh"
+if test -z "$NO_SYMLINK"
+then
+       name='executable file becomes a symlink to bar/zzz (file)'
+       rm exec.sh
+       ln -s bar/zzz exec.sh
+       git update-index exec.sh
+       git commit -m "$name"
+
+       test_expect_success "$name" \
+           "git-svn commit --find-copies-harder --rmdir remotes/git-svn..mybranch5 &&
+            svn up $SVN_TREE &&
+            test -L $SVN_TREE/exec.sh"
+
+       name='new symlink is added to a file that was also just made executable'
+       chmod +x bar/zzz
+       ln -s bar/zzz exec-2.sh
+       git update-index --add bar/zzz exec-2.sh
+       git commit -m "$name"
+
+       test_expect_success "$name" \
+           "git-svn commit --find-copies-harder --rmdir remotes/git-svn..mybranch5 &&
+            svn up $SVN_TREE &&
+            test -x $SVN_TREE/bar/zzz &&
+            test -L $SVN_TREE/exec-2.sh"
+
+       name='modify a symlink to become a file'
+       git help > help || true
+       rm exec-2.sh
+       cp help exec-2.sh
+       git update-index exec-2.sh
+       git commit -m "$name"
+
+       test_expect_success "$name" \
+           "git-svn commit --find-copies-harder --rmdir remotes/git-svn..mybranch5 &&
+            svn up $SVN_TREE &&
+            test -f $SVN_TREE/exec-2.sh &&
+            test ! -L $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$'
@@ -193,6 +195,12 @@ test_expect_success "$name" \
      git-rev-list --pretty=raw remotes/alt | grep ^tree | uniq > b &&
      diff -u a b"
 
+if test -n "$NO_SYMLINK"
+then
+       test_done
+       exit 0
+fi
+
 name='check imported tree checksums expected tree checksums'
 rm -f expected
 if test -n "$GIT_SVN_LC_ALL" && echo $GIT_SVN_LC_ALL | grep -q '\.UTF-8$'