Browse Source

git svn: revert default behavior for --minimize-url

This reverts the --minimize-url behavior change that
appeared recently in commit 0b2af457a4
("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 in
0b2af457a4.

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>
maint
Eric Wong 16 years ago
parent
commit
6b48829dbb
  1. 11
      Documentation/git-svn.txt
  2. 7
      git-svn.perl
  3. 8
      t/t9141-git-svn-multiple-branches.sh

11
Documentation/git-svn.txt

@ -80,6 +80,17 @@ COMMANDS @@ -80,6 +80,17 @@ COMMANDS
When passed to 'init' or 'clone' this regular expression will
be preserved as a config key. See 'fetch' for a description
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 unfetched revisions from the Subversion remote we are

7
git-svn.perl

@ -19,6 +19,7 @@ $ENV{GIT_DIR} ||= '.git'; @@ -19,6 +19,7 @@ $ENV{GIT_DIR} ||= '.git';
$Git::SVN::default_repo_id = 'svn';
$Git::SVN::default_ref_id = $ENV{GIT_SVN_ID} || 'git-svn';
$Git::SVN::Ra::_log_window_size = 100;
$Git::SVN::_minimize_url = 'unset';

$Git::SVN::Log::TZ = $ENV{TZ};
$ENV{TZ} = 'UTC';
@ -100,7 +101,7 @@ my %init_opts = ( 'template=s' => \$_template, 'shared:s' => \$_shared, @@ -100,7 +101,7 @@ my %init_opts = ( 'template=s' => \$_template, 'shared:s' => \$_shared,
'trunk|T=s' => \$_trunk, 'tags|t=s@' => \@_tags,
'branches|b=s@' => \@_branches, 'prefix=s' => \$_prefix,
'stdlayout|s' => \$_stdlayout,
'minimize-url|m' => \$Git::SVN::_minimize_url,
'minimize-url|m!' => \$Git::SVN::_minimize_url,
'no-metadata' => sub { $icv{noMetadata} = 1 },
'use-svm-props' => sub { $icv{useSvmProps} = 1 },
'use-svnsync-props' => sub { $icv{useSvnsyncProps} = 1 },
@ -399,6 +400,10 @@ sub cmd_init { @@ -399,6 +400,10 @@ sub cmd_init {
init_subdir(@_);
do_git_init_db();

if ($Git::SVN::_minimize_url eq 'unset') {
$Git::SVN::_minimize_url = 0;
}

Git::SVN->init($url);
}


8
t/t9141-git-svn-multiple-branches.sh

@ -99,22 +99,22 @@ test_expect_success 'Multiple branch or tag paths require -d' ' @@ -99,22 +99,22 @@ test_expect_success 'Multiple branch or tag paths require -d' '

test_expect_success 'create new branches and tags' '
( 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 &&
svn_cmd up && test -e b_one/New1/a.file ) &&

( 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 &&
svn_cmd up && test -e b_two/New2/a.file ) &&

( 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 &&
svn_cmd up && test -e tags_A/Tag1/a.file ) &&

( 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 &&
svn_cmd up && test -e tags_B/Tag2/a.file )
'

Loading…
Cancel
Save