summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: a81ed0b)
raw | patch | inline | side by side (parent: a81ed0b)
author | Eric Wong <normalperson@yhbt.net> | |
Sun, 18 Feb 2007 10:34:09 +0000 (02:34 -0800) | ||
committer | Eric Wong <normalperson@yhbt.net> | |
Fri, 23 Feb 2007 08:57:13 +0000 (00:57 -0800) |
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: Eric Wong <normalperson@yhbt.net>
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: Eric Wong <normalperson@yhbt.net>
Documentation/git-svn.txt | patch | blob | history | |
git-svn.perl | patch | blob | history |
index bd163cfad6385f2525f818a8eb851c2a205d5da4..da68f6d7385ecf1a4310c4742ea328ff55e6a4e4 100644 (file)
(--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
------------------------
--
-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
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.
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
diff --git a/git-svn.perl b/git-svn.perl
index 1bcf058ef662081bff7116df3a0d78db03bfdf4f..dc78dcf8cf801f01b2cc191e3fb8053d148c9561 100755 (executable)
--- a/git-svn.perl
+++ b/git-svn.perl
%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,
}
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 {