git-svn: SVN 1.1.x library compatibility

Tested on a plain Ubuntu Hoary installation
using subversion 1.1.1-2ubuntu3

1.1.x issues I had to deal with:

* Avoid the noisy command-line client compatibility check if we
  use the libraries.

* get_log() arguments differ (now using a nice wrapper from
  Junio's suggestion)

* get_file() is picky about what kind of file handles it gets,
  so I ended up redirecting STDOUT.  I'm probably overflushing
  my file handles, but that's the safest thing to do...

* BDB kept segfaulting on me during tests, so svnadmin will use FSFS
  whenever we can.

* If somebody used an expanded CVS $Id$ line inside a file, then
  propsetting it to use svn:keywords will cause the original CVS
  $Id$ to be retained when asked for the original file.  As far as
  I can see, this is a server-side issue.  We won't care in the
  test anymore, as long as it's not expanded by SVN, a static
  CVS $Id$ line is fine.

While we're at making ourselves more compatible, avoid grep
along with the -q flag, which is GNU-specific. (grep avoidance
tip from Junio, too)

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
Eric Wong
2006-06-28 03:07:14 -07:00
committed by Junio C Hamano
parent 2386c2975d
commit dc62e25cbd
4 changed files with 44 additions and 12 deletions

View File

@ -33,7 +33,13 @@ svnrepo=$PWD/svnrepo
set -e
svnadmin create $svnrepo
if svnadmin create --help | grep fs-type >/dev/null
then
svnadmin create --fs-type fsfs "$svnrepo"
else
svnadmin create "$svnrepo"
fi
svnrepo="file://$svnrepo/test-git-svn"

View File

@ -5,6 +5,16 @@
test_description='git-svn tests'
GIT_SVN_LC_ALL=$LC_ALL
case "$LC_ALL" in
*.UTF-8)
have_utf8=t
;;
*)
have_utf8=
;;
esac
. ./lib-git-svn.sh
mkdir import
@ -173,7 +183,7 @@ then
fi
if test -n "$GIT_SVN_LC_ALL" && echo $GIT_SVN_LC_ALL | grep -q '\.UTF-8$'
if test "$have_utf8" = t
then
name="commit with UTF-8 message: locale: $GIT_SVN_LC_ALL"
echo '# hello' >> exec-2.sh
@ -203,7 +213,7 @@ 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$'
if test "$have_utf8" = t
then
echo tree f735671b89a7eb30cab1d8597de35bd4271ab813 > expected
fi

View File

@ -21,8 +21,8 @@ a_empty_crlf=
cd import
cat >> kw.c <<\EOF
/* Make it look like somebody copied a file from CVS into SVN: */
/* $Id: kw.c,v 1.1.1.1 1994/03/06 00:00:00 eric Exp $ */
/* Somebody prematurely put a keyword into this file */
/* $Id$ */
EOF
printf "Hello\r\nWorld\r\n" > crlf