git svn: revert default behavior for --minimize-url
This reverts the --minimize-url behavior change that appeared recently in commit0b2af457a4
("Fix branch detection when repository root is inaccessible"). However, we now allow the option to be turned off by allowing "--no-minimize-url" so people with limited-access setups can still take advantage of the fix in0b2af457a4
. Also document the behavior and default settings of minimize-url in the manpage for the first time. This introduces a temporary UI regression to allow t9141 to pass that will be reverted (fixed) in the next commit. Signed-off-by: Eric Wong <normalperson@yhbt.net>
This commit is contained in:
@ -80,6 +80,17 @@ COMMANDS
|
|||||||
When passed to 'init' or 'clone' this regular expression will
|
When passed to 'init' or 'clone' this regular expression will
|
||||||
be preserved as a config key. See 'fetch' for a description
|
be preserved as a config key. See 'fetch' for a description
|
||||||
of '--ignore-paths'.
|
of '--ignore-paths'.
|
||||||
|
--no-minimize-url;;
|
||||||
|
When tracking multiple directories (using --stdlayout,
|
||||||
|
--branches, or --tags options), git svn will attempt to connect
|
||||||
|
to the root (or highest allowed level) of the Subversion
|
||||||
|
repository. This default allows better tracking of history if
|
||||||
|
entire projects are moved within a repository, but may cause
|
||||||
|
issues on repositories where read access restrictions are in
|
||||||
|
place. Passing '--no-minimize-url' will allow git svn to
|
||||||
|
accept URLs as-is without attempting to connect to a higher
|
||||||
|
level directory. This option is off by default when only
|
||||||
|
one URL/branch is tracked (it would do little good).
|
||||||
|
|
||||||
'fetch'::
|
'fetch'::
|
||||||
Fetch unfetched revisions from the Subversion remote we are
|
Fetch unfetched revisions from the Subversion remote we are
|
||||||
|
@ -19,6 +19,7 @@ $ENV{GIT_DIR} ||= '.git';
|
|||||||
$Git::SVN::default_repo_id = 'svn';
|
$Git::SVN::default_repo_id = 'svn';
|
||||||
$Git::SVN::default_ref_id = $ENV{GIT_SVN_ID} || 'git-svn';
|
$Git::SVN::default_ref_id = $ENV{GIT_SVN_ID} || 'git-svn';
|
||||||
$Git::SVN::Ra::_log_window_size = 100;
|
$Git::SVN::Ra::_log_window_size = 100;
|
||||||
|
$Git::SVN::_minimize_url = 'unset';
|
||||||
|
|
||||||
$Git::SVN::Log::TZ = $ENV{TZ};
|
$Git::SVN::Log::TZ = $ENV{TZ};
|
||||||
$ENV{TZ} = 'UTC';
|
$ENV{TZ} = 'UTC';
|
||||||
@ -100,7 +101,7 @@ my %init_opts = ( 'template=s' => \$_template, 'shared:s' => \$_shared,
|
|||||||
'trunk|T=s' => \$_trunk, 'tags|t=s@' => \@_tags,
|
'trunk|T=s' => \$_trunk, 'tags|t=s@' => \@_tags,
|
||||||
'branches|b=s@' => \@_branches, 'prefix=s' => \$_prefix,
|
'branches|b=s@' => \@_branches, 'prefix=s' => \$_prefix,
|
||||||
'stdlayout|s' => \$_stdlayout,
|
'stdlayout|s' => \$_stdlayout,
|
||||||
'minimize-url|m' => \$Git::SVN::_minimize_url,
|
'minimize-url|m!' => \$Git::SVN::_minimize_url,
|
||||||
'no-metadata' => sub { $icv{noMetadata} = 1 },
|
'no-metadata' => sub { $icv{noMetadata} = 1 },
|
||||||
'use-svm-props' => sub { $icv{useSvmProps} = 1 },
|
'use-svm-props' => sub { $icv{useSvmProps} = 1 },
|
||||||
'use-svnsync-props' => sub { $icv{useSvnsyncProps} = 1 },
|
'use-svnsync-props' => sub { $icv{useSvnsyncProps} = 1 },
|
||||||
@ -399,6 +400,10 @@ sub cmd_init {
|
|||||||
init_subdir(@_);
|
init_subdir(@_);
|
||||||
do_git_init_db();
|
do_git_init_db();
|
||||||
|
|
||||||
|
if ($Git::SVN::_minimize_url eq 'unset') {
|
||||||
|
$Git::SVN::_minimize_url = 0;
|
||||||
|
}
|
||||||
|
|
||||||
Git::SVN->init($url);
|
Git::SVN->init($url);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -99,22 +99,22 @@ test_expect_success 'Multiple branch or tag paths require -d' '
|
|||||||
|
|
||||||
test_expect_success 'create new branches and tags' '
|
test_expect_success 'create new branches and tags' '
|
||||||
( cd git_project &&
|
( cd git_project &&
|
||||||
git svn branch -m "New branch 1" -d b_one New1 ) &&
|
git svn branch -m "New branch 1" -d project/b_one New1 ) &&
|
||||||
( cd svn_project &&
|
( cd svn_project &&
|
||||||
svn_cmd up && test -e b_one/New1/a.file ) &&
|
svn_cmd up && test -e b_one/New1/a.file ) &&
|
||||||
|
|
||||||
( cd git_project &&
|
( cd git_project &&
|
||||||
git svn branch -m "New branch 2" -d b_two New2 ) &&
|
git svn branch -m "New branch 2" -d project/b_two New2 ) &&
|
||||||
( cd svn_project &&
|
( cd svn_project &&
|
||||||
svn_cmd up && test -e b_two/New2/a.file ) &&
|
svn_cmd up && test -e b_two/New2/a.file ) &&
|
||||||
|
|
||||||
( cd git_project &&
|
( cd git_project &&
|
||||||
git svn branch -t -m "New tag 1" -d tags_A Tag1 ) &&
|
git svn branch -t -m "New tag 1" -d project/tags_A Tag1 ) &&
|
||||||
( cd svn_project &&
|
( cd svn_project &&
|
||||||
svn_cmd up && test -e tags_A/Tag1/a.file ) &&
|
svn_cmd up && test -e tags_A/Tag1/a.file ) &&
|
||||||
|
|
||||||
( cd git_project &&
|
( cd git_project &&
|
||||||
git svn tag -m "New tag 2" -d tags_B Tag2 ) &&
|
git svn tag -m "New tag 2" -d project/tags_B Tag2 ) &&
|
||||||
( cd svn_project &&
|
( cd svn_project &&
|
||||||
svn_cmd up && test -e tags_B/Tag2/a.file )
|
svn_cmd up && test -e tags_B/Tag2/a.file )
|
||||||
'
|
'
|
||||||
|
Reference in New Issue
Block a user