Re: [PATCH] git-svn init/clone --stdlayout option to default-init trunk/tags/branches
- From
- Eric Wong <normalperson@yhbt.net>
- Date
- Jul 14, 2007, 10:50 UTC
- Message-ID
- <20070714105010.GA14842@muzzle>
- In-Reply-To
- <1184405128718-git-send-email-madduck@madduck.net>
"martin f. krafft" <madduck@madduck.net> wrote:
Show 6 quoted lines
> The --stdlayout option to git-svn init/clone initialises the default > Subversion values of trunk,tags,branches: -T trunk -b branches -t tags. > If any of the -T/-t/-b options are given in addition, they are given > preference. > > Signed-off-by: martin f. krafft <madduck@madduck.net>
Thanks. I've been meaning to do this myself, but keep on putting it off...
This looks good and useful, but can I also have a shorthand "-s" for this, too? I'm lazy, thanks :)
Also, nitpicking, there's been some whitespace damage:
I use tab characters for indentation, and (should be using) spaces for alignment.
Show 43 quoted lines
> ---
> Documentation/git-svn.txt | 6 +++++-
> git-svn.perl | 11 +++++++++--
> 2 files changed, 14 insertions(+), 3 deletions(-)
>
> diff --git a/Documentation/git-svn.txt b/Documentation/git-svn.txt
> index 0a210e4..9e74b27 100644
> --- a/Documentation/git-svn.txt
> +++ b/Documentation/git-svn.txt
> @@ -44,10 +44,14 @@ COMMANDS
> --tags=<tags_subdir>;;
> -b<branches_subdir>;;
> --branches=<branches_subdir>;;
> +--stdlayout;;
> These are optional command-line options for init. Each of
> these flags can point to a relative repository path
> (--tags=project/tags') or a full url
> - (--tags=https://foo.org/project/tags)
> + (--tags=https://foo.org/project/tags). The option --stdlayout is
> + a shorthand way of setting trunk,tags,branches as the relative paths,
> + which is the Subversion default. If any of the other options are given
> + as well, they take precedence.
> --no-metadata;;
> Set the 'noMetadata' option in the [svn-remote] config.
> --use-svm-props;;
> diff --git a/git-svn.perl b/git-svn.perl
> index b3dffcc..affba8e 100755
> --- a/git-svn.perl
> +++ b/git-svn.perl
> @@ -77,11 +77,12 @@ my %fc_opts = ( 'follow-parent|follow!' => \$Git::SVN::_follow_parent,
> \$Git::SVN::_repack_flags,
> %remote_opts );
>
> -my ($_trunk, $_tags, $_branches);
> +my ($_trunk, $_tags, $_branches, $_stdlayout);
> 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,
> + 'stdlayout' => \$_stdlayout,
> 'minimize-url|m' => \$Git::SVN::_minimize_url,
> 'no-metadata' => sub { $icv{noMetadata} = 1 },
> 'use-svm-props' => sub { $icv{useSvmProps} = 1 },Yes, I'm not consistent myself with using spaces for alignment :( Thanks for using spaces here.
Show 7 quoted lines
> @@ -292,7 +293,8 @@ sub init_subdir {
> sub cmd_clone {
> my ($url, $path) = @_;
> if (!defined $path &&
> - (defined $_trunk || defined $_branches || defined $_tags) &&
> + (defined $_trunk || defined $_branches || defined $_tags ||
> + defined $_stdlayout) &&The lines above and below use spaces for alignment, so this one should, definitely be using spaces after the initial tab too.
Show 12 quoted lines
> $url !~ m#^[a-z\+]+://#) {
> $path = $url;
> }
> @@ -302,6 +304,11 @@ sub cmd_clone {
> }
>
> sub cmd_init {
> + if (defined $_stdlayout) {
> + $_trunk = 'trunk' if (!defined $_trunk);
> + $_tags = 'tags' if (!defined $_tags);
> + $_branches = 'branches' if (!defined $_branches);
> + }Indentation is always done in tabs in git-svn. I *should* be using spaces for alignment but I myself have been sloppy :x
> if (defined $_trunk || defined $_branches || defined $_tags) {
> return cmd_multi_init(@_);
> }-- Eric Wong