* ew/svn-pm:
  git-svn: rename 'commit' command to 'set-tree'
  git-svn: remove support for the svn command-line client
  git-svn: convert to using Git.pm
This commit is contained in:
Junio C Hamano 2006-12-20 17:20:45 -08:00
Родитель ce0545455a 3289e86e1e
Коммит 5b85143ba5
10 изменённых файлов: 198 добавлений и 1087 удалений

Просмотреть файл

@ -64,7 +64,7 @@ manually joining branches on commit.
against the latest changes in the SVN repository.
An optional command-line argument may be specified as an
alternative to HEAD.
This is advantageous over 'commit' (below) because it produces
This is advantageous over 'set-tree' (below) because it produces
cleaner, more linear history.
'log'::
@ -89,7 +89,7 @@ manually joining branches on commit.
Any other arguments are passed directly to `git log'
'commit'::
'set-tree'::
You should consider using 'dcommit' instead of this command.
Commit specified commit or tree objects to SVN. This relies on
your imported fetch data being up-to-date. This makes
@ -172,7 +172,7 @@ This can allow you to make partial mirrors when running fetch.
-::
--stdin::
Only used with the 'commit' command.
Only used with the 'set-tree' command.
Read a list of commits from stdin and commit them in reverse
order. Only the leading sha1 is read from each line, so
@ -180,7 +180,7 @@ git-rev-list --pretty=oneline output can be used.
--rmdir::
Only used with the 'dcommit', 'commit' and 'commit-diff' commands.
Only used with the 'dcommit', 'set-tree' and 'commit-diff' commands.
Remove directories from the SVN tree if there are no files left
behind. SVN can version empty directories, and they are not
@ -193,7 +193,7 @@ repo-config key: svn.rmdir
-e::
--edit::
Only used with the 'dcommit', 'commit' and 'commit-diff' commands.
Only used with the 'dcommit', 'set-tree' and 'commit-diff' commands.
Edit the commit message before committing to SVN. This is off by
default for objects that are commits, and forced on when committing
@ -204,7 +204,7 @@ repo-config key: svn.edit
-l<num>::
--find-copies-harder::
Only used with the 'dcommit', 'commit' and 'commit-diff' commands.
Only used with the 'dcommit', 'set-tree' and 'commit-diff' commands.
They are both passed directly to git-diff-tree see
gitlink:git-diff-tree[1] for more information.
@ -276,7 +276,7 @@ ADVANCED OPTIONS
-b<refname>::
--branch <refname>::
Used with 'fetch', 'dcommit' or 'commit'.
Used with 'fetch', 'dcommit' or 'set-tree'.
This can be used to join arbitrary git branches to remotes/git-svn
on new commits where the tree object is equivalent.
@ -392,11 +392,11 @@ REBASE VS. PULL
---------------
Originally, git-svn recommended that the remotes/git-svn branch be
pulled from. This is because the author favored 'git-svn commit B'
to commit a single head rather than the 'git-svn commit A..B' notation
pulled from. This is because the author favored 'git-svn set-tree B'
to commit a single head rather than the 'git-svn set-tree A..B' notation
to commit multiple commits.
If you use 'git-svn commit A..B' to commit several diffs and you do not
If you use 'git-svn set-tree A..B' to commit several diffs and you do not
have the latest remotes/git-svn merged into my-branch, you should use
'git rebase' to update your work branch instead of 'git pull'. 'pull'
can cause non-linear history to be flattened when committing into SVN,

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -23,13 +23,9 @@ clean:
# we can test NO_OPTIMIZE_COMMITS independently of LC_ALL
full-svn-test:
$(MAKE) $(TSVN) GIT_SVN_NO_LIB=0 GIT_SVN_DELTA_FETCH=1 \
$(MAKE) $(TSVN) GIT_SVN_DELTA_FETCH=1 \
GIT_SVN_NO_OPTIMIZE_COMMITS=1 LC_ALL=C
$(MAKE) $(TSVN) GIT_SVN_NO_LIB=1 GIT_SVN_NO_OPTIMIZE_COMMITS=1 LC_ALL=C
$(MAKE) $(TSVN) GIT_SVN_NO_LIB=1 GIT_SVN_NO_OPTIMIZE_COMMITS=0 \
LC_ALL=en_US.UTF-8
$(MAKE) $(TSVN) GIT_SVN_NO_LIB=0 GIT_SVN_NO_OPTIMIZE_COMMITS=0 \
LC_ALL=en_US.UTF-8
$(MAKE) $(TSVN) GIT_SVN_NO_OPTIMIZE_COMMITS=0 LC_ALL=en_US.UTF-8
.PHONY: $(T) clean
.NOTPARALLEL:

Просмотреть файл

@ -7,17 +7,18 @@ then
exit
fi
perl -e 'use SVN::Core; $SVN::Core::VERSION gt "1.1.0" or die' >/dev/null 2>&1
if test $? -ne 0
then
test_expect_success 'Perl SVN libraries not found, skipping test' :
test_done
exit
fi
GIT_DIR=$PWD/.git
GIT_SVN_DIR=$GIT_DIR/svn/git-svn
SVN_TREE=$GIT_SVN_DIR/svn-tree
perl -e 'use SVN::Core' >/dev/null 2>&1
if test $? -ne 0
then
echo 'Perl SVN libraries not found, tests requiring those will be skipped'
GIT_SVN_NO_LIB=1
fi
svnadmin >/dev/null 2>&1
if test $? -ne 1
then

Просмотреть файл

@ -56,7 +56,7 @@ git update-index --add --remove dir/a/b/c/d/e/file dir/file file
git commit -m "$name"
test_expect_success "$name" \
"git-svn commit --find-copies-harder --rmdir remotes/git-svn..mybranch &&
"git-svn set-tree --find-copies-harder --rmdir remotes/git-svn..mybranch &&
svn up $SVN_TREE &&
test -d $SVN_TREE/dir && test ! -d $SVN_TREE/dir/a"
@ -70,7 +70,7 @@ git update-index --add dir/file/file
git commit -m "$name"
test_expect_failure "$name" \
'git-svn commit --find-copies-harder --rmdir remotes/git-svn..mybranch' \
'git-svn set-tree --find-copies-harder --rmdir remotes/git-svn..mybranch' \
|| true
@ -85,7 +85,7 @@ git update-index --add -- bar
git commit -m "$name"
test_expect_failure "$name" \
'git-svn commit --find-copies-harder --rmdir remotes/git-svn..mybranch2' \
'git-svn set-tree --find-copies-harder --rmdir remotes/git-svn..mybranch2' \
|| true
@ -100,7 +100,7 @@ git-update-index --add bar/zzz/yyy
git commit -m "$name"
test_expect_failure "$name" \
'git-svn commit --find-copies-harder --rmdir remotes/git-svn..mybranch3' \
'git-svn set-tree --find-copies-harder --rmdir remotes/git-svn..mybranch3' \
|| true
@ -115,7 +115,7 @@ git update-index --add -- dir
git commit -m "$name"
test_expect_failure "$name" \
'git-svn commit --find-copies-harder --rmdir remotes/git-svn..mybranch4' \
'git-svn set-tree --find-copies-harder --rmdir remotes/git-svn..mybranch4' \
|| true
@ -127,7 +127,7 @@ git update-index exec.sh
git commit -m "$name"
test_expect_success "$name" \
"git-svn commit --find-copies-harder --rmdir remotes/git-svn..mybranch5 &&
"git-svn set-tree --find-copies-harder --rmdir remotes/git-svn..mybranch5 &&
svn up $SVN_TREE &&
test ! -x $SVN_TREE/exec.sh"
@ -138,7 +138,7 @@ git update-index exec.sh
git commit -m "$name"
test_expect_success "$name" \
"git-svn commit --find-copies-harder --rmdir remotes/git-svn..mybranch5 &&
"git-svn set-tree --find-copies-harder --rmdir remotes/git-svn..mybranch5 &&
svn up $SVN_TREE &&
test -x $SVN_TREE/exec.sh"
@ -153,7 +153,7 @@ then
git commit -m "$name"
test_expect_success "$name" \
"git-svn commit --find-copies-harder --rmdir remotes/git-svn..mybranch5 &&
"git-svn set-tree --find-copies-harder --rmdir remotes/git-svn..mybranch5 &&
svn up $SVN_TREE &&
test -L $SVN_TREE/exec.sh"
@ -164,7 +164,7 @@ then
git commit -m "$name"
test_expect_success "$name" \
"git-svn commit --find-copies-harder --rmdir remotes/git-svn..mybranch5 &&
"git-svn set-tree --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"
@ -177,7 +177,7 @@ then
git commit -m "$name"
test_expect_success "$name" \
"git-svn commit --find-copies-harder --rmdir remotes/git-svn..mybranch5 &&
"git-svn set-tree --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 &&
@ -192,7 +192,7 @@ then
git update-index exec-2.sh
git commit -m 'éï∏'
export LC_ALL="$GIT_SVN_LC_ALL"
test_expect_success "$name" "git-svn commit HEAD"
test_expect_success "$name" "git-svn set-tree HEAD"
unset LC_ALL
else
echo "UTF-8 locale not set, test skipped ($GIT_SVN_LC_ALL)"
@ -229,9 +229,7 @@ tree d667270a1f7b109f5eb3aaea21ede14b56bfdd6e
tree 8f51f74cf0163afc9ad68a4b1537288c4558b5a4
EOF
if test -z "$GIT_SVN_NO_LIB" || test "$GIT_SVN_NO_LIB" -eq 0; then
echo tree 4b825dc642cb6eb9a060e54bf8d69288fbee4904 >> expected
fi
echo tree 4b825dc642cb6eb9a060e54bf8d69288fbee4904 >> expected
test_expect_success "$name" "diff -u a expected"

Просмотреть файл

@ -74,7 +74,7 @@ test_expect_success "$name" \
'git checkout -b mybranch remotes/git-svn &&
echo Hi again >> kw.c &&
git commit -a -m "test keywoards ignoring" &&
git-svn commit remotes/git-svn..mybranch &&
git-svn set-tree remotes/git-svn..mybranch &&
git pull . remotes/git-svn'
expect='/* $Id$ */'

Просмотреть файл

@ -21,7 +21,7 @@ test_expect_success 'mirror via git-svn' "
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 commit --rmdir HEAD &&
git-svn set-tree --rmdir HEAD &&
svn ls -R $svnrepo | grep ^deeply/nested/directory/number/1
"

Просмотреть файл

@ -6,13 +6,6 @@
test_description='git-svn --follow-parent fetching'
. ./lib-git-svn.sh
if test -n "$GIT_SVN_NO_LIB" && test "$GIT_SVN_NO_LIB" -ne 0
then
echo 'Skipping: --follow-parent needs SVN libraries'
test_done
exit 0
fi
test_expect_success 'initialize repo' "
mkdir import &&
cd import &&

Просмотреть файл

@ -4,13 +4,6 @@
test_description='git-svn commit-diff'
. ./lib-git-svn.sh
if test -n "$GIT_SVN_NO_LIB" && test "$GIT_SVN_NO_LIB" -ne 0
then
echo 'Skipping: commit-diff needs SVN libraries'
test_done
exit 0
fi
test_expect_success 'initialize repo' "
mkdir import &&
cd import &&

Просмотреть файл

@ -4,13 +4,6 @@
test_description='git-svn commit-diff clobber'
. ./lib-git-svn.sh
if test -n "$GIT_SVN_NO_LIB" && test "$GIT_SVN_NO_LIB" -ne 0
then
echo 'Skipping: commit-diff clobber needs SVN libraries'
test_done
exit 0
fi
test_expect_success 'initialize repo' "
mkdir import &&
cd import &&