Merge git://git.bogomips.org/git-svn

* git://git.bogomips.org/git-svn:
  git-svn: add --authors-prog option
  git-svn: Set svn.authorsfile if it is passed to git svn clone
  git-svn: Correctly report max revision when following deleted paths
  git-svn: Fix for svn paths removed > log-window-size revisions ago
  git-svn testsuite: use standard configuration for Subversion tools
This commit is contained in:
Junio C Hamano 2009-05-21 07:28:07 -07:00
commit 581412cb02
32 changed files with 334 additions and 211 deletions

View File

@ -398,6 +398,14 @@ after the authors-file is modified should continue operation.
config key: svn.authorsfile
--authors-prog=<filename>::
If this option is specified, for each SVN committer name that does not
exist in the authors file, the given file is executed with the committer
name as the first argument. The program is expected to return a single
line of the form "Name <email>", which will be treated as if included in
the authors file.
-q::
--quiet::
Make 'git-svn' less verbose. Specify a second time to make it

View File

@ -5,7 +5,7 @@ use warnings;
use strict;
use vars qw/ $AUTHOR $VERSION
$sha1 $sha1_short $_revision $_repository
$_q $_authors %users/;
$_q $_authors $_authors_prog %users/;
$AUTHOR = 'Eric Wong <normalperson@yhbt.net>';
$VERSION = '@@GIT_VERSION@@';
@ -39,6 +39,7 @@ use Digest::MD5;
use IO::File qw//;
use File::Basename qw/dirname basename/;
use File::Path qw/mkpath/;
use File::Spec;
use Getopt::Long qw/:config gnu_getopt no_ignore_case auto_abbrev/;
use IPC::Open3;
use Git;
@ -76,6 +77,7 @@ my %remote_opts = ( 'username=s' => \$Git::SVN::Prompt::_username,
'ignore-paths=s' => \$SVN::Git::Fetcher::_ignore_regex );
my %fc_opts = ( 'follow-parent|follow!' => \$Git::SVN::_follow_parent,
'authors-file|A=s' => \$_authors,
'authors-prog=s' => \$_authors_prog,
'repack:i' => \$Git::SVN::_repack,
'noMetadata' => \$Git::SVN::_no_metadata,
'useSvmProps' => \$Git::SVN::_use_svm_props,
@ -263,6 +265,9 @@ usage(0) if $_help;
version() if $_version;
usage(1) unless defined $cmd;
load_authors() if $_authors;
if (defined $_authors_prog) {
$_authors_prog = "'" . File::Spec->rel2abs($_authors_prog) . "'";
}
unless ($cmd =~ /^(?:clone|init|multi-init|commit-diff)$/) {
Git::SVN::Migration::migration_check();
@ -361,6 +366,7 @@ sub cmd_clone {
$path = basename($url) if !defined $path || !length $path;
cmd_init($url, $path);
Git::SVN::fetch_all($Git::SVN::default_repo_id);
command_oneline('config', 'svn.authorsfile', $_authors) if $_authors;
}
sub cmd_init {
@ -2663,12 +2669,33 @@ sub other_gs {
$gs
}
sub call_authors_prog {
my ($orig_author) = @_;
my $author = `$::_authors_prog $orig_author`;
if ($? != 0) {
die "$::_authors_prog failed with exit code $?\n"
}
if ($author =~ /^\s*(.+?)\s*<(.*)>\s*$/) {
my ($name, $email) = ($1, $2);
$email = undef if length $2 == 0;
return [$name, $email];
} else {
die "Author: $orig_author: $::_authors_prog returned "
. "invalid author format: $author\n";
}
}
sub check_author {
my ($author) = @_;
if (!defined $author || length $author == 0) {
$author = '(no author)';
} elsif (defined $::_authors && ! defined $::users{$author}) {
die "Author: $author not defined in $::_authors file\n";
}
if (!defined $::users{$author}) {
if (defined $::_authors_prog) {
$::users{$author} = call_authors_prog($author);
} elsif (defined $::_authors) {
die "Author: $author not defined in $::_authors file\n";
}
}
$author;
}
@ -4438,6 +4465,7 @@ sub gs_fetch_loop_common {
my ($min, $max) = ($base, $head < $base + $inc ? $head : $base + $inc);
my $longest_path = longest_common_path($gsv, $globs);
my $ra_url = $self->{url};
my $find_trailing_edge;
while (1) {
my %revs;
my $err;
@ -4455,8 +4483,10 @@ sub gs_fetch_loop_common {
sub { $revs{$_[1]} = _cb(@_) });
if ($err) {
print "Checked through r$max\r";
} else {
$find_trailing_edge = 1;
}
if ($err && $max >= $head) {
if ($err and $find_trailing_edge) {
print STDERR "Path '$longest_path' ",
"was probably deleted:\n",
$err->expanded_message,
@ -4468,13 +4498,14 @@ sub gs_fetch_loop_common {
my $ok;
$self->get_log([$longest_path], $min, $hi,
0, 1, 1, sub {
$ok ||= $_[1];
$ok = $_[1];
$revs{$_[1]} = _cb(@_) });
if ($ok) {
print STDERR "r$min .. r$ok OK\n";
last;
}
}
$find_trailing_edge = 0;
}
$SVN::Error::handler = $err_handler;

View File

@ -26,6 +26,8 @@ fi
svnrepo=$PWD/svnrepo
export svnrepo
svnconf=$PWD/svnconf
export svnconf
perl -w -e "
use SVN::Core;
@ -54,6 +56,19 @@ poke() {
test-chmtime +1 "$1"
}
# We need this, because we should pass empty configuration directory to
# the 'svn commit' to avoid automated property changes and other stuff
# that could be set from user's configuration files in ~/.subversion.
svn_cmd () {
[ -d "$svnconf" ] || mkdir "$svnconf"
orig_svncmd="$1"; shift
if [ -z "$orig_svncmd" ]; then
svn
return
fi
svn "$orig_svncmd" --config-dir "$svnconf" "$@"
}
for d in \
"$SVN_HTTPD_PATH" \
/usr/sbin/apache2 \

View File

@ -31,7 +31,7 @@ test_expect_success \
echo "zzz" > bar/zzz &&
echo "#!/bin/sh" > exec.sh &&
chmod +x exec.sh &&
svn import -m "import for git svn" . "$svnrepo" >/dev/null &&
svn_cmd import -m "import for git svn" . "$svnrepo" >/dev/null &&
cd .. &&
rm -rf import &&
git svn init "$svnrepo"'
@ -51,7 +51,7 @@ test_expect_success "$name" '
git commit -m "$name" &&
git svn set-tree --find-copies-harder --rmdir \
${remotes_git_svn}..mybranch &&
svn up "$SVN_TREE" &&
svn_cmd up "$SVN_TREE" &&
test -d "$SVN_TREE"/dir && test ! -d "$SVN_TREE"/dir/a'
@ -118,7 +118,7 @@ test_expect_success "$name" '
git commit -m "$name" &&
git svn set-tree --find-copies-harder --rmdir \
${remotes_git_svn}..mybranch5 &&
svn up "$SVN_TREE" &&
svn_cmd up "$SVN_TREE" &&
test ! -x "$SVN_TREE"/exec.sh'
@ -129,7 +129,7 @@ test_expect_success "$name" '
git commit -m "$name" &&
git svn set-tree --find-copies-harder --rmdir \
${remotes_git_svn}..mybranch5 &&
svn up "$SVN_TREE" &&
svn_cmd up "$SVN_TREE" &&
test -x "$SVN_TREE"/exec.sh'
@ -141,7 +141,7 @@ test_expect_success "$name" '
git commit -m "$name" &&
git svn set-tree --find-copies-harder --rmdir \
${remotes_git_svn}..mybranch5 &&
svn up "$SVN_TREE" &&
svn_cmd up "$SVN_TREE" &&
test -L "$SVN_TREE"/exec.sh'
name='new symlink is added to a file that was also just made executable'
@ -153,7 +153,7 @@ test_expect_success "$name" '
git commit -m "$name" &&
git svn set-tree --find-copies-harder --rmdir \
${remotes_git_svn}..mybranch5 &&
svn up "$SVN_TREE" &&
svn_cmd up "$SVN_TREE" &&
test -x "$SVN_TREE"/bar/zzz &&
test -L "$SVN_TREE"/exec-2.sh'
@ -166,7 +166,7 @@ test_expect_success "$name" '
git commit -m "$name" &&
git svn set-tree --find-copies-harder --rmdir \
${remotes_git_svn}..mybranch5 &&
svn up "$SVN_TREE" &&
svn_cmd up "$SVN_TREE" &&
test -f "$SVN_TREE"/exec-2.sh &&
test ! -L "$SVN_TREE"/exec-2.sh &&
test_cmp help "$SVN_TREE"/exec-2.sh'

View File

@ -48,7 +48,7 @@ EOF
printf "\r\n" > empty_crlf
a_empty_crlf=`git hash-object -w empty_crlf`
svn import --no-auto-props -m 'import for git svn' . "$svnrepo" >/dev/null
svn_cmd import --no-auto-props -m 'import for git svn' . "$svnrepo" >/dev/null
cd ..
rm -rf import
@ -57,13 +57,13 @@ test_expect_success 'setup some commits to svn' \
'cd test_wc &&
echo Greetings >> kw.c &&
poke kw.c &&
svn commit -m "Not yet an Id" &&
svn_cmd commit -m "Not yet an Id" &&
echo Hello world >> kw.c &&
poke kw.c &&
svn commit -m "Modified file, but still not yet an Id" &&
svn propset svn:keywords Id kw.c &&
svn_cmd commit -m "Modified file, but still not yet an Id" &&
svn_cmd propset svn:keywords Id kw.c &&
poke kw.c &&
svn commit -m "Propset Id" &&
svn_cmd commit -m "Propset Id" &&
cd ..'
test_expect_success 'initialize git svn' 'git svn init "$svnrepo"'
@ -83,16 +83,16 @@ test_expect_success 'raw $Id$ found in kw.c' "test '$expect' = '$got'"
test_expect_success "propset CR on crlf files" \
'cd test_wc &&
svn propset svn:eol-style CR empty &&
svn propset svn:eol-style CR crlf &&
svn propset svn:eol-style CR ne_crlf &&
svn commit -m "propset CR on crlf files" &&
svn_cmd propset svn:eol-style CR empty &&
svn_cmd propset svn:eol-style CR crlf &&
svn_cmd propset svn:eol-style CR ne_crlf &&
svn_cmd commit -m "propset CR on crlf files" &&
cd ..'
test_expect_success 'fetch and pull latest from svn and checkout a new wc' \
'git svn fetch &&
git pull . ${remotes_git_svn} &&
svn co "$svnrepo" new_wc'
svn_cmd co "$svnrepo" new_wc'
for i in crlf ne_crlf lf ne_lf cr ne_cr empty_cr empty_lf empty empty_crlf
do
@ -106,11 +106,11 @@ cd test_wc
a_cr=`printf '$Id$\r\nHello\r\nWorld\r\n' | git hash-object --stdin`
a_ne_cr=`printf '$Id$\r\nHello\r\nWorld' | git hash-object --stdin`
test_expect_success 'Set CRLF on cr files' \
'svn propset svn:eol-style CRLF cr &&
svn propset svn:eol-style CRLF ne_cr &&
svn propset svn:keywords Id cr &&
svn propset svn:keywords Id ne_cr &&
svn commit -m "propset CRLF on cr files"'
'svn_cmd propset svn:eol-style CRLF cr &&
svn_cmd propset svn:eol-style CRLF ne_cr &&
svn_cmd propset svn:keywords Id cr &&
svn_cmd propset svn:keywords Id ne_cr &&
svn_cmd commit -m "propset CRLF on cr files"'
cd ..
test_expect_success 'fetch and pull latest from svn' \
'git svn fetch && git pull . ${remotes_git_svn}'
@ -140,10 +140,10 @@ test_expect_success 'test show-ignore' "
cd test_wc &&
mkdir -p deeply/nested/directory &&
touch deeply/nested/directory/.keep &&
svn add deeply &&
svn up &&
svn propset -R svn:ignore 'no-such-file*' .
svn commit -m 'propset svn:ignore'
svn_cmd add deeply &&
svn_cmd up &&
svn_cmd propset -R svn:ignore 'no-such-file*' .
svn_cmd commit -m 'propset svn:ignore'
cd .. &&
git svn show-ignore > show-ignore.got &&
cmp show-ignore.expect show-ignore.got

View File

@ -9,7 +9,7 @@ test_expect_success 'initialize repo' '
mkdir -p deeply/nested/directory/number/2 &&
echo foo > deeply/nested/directory/number/1/file &&
echo foo > deeply/nested/directory/number/2/another &&
svn import -m "import for git svn" . "$svnrepo" &&
svn_cmd import -m "import for git svn" . "$svnrepo" &&
cd ..
'
@ -23,7 +23,7 @@ test_expect_success 'Try a commit on rmdir' '
git rm -f deeply/nested/directory/number/2/another &&
git commit -a -m "remove another" &&
git svn set-tree --rmdir HEAD &&
svn ls -R "$svnrepo" | grep ^deeply/nested/directory/number/1
svn_cmd ls -R "$svnrepo" | grep ^deeply/nested/directory/number/1
'

View File

@ -10,15 +10,15 @@ test_expect_success 'make history for tracking' '
mkdir import &&
mkdir import/trunk &&
echo hello >> import/trunk/README &&
svn import -m initial import "$svnrepo" &&
svn_cmd import -m initial import "$svnrepo" &&
rm -rf import &&
svn co "$svnrepo"/trunk trunk &&
svn_cmd co "$svnrepo"/trunk trunk &&
echo bye bye >> trunk/README &&
svn rm -m "gone" "$svnrepo"/trunk &&
svn_cmd rm -m "gone" "$svnrepo"/trunk &&
rm -rf trunk &&
mkdir trunk &&
echo "new" > trunk/FOLLOWME &&
svn import -m "new trunk" trunk "$svnrepo"/trunk
svn_cmd import -m "new trunk" trunk "$svnrepo"/trunk
'
test_expect_success 'clone repo with git' '

View File

@ -11,18 +11,18 @@ test_expect_success 'initialize repo' '
cd import &&
mkdir -p trunk &&
echo hello > trunk/readme &&
svn import -m "initial" . "$svnrepo" &&
svn_cmd import -m "initial" . "$svnrepo" &&
cd .. &&
svn co "$svnrepo" wc &&
svn_cmd co "$svnrepo" wc &&
cd wc &&
echo world >> trunk/readme &&
poke trunk/readme &&
svn commit -m "another commit" &&
svn up &&
svn mv trunk thunk &&
svn_cmd commit -m "another commit" &&
svn_cmd up &&
svn_cmd mv trunk thunk &&
echo goodbye >> thunk/readme &&
poke thunk/readme &&
svn commit -m "bye now" &&
svn_cmd commit -m "bye now" &&
cd ..
'
@ -51,7 +51,7 @@ test_expect_success 'init and fetch from one svn-remote' '
'
test_expect_success 'follow deleted parent' '
(svn cp -m "resurrecting trunk as junk" \
(svn_cmd cp -m "resurrecting trunk as junk" \
"$svnrepo"/trunk@2 "$svnrepo"/junk ||
svn cp -m "resurrecting trunk as junk" \
-r2 "$svnrepo"/trunk "$svnrepo"/junk) &&
@ -97,8 +97,8 @@ test_expect_success 'follow higher-level parent' '
'
test_expect_success 'follow deleted directory' '
svn mv -m "bye!" "$svnrepo"/glob/blob/hi "$svnrepo"/glob/blob/bye &&
svn rm -m "remove glob" "$svnrepo"/glob &&
svn_cmd mv -m "bye!" "$svnrepo"/glob/blob/hi "$svnrepo"/glob/blob/bye &&
svn_cmd rm -m "remove glob" "$svnrepo"/glob &&
git svn init --minimize-url -i glob "$svnrepo"/glob &&
git svn fetch -i glob &&
test "`git cat-file blob refs/remotes/glob:blob/bye`" = hi &&
@ -120,7 +120,7 @@ test_expect_success 'follow-parent avoids deleting relevant info' '
cd import &&
svn import -m "r9270 test" . "$svnrepo"/r9270 &&
cd .. &&
svn co "$svnrepo"/r9270/trunk/subversion/bindings/swig/perl r9270 &&
svn_cmd co "$svnrepo"/r9270/trunk/subversion/bindings/swig/perl r9270 &&
cd r9270 &&
svn mkdir native &&
svn mv t native/t &&
@ -138,7 +138,7 @@ test_expect_success 'follow-parent avoids deleting relevant info' '
'
test_expect_success "track initial change if it was only made to parent" '
svn cp -m "wheee!" "$svnrepo"/r9270/trunk "$svnrepo"/r9270/drunk &&
svn_cmd cp -m "wheee!" "$svnrepo"/r9270/trunk "$svnrepo"/r9270/drunk &&
git svn init --minimize-url -i r9270-d \
"$svnrepo"/r9270/drunk/subversion/bindings/swig/perl/native/t &&
git svn fetch -i r9270-d &&
@ -152,20 +152,20 @@ test_expect_success "track initial change if it was only made to parent" '
test_expect_success "follow-parent is atomic" '
(
cd wc &&
svn up &&
svn mkdir stunk &&
svn_cmd up &&
svn_cmd mkdir stunk &&
echo "trunk stunk" > stunk/readme &&
svn add stunk/readme &&
svn ci -m "trunk stunk" &&
svn_cmd add stunk/readme &&
svn_cmd ci -m "trunk stunk" &&
echo "stunk like junk" >> stunk/readme &&
svn ci -m "really stunk" &&
svn_cmd ci -m "really stunk" &&
echo "stink stank stunk" >> stunk/readme &&
svn ci -m "even the grinch agrees"
svn_cmd ci -m "even the grinch agrees"
) &&
svn copy -m "stunk flunked" "$svnrepo"/stunk "$svnrepo"/flunk &&
svn_cmd copy -m "stunk flunked" "$svnrepo"/stunk "$svnrepo"/flunk &&
{ svn cp -m "early stunk flunked too" \
"$svnrepo"/stunk@17 "$svnrepo"/flunked ||
svn cp -m "early stunk flunked too" \
svn_cmd cp -m "early stunk flunked too" \
-r17 "$svnrepo"/stunk "$svnrepo"/flunked; } &&
git svn init --minimize-url -i stunk "$svnrepo"/stunk &&
git svn fetch -i stunk &&
@ -192,7 +192,7 @@ test_expect_success "follow-parent is atomic" '
'
test_expect_success "track multi-parent paths" '
svn cp -m "resurrect /glob" "$svnrepo"/r9270 "$svnrepo"/glob &&
svn_cmd cp -m "resurrect /glob" "$svnrepo"/r9270 "$svnrepo"/glob &&
git svn multi-fetch &&
test `git cat-file commit refs/remotes/glob | \
grep "^parent " | wc -l` -eq 2

View File

@ -8,7 +8,7 @@ test_expect_success 'initialize repo' '
mkdir import &&
cd import &&
echo hello > readme &&
svn import -m "initial" . "$svnrepo" &&
svn_cmd import -m "initial" . "$svnrepo" &&
cd .. &&
echo hello > readme &&
git update-index --add readme &&
@ -27,16 +27,16 @@ prev=`git rev-parse --verify HEAD^1`
test_expect_success 'test the commit-diff command' '
test -n "$prev" && test -n "$head" &&
git svn commit-diff -r1 "$prev" "$head" "$svnrepo" &&
svn co "$svnrepo" wc &&
svn_cmd co "$svnrepo" wc &&
cmp readme wc/readme
'
test_expect_success 'commit-diff to a sub-directory (with git svn config)' '
svn import -m "sub-directory" import "$svnrepo"/subdir &&
svn_cmd import -m "sub-directory" import "$svnrepo"/subdir &&
git svn init --minimize-url "$svnrepo"/subdir &&
git svn fetch &&
git svn commit-diff -r3 "$prev" "$head" &&
svn cat "$svnrepo"/subdir/readme > readme.2 &&
svn_cmd cat "$svnrepo"/subdir/readme > readme.2 &&
cmp readme readme.2
'

View File

@ -8,18 +8,18 @@ test_expect_success 'initialize repo' '
mkdir import &&
cd import &&
echo initial > file &&
svn import -m "initial" . "$svnrepo" &&
svn_cmd import -m "initial" . "$svnrepo" &&
cd .. &&
echo initial > file &&
git update-index --add file &&
git commit -a -m "initial"
'
test_expect_success 'commit change from svn side' '
svn co "$svnrepo" t.svn &&
svn_cmd co "$svnrepo" t.svn &&
cd t.svn &&
echo second line from svn >> file &&
poke file &&
svn commit -m "second line from svn" &&
svn_cmd commit -m "second line from svn" &&
cd .. &&
rm -rf t.svn
'
@ -43,11 +43,11 @@ test_expect_success 'dcommit fails to commit because of conflict' '
git svn init "$svnrepo" &&
git svn fetch &&
git reset --hard refs/${remotes_git_svn} &&
svn co "$svnrepo" t.svn &&
svn_cmd co "$svnrepo" t.svn &&
cd t.svn &&
echo fourth line from svn >> file &&
poke file &&
svn commit -m "fourth line from svn" &&
svn_cmd commit -m "fourth line from svn" &&
cd .. &&
rm -rf t.svn &&
echo "fourth line from git" >> file &&
@ -67,11 +67,11 @@ test_expect_success 'dcommit does the svn equivalent of an index merge' "
"
test_expect_success 'commit another change from svn side' '
svn co "$svnrepo" t.svn &&
svn_cmd co "$svnrepo" t.svn &&
cd t.svn &&
echo third line from svn >> file &&
poke file &&
svn commit -m "third line from svn" &&
svn_cmd commit -m "third line from svn" &&
cd .. &&
rm -rf t.svn
'

View File

@ -12,7 +12,7 @@ test_expect_success 'setup old-looking metadata' '
mkdir -p $i && \
echo hello >> $i/README || exit 1
done && \
svn import -m test . "$svnrepo"
svn_cmd import -m test . "$svnrepo"
cd .. &&
git svn init "$svnrepo" &&
git svn fetch &&

View File

@ -14,30 +14,30 @@ test_expect_success 'test refspec globbing' '
mkdir -p trunk/src/a trunk/src/b trunk/doc &&
echo "hello world" > trunk/src/a/readme &&
echo "goodbye world" > trunk/src/b/readme &&
svn import -m "initial" trunk "$svnrepo"/trunk &&
svn co "$svnrepo" tmp &&
svn_cmd import -m "initial" trunk "$svnrepo"/trunk &&
svn_cmd co "$svnrepo" tmp &&
(
cd tmp &&
mkdir branches tags &&
svn add branches tags &&
svn cp trunk branches/start &&
svn commit -m "start a new branch" &&
svn up &&
svn_cmd add branches tags &&
svn_cmd cp trunk branches/start &&
svn_cmd commit -m "start a new branch" &&
svn_cmd up &&
echo "hi" >> branches/start/src/b/readme &&
poke branches/start/src/b/readme &&
echo "hey" >> branches/start/src/a/readme &&
poke branches/start/src/a/readme &&
svn commit -m "hi" &&
svn up &&
svn cp branches/start tags/end &&
svn_cmd commit -m "hi" &&
svn_cmd up &&
svn_cmd cp branches/start tags/end &&
echo "bye" >> tags/end/src/b/readme &&
poke tags/end/src/b/readme &&
echo "aye" >> tags/end/src/a/readme &&
poke tags/end/src/a/readme &&
svn commit -m "the end" &&
svn_cmd commit -m "the end" &&
echo "byebye" >> tags/end/src/b/readme &&
poke tags/end/src/b/readme &&
svn commit -m "nothing to see here"
svn_cmd commit -m "nothing to see here"
) &&
git config --add svn-remote.svn.url "$svnrepo" &&
git config --add svn-remote.svn.fetch \
@ -72,7 +72,7 @@ test_expect_success 'test left-hand-side only globbing' '
cd tmp &&
echo "try try" >> tags/end/src/b/readme &&
poke tags/end/src/b/readme &&
svn commit -m "try to try"
svn_cmd commit -m "try to try"
) &&
git svn fetch two &&
test `git rev-list refs/remotes/two/tags/end | wc -l` -eq 6 &&
@ -102,7 +102,7 @@ test_expect_success 'test disallow multi-globs' '
cd tmp &&
echo "try try" >> tags/end/src/b/readme &&
poke tags/end/src/b/readme &&
svn commit -m "try to try"
svn_cmd commit -m "try to try"
) &&
test_must_fail git svn fetch three 2> stderr.three &&
test_cmp expect.three stderr.three

View File

@ -14,30 +14,30 @@ test_expect_success 'test refspec globbing' '
mkdir -p trunk/src/a trunk/src/b trunk/doc &&
echo "hello world" > trunk/src/a/readme &&
echo "goodbye world" > trunk/src/b/readme &&
svn import -m "initial" trunk "$svnrepo"/trunk &&
svn co "$svnrepo" tmp &&
svn_cmd import -m "initial" trunk "$svnrepo"/trunk &&
svn_cmd co "$svnrepo" tmp &&
(
cd tmp &&
mkdir branches branches/v1 tags &&
svn add branches tags &&
svn cp trunk branches/v1/start &&
svn commit -m "start a new branch" &&
svn up &&
svn_cmd add branches tags &&
svn_cmd cp trunk branches/v1/start &&
svn_cmd commit -m "start a new branch" &&
svn_cmd up &&
echo "hi" >> branches/v1/start/src/b/readme &&
poke branches/v1/start/src/b/readme &&
echo "hey" >> branches/v1/start/src/a/readme &&
poke branches/v1/start/src/a/readme &&
svn commit -m "hi" &&
svn up &&
svn cp branches/v1/start tags/end &&
svn_cmd commit -m "hi" &&
svn_cmd up &&
svn_cmd cp branches/v1/start tags/end &&
echo "bye" >> tags/end/src/b/readme &&
poke tags/end/src/b/readme &&
echo "aye" >> tags/end/src/a/readme &&
poke tags/end/src/a/readme &&
svn commit -m "the end" &&
svn_cmd commit -m "the end" &&
echo "byebye" >> tags/end/src/b/readme &&
poke tags/end/src/b/readme &&
svn commit -m "nothing to see here"
svn_cmd commit -m "nothing to see here"
) &&
git config --add svn-remote.svn.url "$svnrepo" &&
git config --add svn-remote.svn.fetch \
@ -72,7 +72,7 @@ test_expect_success 'test left-hand-side only globbing' '
cd tmp &&
echo "try try" >> tags/end/src/b/readme &&
poke tags/end/src/b/readme &&
svn commit -m "try to try"
svn_cmd commit -m "try to try"
) &&
git svn fetch two &&
test `git rev-list refs/remotes/two/tags/end | wc -l` -eq 6 &&
@ -97,25 +97,25 @@ test_expect_success 'test another branch' '
(
cd tmp &&
mkdir branches/v2 &&
svn add branches/v2 &&
svn cp trunk branches/v2/start &&
svn commit -m "Another versioned branch" &&
svn up &&
svn_cmd add branches/v2 &&
svn_cmd cp trunk branches/v2/start &&
svn_cmd commit -m "Another versioned branch" &&
svn_cmd up &&
echo "hello" >> branches/v2/start/src/b/readme &&
poke branches/v2/start/src/b/readme &&
echo "howdy" >> branches/v2/start/src/a/readme &&
poke branches/v2/start/src/a/readme &&
svn commit -m "Changed 2 in v2/start" &&
svn up &&
svn cp branches/v2/start tags/next &&
svn_cmd commit -m "Changed 2 in v2/start" &&
svn_cmd up &&
svn_cmd cp branches/v2/start tags/next &&
echo "bye" >> tags/next/src/b/readme &&
poke tags/next/src/b/readme &&
echo "aye" >> tags/next/src/a/readme &&
poke tags/next/src/a/readme &&
svn commit -m "adding more" &&
svn_cmd commit -m "adding more" &&
echo "byebye" >> tags/next/src/b/readme &&
poke tags/next/src/b/readme &&
svn commit -m "adios"
svn_cmd commit -m "adios"
) &&
git config --add svn-remote.four.url "$svnrepo" &&
git config --add svn-remote.four.fetch trunk:refs/remotes/four/trunk &&
@ -151,7 +151,7 @@ test_expect_success 'test disallow multiple globs' '
cd tmp &&
echo "try try" >> tags/end/src/b/readme &&
poke tags/end/src/b/readme &&
svn commit -m "try to try"
svn_cmd commit -m "try to try"
) &&
test_must_fail git svn fetch three 2> stderr.three &&
test_cmp expect.three stderr.three

View File

@ -15,7 +15,7 @@ test_description='git svn dcommit new files over svn:// test'
require_svnserve
test_expect_success 'start tracking an empty repo' '
svn mkdir -m "empty dir" "$svnrepo"/empty-dir &&
svn_cmd mkdir -m "empty dir" "$svnrepo"/empty-dir &&
echo "[general]" > "$rawsvnrepo"/conf/svnserve.conf &&
echo anon-access = write >> "$rawsvnrepo"/conf/svnserve.conf &&
start_svnserve &&

View File

@ -35,12 +35,12 @@ EOF
}
test_expect_success 'setup svn repository' '
svn co "$svnrepo" mysvnwork &&
svn_cmd co "$svnrepo" mysvnwork &&
mkdir -p mysvnwork/trunk &&
cd mysvnwork &&
big_text_block >> trunk/README &&
svn add trunk &&
svn ci -m "first commit" trunk &&
svn_cmd add trunk &&
svn_cmd ci -m "first commit" trunk &&
cd ..
'

View File

@ -14,7 +14,7 @@ test_expect_success 'setup repository and import' '
mkdir -p $i && \
echo hello >> $i/README || exit 1
done && \
svn import -m test . "$svnrepo"
svn_cmd import -m test . "$svnrepo"
cd .. &&
git svn init "$svnrepo" -T trunk -b branches -t tags &&
git svn fetch &&

View File

@ -16,7 +16,7 @@ cd tmp
test_expect_success 'setup svnrepo' '
mkdir project project/trunk project/branches project/tags &&
echo foo > project/trunk/foo &&
svn import -m "$test_description" project "$svnrepo"/project &&
svn_cmd import -m "$test_description" project "$svnrepo"/project &&
rm -rf project
'

View File

@ -13,13 +13,13 @@ scary_ref='Abo-Uebernahme%20(Bug%20#994)'
test_expect_success 'setup svnrepo' '
mkdir project project/trunk project/branches project/tags &&
echo foo > project/trunk/foo &&
svn import -m "$test_description" project "$svnrepo/pr ject" &&
svn_cmd import -m "$test_description" project "$svnrepo/pr ject" &&
rm -rf project &&
svn cp -m "fun" "$svnrepo/pr ject/trunk" \
svn_cmd cp -m "fun" "$svnrepo/pr ject/trunk" \
"$svnrepo/pr ject/branches/fun plugin" &&
svn cp -m "more fun!" "$svnrepo/pr ject/branches/fun plugin" \
svn_cmd cp -m "more fun!" "$svnrepo/pr ject/branches/fun plugin" \
"$svnrepo/pr ject/branches/more fun plugin!" &&
svn cp -m "scary" "$svnrepo/pr ject/branches/fun plugin" \
svn_cmd cp -m "scary" "$svnrepo/pr ject/branches/fun plugin" \
"$svnrepo/pr ject/branches/$scary_uri" &&
start_httpd
'

View File

@ -7,7 +7,7 @@ test_description='git svn info'
. ./lib-git-svn.sh
# Tested with: svn, version 1.4.4 (r25188)
v=`svn --version | sed -n -e 's/^svn, version \(1\.[0-9]*\.[0-9]*\).*$/\1/p'`
v=`svn_cmd --version | sed -n -e 's/^svn, version \(1\.[0-9]*\.[0-9]*\).*$/\1/p'`
case $v in
1.[45].*)
;;
@ -31,7 +31,7 @@ ptouch() {
my $atime = $mtime;
utime $atime, $mtime, $git_file;
}
' "`svn info $2 | grep '^Text Last Updated:'`" "$1"
' "`svn_cmd info $2 | grep '^Text Last Updated:'`" "$1"
}
quoted_svnrepo="$(echo $svnrepo | sed 's/ /%20/')"
@ -45,14 +45,14 @@ test_expect_success 'setup repository and import' '
mkdir directory &&
touch directory/.placeholder &&
ln -s directory symlink-directory &&
svn import -m "initial" . "$svnrepo" &&
svn_cmd import -m "initial" . "$svnrepo" &&
cd .. &&
svn co "$svnrepo" svnwc &&
svn_cmd co "$svnrepo" svnwc &&
cd svnwc &&
echo foo > foo &&
svn add foo &&
svn commit -m "change outside directory" &&
svn update &&
svn_cmd add foo &&
svn_cmd commit -m "change outside directory" &&
svn_cmd update &&
cd .. &&
mkdir gitwc &&
cd gitwc &&
@ -143,7 +143,7 @@ test_expect_success 'info added-file' "
cp gitwc/added-file svnwc/added-file &&
ptouch gitwc/added-file svnwc/added-file &&
cd svnwc &&
svn add added-file > /dev/null &&
svn_cmd add added-file > /dev/null &&
cd .. &&
(cd svnwc; svn info added-file) > expected.info-added-file &&
(cd gitwc; git svn info added-file) > actual.info-added-file &&
@ -160,7 +160,7 @@ test_expect_success 'info added-directory' "
ptouch gitwc/added-directory svnwc/added-directory &&
touch gitwc/added-directory/.placeholder &&
cd svnwc &&
svn add added-directory > /dev/null &&
svn_cmd add added-directory > /dev/null &&
cd .. &&
cd gitwc &&
git add added-directory &&
@ -184,7 +184,7 @@ test_expect_success 'info added-symlink-file' "
cd .. &&
cd svnwc &&
ln -s added-file added-symlink-file &&
svn add added-symlink-file > /dev/null &&
svn_cmd add added-symlink-file > /dev/null &&
cd .. &&
ptouch gitwc/added-symlink-file svnwc/added-symlink-file &&
(cd svnwc; svn info added-symlink-file) \
@ -207,7 +207,7 @@ test_expect_success 'info added-symlink-directory' "
cd .. &&
cd svnwc &&
ln -s added-directory added-symlink-directory &&
svn add added-symlink-directory > /dev/null &&
svn_cmd add added-symlink-directory > /dev/null &&
cd .. &&
ptouch gitwc/added-symlink-directory svnwc/added-symlink-directory &&
(cd svnwc; svn info added-symlink-directory) \
@ -233,7 +233,7 @@ test_expect_success 'info deleted-file' "
git rm -f file > /dev/null &&
cd .. &&
cd svnwc &&
svn rm --force file > /dev/null &&
svn_cmd rm --force file > /dev/null &&
cd .. &&
(cd svnwc; svn info file) |
sed -e 's/^\(Text Last Updated:\).*/\1 TEXT-LAST-UPDATED-STRING/' \
@ -254,7 +254,7 @@ test_expect_success 'info deleted-directory' "
git rm -r -f directory > /dev/null &&
cd .. &&
cd svnwc &&
svn rm --force directory > /dev/null &&
svn_cmd rm --force directory > /dev/null &&
cd .. &&
(cd svnwc; svn info directory) |
sed -e 's/^\(Text Last Updated:\).*/\1 TEXT-LAST-UPDATED-STRING/' \
@ -275,7 +275,7 @@ test_expect_success 'info deleted-symlink-file' "
git rm -f symlink-file > /dev/null &&
cd .. &&
cd svnwc &&
svn rm --force symlink-file > /dev/null &&
svn_cmd rm --force symlink-file > /dev/null &&
cd .. &&
(cd svnwc; svn info symlink-file) |
sed -e 's/^\(Text Last Updated:\).*/\1 TEXT-LAST-UPDATED-STRING/' \
@ -297,7 +297,7 @@ test_expect_success 'info deleted-symlink-directory' "
git rm -f symlink-directory > /dev/null &&
cd .. &&
cd svnwc &&
svn rm --force symlink-directory > /dev/null &&
svn_cmd rm --force symlink-directory > /dev/null &&
cd .. &&
(cd svnwc; svn info symlink-directory) |
sed -e 's/^\(Text Last Updated:\).*/\1 TEXT-LAST-UPDATED-STRING/' \

View File

@ -9,7 +9,7 @@ test_description='git svn clone with percent escapes'
test_expect_success 'setup svnrepo' '
mkdir project project/trunk project/branches project/tags &&
echo foo > project/trunk/foo &&
svn import -m "$test_description" project "$svnrepo/pr ject" &&
svn_cmd import -m "$test_description" project "$svnrepo/pr ject" &&
rm -rf project &&
start_httpd
'

View File

@ -4,12 +4,12 @@ test_description='git svn authorship'
. ./lib-git-svn.sh
test_expect_success 'setup svn repository' '
svn checkout "$svnrepo" work.svn &&
svn_cmd checkout "$svnrepo" work.svn &&
(
cd work.svn &&
echo >file
svn add file
svn commit -m "first commit" file
svn_cmd add file
svn_cmd commit -m "first commit" file
)
'
@ -74,10 +74,10 @@ test_expect_success 'interact with it via git svn' '
# Make sure there are no svn commit messages with excess blank lines
(
cd work.svn &&
svn up &&
svn_cmd up &&
test $(svn log -r2:2 | wc -l) = 5 &&
test $(svn log -r4:4 | wc -l) = 7
test $(svn_cmd log -r2:2 | wc -l) = 5 &&
test $(svn_cmd log -r4:4 | wc -l) = 7
)
'

View File

@ -10,7 +10,7 @@ test_description='git svn respects rewriteRoot during rebuild'
mkdir import
cd import
touch foo
svn import -m 'import for git svn' . "$svnrepo" >/dev/null
svn_cmd import -m 'import for git svn' . "$svnrepo" >/dev/null
cd ..
rm -rf import

View File

@ -21,7 +21,7 @@ test_expect_success 'initialize git svn' '
(
cd import &&
echo foo >foo &&
svn import -m "import for git svn" . "$svnrepo"
svn_cmd import -m "import for git svn" . "$svnrepo"
) &&
rm -rf import &&
git svn init "$svnrepo"
@ -61,23 +61,23 @@ test_expect_success 'check resulting svn repository' '
(
mkdir work &&
cd work &&
svn co "$svnrepo" &&
svn_cmd co "$svnrepo" &&
cd svnrepo &&
# Check properties from first commit.
test "x$(svn propget svn:executable exec1.sh)" = "x*" &&
test "x$(svn propget svn:mime-type exec1.sh)" = \
test "x$(svn_cmd propget svn:executable exec1.sh)" = "x*" &&
test "x$(svn_cmd propget svn:mime-type exec1.sh)" = \
"xapplication/x-shellscript" &&
test "x$(svn propget svn:mime-type hello.txt)" = "xtext/plain" &&
test "x$(svn propget svn:eol-style hello.txt)" = "xnative" &&
test "x$(svn propget svn:mime-type bar)" = "x" &&
test "x$(svn_cmd propget svn:mime-type hello.txt)" = "xtext/plain" &&
test "x$(svn_cmd propget svn:eol-style hello.txt)" = "xnative" &&
test "x$(svn_cmd propget svn:mime-type bar)" = "x" &&
# Check properties from second commit.
test "x$(svn propget svn:executable exec2.sh)" = "x*" &&
test "x$(svn propget svn:mime-type exec2.sh)" = "x" &&
test "x$(svn propget svn:mime-type world.txt)" = "x" &&
test "x$(svn propget svn:eol-style world.txt)" = "x" &&
test "x$(svn propget svn:mime-type zot)" = "x"
test "x$(svn_cmd propget svn:executable exec2.sh)" = "x*" &&
test "x$(svn_cmd propget svn:mime-type exec2.sh)" = "x" &&
test "x$(svn_cmd propget svn:mime-type world.txt)" = "x" &&
test "x$(svn_cmd propget svn:eol-style world.txt)" = "x" &&
test "x$(svn_cmd propget svn:mime-type zot)" = "x"
)
'
@ -89,12 +89,12 @@ test_expect_success 'check renamed file' '
git svn dcommit --config-dir=user &&
(
cd work/svnrepo &&
svn up &&
svn_cmd up &&
test ! -e foo &&
test -e foo.sh &&
test "x$(svn propget svn:mime-type foo.sh)" = \
test "x$(svn_cmd propget svn:mime-type foo.sh)" = \
"xapplication/x-shellscript" &&
test "x$(svn propget svn:eol-style foo.sh)" = "xLF"
test "x$(svn_cmd propget svn:eol-style foo.sh)" = "xLF"
)
'

View File

@ -8,11 +8,11 @@ test_expect_success 'setup svnrepo' '
mkdir project project/trunk project/branches \
project/branches/v14.1 project/tags &&
echo foo > project/trunk/foo &&
svn import -m "$test_description" project "$svnrepo/project" &&
svn_cmd import -m "$test_description" project "$svnrepo/project" &&
rm -rf project &&
svn cp -m "fun" "$svnrepo/project/trunk" \
svn_cmd cp -m "fun" "$svnrepo/project/trunk" \
"$svnrepo/project/branches/v14.1/beta" &&
svn cp -m "more fun!" "$svnrepo/project/branches/v14.1/beta" \
svn_cmd cp -m "more fun!" "$svnrepo/project/branches/v14.1/beta" \
"$svnrepo/project/branches/v14.1/gold"
'

View File

@ -14,21 +14,21 @@ test_expect_success 'initialize svnrepo' '
cd trunk &&
echo foo > foo &&
cd .. &&
svn import -m "import for git-svn" . "$svnrepo" >/dev/null &&
svn copy "$svnrepo"/trunk "$svnrepo"/branches/a \
svn_cmd import -m "import for git-svn" . "$svnrepo" >/dev/null &&
svn_cmd copy "$svnrepo"/trunk "$svnrepo"/branches/a \
-m "created branch a" &&
cd .. &&
rm -rf import &&
svn co "$svnrepo"/trunk trunk &&
svn_cmd co "$svnrepo"/trunk trunk &&
cd trunk &&
echo bar >> foo &&
svn ci -m "updated trunk" &&
svn_cmd ci -m "updated trunk" &&
cd .. &&
svn co "$svnrepo"/branches/a a &&
svn_cmd co "$svnrepo"/branches/a a &&
cd a &&
echo baz >> a &&
svn add a &&
svn ci -m "updated a" &&
svn_cmd add a &&
svn_cmd ci -m "updated a" &&
cd .. &&
git svn init --stdlayout "$svnrepo"
)

View File

@ -14,13 +14,13 @@ test_expect_success 'initialize svnrepo' '
cd trunk &&
echo foo > foo &&
cd .. &&
svn import -m "import for git-svn" . "$svnrepo" >/dev/null &&
svn_cmd import -m "import for git-svn" . "$svnrepo" >/dev/null &&
cd .. &&
rm -rf import &&
svn co "$svnrepo"/trunk trunk &&
svn_cmd co "$svnrepo"/trunk trunk &&
cd trunk &&
echo bar >> foo &&
svn ci -m "updated trunk" &&
svn_cmd ci -m "updated trunk" &&
cd .. &&
rm -rf trunk
)
@ -57,14 +57,14 @@ test_expect_success 'git svn branch tests' '
'
test_expect_success 'branch uses correct svn-remote' '
(svn co "$svnrepo" svn &&
(svn_cmd co "$svnrepo" svn &&
cd svn &&
mkdir mirror &&
svn add mirror &&
svn copy trunk mirror/ &&
svn copy tags mirror/ &&
svn copy branches mirror/ &&
svn ci -m "made mirror" ) &&
svn_cmd add mirror &&
svn_cmd copy trunk mirror/ &&
svn_cmd copy tags mirror/ &&
svn_cmd copy branches mirror/ &&
svn_cmd ci -m "made mirror" ) &&
rm -rf svn &&
git svn init -s -R mirror --prefix=mirror/ "$svnrepo"/mirror &&
git svn fetch -R mirror &&

View File

@ -33,7 +33,7 @@ for H in ISO-8859-1 EUCJP ISO-2022-JP
do
test_expect_success "$H setup" '
mkdir $H &&
svn import -m "$H test" $H "$svnrepo"/$H &&
svn_cmd import -m "$H test" $H "$svnrepo"/$H &&
git svn clone "$svnrepo"/$H $H
'
done

View File

@ -15,7 +15,7 @@ EOF
test_expect_success 'setup svnrepo' '
for i in aa bb cc dd
do
svn mkdir -m $i --username $i "$svnrepo"/$i
svn_cmd mkdir -m $i --username $i "$svnrepo"/$i
done
'
@ -52,13 +52,13 @@ test_expect_success 'continues to import once authors have been added' '
'
test_expect_success 'authors-file against globs' '
svn mkdir -m globs --username aa \
svn_cmd mkdir -m globs --username aa \
"$svnrepo"/aa/trunk "$svnrepo"/aa/branches "$svnrepo"/aa/tags &&
git svn clone --authors-file=svn-authors -s "$svnrepo"/aa aa-work &&
for i in bb ee cc
do
branch="aa/branches/$i"
svn mkdir -m "$branch" --username $i "$svnrepo/$branch"
svn_cmd mkdir -m "$branch" --username $i "$svnrepo/$branch"
done
'

View File

@ -7,19 +7,19 @@ test_description='git svn property tests'
. ./lib-git-svn.sh
test_expect_success 'setup repo with a git repo inside it' '
svn co "$svnrepo" s &&
svn_cmd co "$svnrepo" s &&
(
cd s &&
git init &&
test -f .git/HEAD &&
> .git/a &&
echo a > a &&
svn add .git a &&
svn commit -m "create a nested git repo" &&
svn up &&
svn_cmd add .git a &&
svn_cmd commit -m "create a nested git repo" &&
svn_cmd up &&
echo hi >> .git/a &&
svn commit -m "modify .git/a" &&
svn up
svn_cmd commit -m "modify .git/a" &&
svn_cmd up
)
'
@ -33,9 +33,9 @@ test_expect_success 'SVN-side change outside of .git' '
(
cd s &&
echo b >> a &&
svn commit -m "SVN-side change outside of .git" &&
svn up &&
svn log -v | fgrep "SVN-side change outside of .git"
svn_cmd commit -m "SVN-side change outside of .git" &&
svn_cmd up &&
svn_cmd log -v | fgrep "SVN-side change outside of .git"
)
'
@ -56,10 +56,10 @@ test_expect_success 'SVN-side change inside of .git' '
git add a &&
git commit -m "add a inside an SVN repo" &&
git log &&
svn add --force .git &&
svn commit -m "SVN-side change inside of .git" &&
svn up &&
svn log -v | fgrep "SVN-side change inside of .git"
svn_cmd add --force .git &&
svn_cmd commit -m "SVN-side change inside of .git" &&
svn_cmd up &&
svn_cmd log -v | fgrep "SVN-side change inside of .git"
)
'
@ -80,9 +80,9 @@ test_expect_success 'SVN-side change in and out of .git' '
echo c >> a &&
git add a &&
git commit -m "add a inside an SVN repo" &&
svn commit -m "SVN-side change in and out of .git" &&
svn up &&
svn log -v | fgrep "SVN-side change in and out of .git"
svn_cmd commit -m "SVN-side change in and out of .git" &&
svn_cmd up &&
svn_cmd log -v | fgrep "SVN-side change in and out of .git"
)
'

View File

@ -8,19 +8,19 @@ test_description='git svn property tests'
. ./lib-git-svn.sh
test_expect_success 'setup test repository' '
svn co "$svnrepo" s &&
svn_cmd co "$svnrepo" s &&
(
cd s &&
mkdir qqq www &&
echo test_qqq > qqq/test_qqq.txt &&
echo test_www > www/test_www.txt &&
svn add qqq &&
svn add www &&
svn commit -m "create some files" &&
svn up &&
svn_cmd add qqq &&
svn_cmd add www &&
svn_cmd commit -m "create some files" &&
svn_cmd up &&
echo hi >> www/test_www.txt &&
svn commit -m "modify www/test_www.txt" &&
svn up
svn_cmd commit -m "modify www/test_www.txt" &&
svn_cmd up
)
'
@ -51,9 +51,9 @@ test_expect_success 'SVN-side change outside of www' '
(
cd s &&
echo b >> qqq/test_qqq.txt &&
svn commit -m "SVN-side change outside of www" &&
svn up &&
svn log -v | fgrep "SVN-side change outside of www"
svn_cmd commit -m "SVN-side change outside of www" &&
svn_cmd up &&
svn_cmd log -v | fgrep "SVN-side change outside of www"
)
'
@ -83,9 +83,9 @@ test_expect_success 'SVN-side change inside of ignored www' '
(
cd s &&
echo zaq >> www/test_www.txt
svn commit -m "SVN-side change inside of www/test_www.txt" &&
svn up &&
svn log -v | fgrep "SVN-side change inside of www/test_www.txt"
svn_cmd commit -m "SVN-side change inside of www/test_www.txt" &&
svn_cmd up &&
svn_cmd log -v | fgrep "SVN-side change inside of www/test_www.txt"
)
'
@ -116,9 +116,9 @@ test_expect_success 'SVN-side change in and out of ignored www' '
cd s &&
echo cvf >> www/test_www.txt
echo ygg >> qqq/test_qqq.txt
svn commit -m "SVN-side change in and out of ignored www" &&
svn up &&
svn log -v | fgrep "SVN-side change in and out of ignored www"
svn_cmd commit -m "SVN-side change in and out of ignored www" &&
svn_cmd up &&
svn_cmd log -v | fgrep "SVN-side change in and out of ignored www"
)
'

View File

@ -8,7 +8,7 @@ test_expect_success 'initialize repo' '
mkdir import &&
cd import &&
awk "BEGIN { for (i = 1; i < 64; i++) { print i } }" > file
svn import -m "initial" . "$svnrepo" &&
svn_cmd import -m "initial" . "$svnrepo" &&
cd .. &&
git svn init "$svnrepo" &&
git svn fetch &&
@ -18,14 +18,14 @@ test_expect_success 'initialize repo' '
test_expect_success '(supposedly) non-conflicting change from SVN' '
test x"`sed -n -e 58p < file`" = x58 &&
test x"`sed -n -e 61p < file`" = x61 &&
svn co "$svnrepo" tmp &&
svn_cmd co "$svnrepo" tmp &&
cd tmp &&
perl -i.bak -p -e "s/^58$/5588/" file &&
perl -i.bak -p -e "s/^61$/6611/" file &&
poke file &&
test x"`sed -n -e 58p < file`" = x5588 &&
test x"`sed -n -e 61p < file`" = x6611 &&
svn commit -m "58 => 5588, 61 => 6611" &&
svn_cmd commit -m "58 => 5588, 61 => 6611" &&
cd ..
'
@ -46,7 +46,7 @@ test_expect_success 'change file but in unrelated area' "
test x\"\`sed -n -e 7p < file\`\" = x7777 &&
git commit -m '4 => 4444, 7 => 7777' file &&
git svn dcommit &&
svn up tmp &&
svn_cmd up tmp &&
cd tmp &&
test x\"\`sed -n -e 4p < file\`\" = x4444 &&
test x\"\`sed -n -e 7p < file\`\" = x7777 &&

69
t/t9138-git-svn-authors-prog.sh Executable file
View File

@ -0,0 +1,69 @@
#!/bin/sh
#
# Copyright (c) 2009 Eric Wong, Mark Lodato
#
test_description='git svn authors prog tests'
. ./lib-git-svn.sh
cat > svn-authors-prog <<'EOF'
#!/usr/bin/perl
$_ = shift;
if (s/-sub$//) {
print "$_ <$_\@sub.example.com>\n";
}
else {
print "$_ <$_\@example.com>\n";
}
EOF
chmod +x svn-authors-prog
cat > svn-authors <<'EOF'
ff = FFFFFFF FFFFFFF <fFf@other.example.com>
EOF
test_expect_success 'setup svnrepo' '
for i in aa bb cc-sub dd-sub ee-foo ff
do
svn mkdir -m $i --username $i "$svnrepo"/$i
done
'
test_expect_success 'import authors with prog and file' '
git svn clone --authors-prog=./svn-authors-prog \
--authors-file=svn-authors "$svnrepo" x
'
test_expect_success 'imported 6 revisions successfully' '
(
cd x
test "`git rev-list refs/remotes/git-svn | wc -l`" -eq 6
)
'
test_expect_success 'authors-prog ran correctly' '
(
cd x
git rev-list -1 --pretty=raw refs/remotes/git-svn~1 | \
grep "^author ee-foo <ee-foo@example\.com> " &&
git rev-list -1 --pretty=raw refs/remotes/git-svn~2 | \
grep "^author dd <dd@sub\.example\.com> " &&
git rev-list -1 --pretty=raw refs/remotes/git-svn~3 | \
grep "^author cc <cc@sub\.example\.com> " &&
git rev-list -1 --pretty=raw refs/remotes/git-svn~4 | \
grep "^author bb <bb@example\.com> " &&
git rev-list -1 --pretty=raw refs/remotes/git-svn~5 | \
grep "^author aa <aa@example\.com> "
)
'
test_expect_success 'authors-file overrode authors-prog' '
(
cd x
git rev-list -1 --pretty=raw refs/remotes/git-svn | \
grep "^author FFFFFFF FFFFFFF <fFf@other\.example\.com> "
)
'
test_done