mirror of
https://github.com/git/git.git
synced 2024-11-28 20:44:04 +08:00
4a1bb4c3f8
For tracking branches and tags, git-svn prefers to connect to the root of the repository or at least the level that houses branches and tags as well as trunk. However, users that are accustomed to tracking a single directory have no use for this feature. As pointed out by Junio, users may not have permissions to connect to connect to a higher-level path in the repository. While the current minimize_url() function detects lack of permissions to certain paths _after_ successful logins, it cannot effectively determine if it is trying to access a login-only portion of a repo when the user expects to connect to a part where anonymous access is allowed. For people used to the git-svnimport switches of --trunk, --tags, --branches, they'll already pass the repository root (or root+subdirectory), so minimize URL isn't of too much use to them, either. For people *not* used to git-svnimport, git-svn also supports: git svn init --minimize-url \ --trunk http://repository-root/foo/trunk \ --branches http://repository-root/foo/branches \ --tags http://repository-root/foo/tags And this is where the new --minimize-url command-line switch comes in to allow for this behavior to continue working.
52 lines
1.6 KiB
Bash
Executable File
52 lines
1.6 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# Copyright (c) 2007 Eric Wong
|
|
#
|
|
|
|
test_description='git-svn useSvnsyncProps test'
|
|
|
|
. ./lib-git-svn.sh
|
|
|
|
test_expect_success 'load svnsync repo' "
|
|
svnadmin load -q $rawsvnrepo < ../t9111/svnsync.dump &&
|
|
git-svn init --minimize-url -R arr -i bar $svnrepo/bar &&
|
|
git-svn init --minimize-url -R argh -i dir $svnrepo/dir &&
|
|
git-svn init --minimize-url -R argh -i e $svnrepo/dir/a/b/c/d/e &&
|
|
git-config svn.useSvnsyncProps true &&
|
|
git-svn fetch --all
|
|
"
|
|
|
|
uuid=161ce429-a9dd-4828-af4a-52023f968c89
|
|
|
|
bar_url=http://mayonaise/svnrepo/bar
|
|
test_expect_success 'verify metadata for /bar' "
|
|
git-cat-file commit refs/remotes/bar | \
|
|
grep '^git-svn-id: $bar_url@12 $uuid$' &&
|
|
git-cat-file commit refs/remotes/bar~1 | \
|
|
grep '^git-svn-id: $bar_url@11 $uuid$' &&
|
|
git-cat-file commit refs/remotes/bar~2 | \
|
|
grep '^git-svn-id: $bar_url@10 $uuid$' &&
|
|
git-cat-file commit refs/remotes/bar~3 | \
|
|
grep '^git-svn-id: $bar_url@9 $uuid$' &&
|
|
git-cat-file commit refs/remotes/bar~4 | \
|
|
grep '^git-svn-id: $bar_url@6 $uuid$' &&
|
|
git-cat-file commit refs/remotes/bar~5 | \
|
|
grep '^git-svn-id: $bar_url@1 $uuid$'
|
|
"
|
|
|
|
e_url=http://mayonaise/svnrepo/dir/a/b/c/d/e
|
|
test_expect_success 'verify metadata for /dir/a/b/c/d/e' "
|
|
git-cat-file commit refs/remotes/e | \
|
|
grep '^git-svn-id: $e_url@1 $uuid$'
|
|
"
|
|
|
|
dir_url=http://mayonaise/svnrepo/dir
|
|
test_expect_success 'verify metadata for /dir' "
|
|
git-cat-file commit refs/remotes/dir | \
|
|
grep '^git-svn-id: $dir_url@2 $uuid$' &&
|
|
git-cat-file commit refs/remotes/dir~1 | \
|
|
grep '^git-svn-id: $dir_url@1 $uuid$'
|
|
"
|
|
|
|
test_done
|