mirror of
https://github.com/git/git.git
synced 2024-10-30 13:57:54 +01:00
570d35c26d
Some repositories use a deep branching strategy, such as: branches/1.0/1.0.rc1 branches/1.0/1.0.rc2 branches/1.0/1.0.rtm branches/1.0/1.0.gold Only allowing a single glob stiffles this. This change allows for a single glob 'set' to accept this deep branching strategy. The ref glob depth must match the branch glob depth. When using the -b or -t options for init or clone, this is automatically done. For example, using the above branches: svn-remote.svn.branches = branches/*/*:refs/remote/*/* gives the following branch names: 1.0/1.0.rc1 1.0/1.0.rc2 1.0/1.0.rtm 1.0/1.0.gold [ew: * removed unrelated line-wrapping changes * fixed line-wrapping in a few more places * removed trailing whitespace * fixed bashism in test * removed unnecessary httpd startup in test * changed copyright on tests to 2008 Marcus Griep * added executable permissions to new tests ] Signed-off-by: Marcus Griep <marcus@griep.us> Acked-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
37 lines
1.1 KiB
Bash
Executable file
37 lines
1.1 KiB
Bash
Executable file
#!/bin/sh
|
|
# Copyright (c) 2008 Marcus Griep
|
|
|
|
test_description='git-svn multi-glob branch names'
|
|
. ./lib-git-svn.sh
|
|
|
|
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" &&
|
|
rm -rf project &&
|
|
svn cp -m "fun" "$svnrepo/project/trunk" \
|
|
"$svnrepo/project/branches/v14.1/beta" &&
|
|
svn cp -m "more fun!" "$svnrepo/project/branches/v14.1/beta" \
|
|
"$svnrepo/project/branches/v14.1/gold"
|
|
'
|
|
|
|
test_expect_success 'test clone with multi-glob in branch names' '
|
|
git svn clone -T trunk -b branches/*/* -t tags \
|
|
"$svnrepo/project" project &&
|
|
cd project &&
|
|
git rev-parse "refs/remotes/v14.1/beta" &&
|
|
git rev-parse "refs/remotes/v14.1/gold" &&
|
|
cd ..
|
|
'
|
|
|
|
test_expect_success 'test dcommit to multi-globbed branch' "
|
|
cd project &&
|
|
git reset --hard 'refs/remotes/v14.1/gold' &&
|
|
echo hello >> foo &&
|
|
git commit -m 'hello' -- foo &&
|
|
git svn dcommit &&
|
|
cd ..
|
|
"
|
|
|
|
test_done
|