提交 0dfaf0a4 编写于 作者: E Eric Wong

git-svn: allow metadata options to be specified with 'init' and 'clone'

Since the options that affect the way metadata is handled in
git-svn, should be consistently set/unset throughout history
imported by git-svn; it makes sense to allow the user to set
certain options from the command-line that will write to the
config file when initially creating the repository.

Also, fix some formatting issues while we're updating
documentation.
Signed-off-by: NEric Wong <normalperson@yhbt.net>
上级 a81ed0b6
......@@ -49,6 +49,15 @@ COMMANDS
(--tags=project/tags') or a full url
(--tags=https://foo.org/project/tags)
--no-metadata::
Set the 'noMetadata' option in the [svn-remote] config.
--use-svm-props::
Set the 'useSvmProps' option in the [svn-remote] config.
--use-svnsync-props::
Set the 'useSvnsyncProps' option in the [svn-remote] config.
--rewrite-root=<URL>::
Set the 'rewriteRoot' option in the [svn-remote] config.
--prefix=<prefix>
This allows one to specify a prefix which is prepended
to the names of remotes if trunk/branches/tags are
......@@ -307,8 +316,8 @@ CONFIG FILE-ONLY OPTIONS
------------------------
--
svn.noMetadata:
svn-remote.<name>.noMetadata:
svn.noMetadata::
svn-remote.<name>.noMetadata::
This gets rid of the git-svn-id: lines at the end of every commit.
If you lose your .git/svn/git-svn/.rev_db file, git-svn will not
......@@ -319,8 +328,8 @@ svn-remote.<name>.noMetadata:
this, either. Using this conflicts with the 'useSvmProps'
option for (hopefully) obvious reasons.
svn.useSvmProps:
svn-remote.<name>.useSvmProps:
svn.useSvmProps::
svn-remote.<name>.useSvmProps::
This allows git-svn to re-map repository URLs and UUIDs from
mirrors created using SVN::Mirror (or svk) for metadata.
......@@ -332,20 +341,19 @@ svn-remote.<name>.useSvmProps:
URL and UUID, and use it when generating metadata in commit
messages.
svn.useSvnsyncProps:
svn-remote.<name>.useSvnsyncprops:
svn.useSvnsyncProps::
svn-remote.<name>.useSvnsyncprops::
Similar to the useSvmProps option; this is for users
of the svnsync(1) command distributed with SVN 1.4.x and
later.
svn-remote.<name>.rewriteRoot
svn-remote.<name>.rewriteRoot::
This allows users to create repositories from alternate
URLs. For example, an administrator could run git-svn on the
server locally (accessing via file://) but wish to distribute
the repository with a public http:// or svn:// URL in the
metadata so users of it will see the public URL.
Since the noMetadata, rewriteRoot, useSvnsyncProps and useSvmProps
options all affect the metadata generated and used by git-svn; they
*must* be set in the configuration file before any history is imported
......
......@@ -75,9 +75,14 @@ BEGIN
%remote_opts );
my ($_trunk, $_tags, $_branches);
my %icv;
my %init_opts = ( 'template=s' => \$_template, 'shared:s' => \$_shared,
'trunk|T=s' => \$_trunk, 'tags|t=s' => \$_tags,
'branches|b=s' => \$_branches, 'prefix=s' => \$_prefix,
'no-metadata' => sub { $icv{noMetadata} = 1 },
'use-svm-props' => sub { $icv{useSvmProps} = 1 },
'use-svnsync-props' => sub { $icv{useSvnsyncProps} = 1 },
'rewrite-root=s' => sub { $icv{rewriteRoot} = $_[1] },
%remote_opts );
my %cmt_opts = ( 'edit|e' => \$_edit,
'rmdir' => \$SVN::Git::Editor::_rmdir,
......@@ -234,6 +239,14 @@ sub do_git_init_db {
}
command_noisy(@init_db);
}
my $set;
my $pfx = "svn-remote.$Git::SVN::default_repo_id";
foreach my $i (keys %icv) {
die "'$set' and '$i' cannot both be set\n" if $set;
next unless defined $icv{$i};
command_noisy('config', "$pfx.$i", $icv{$i});
$set = $i;
}
}
sub init_subdir {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册