From: Eric Wong <normalperson@yhbt.net>
To: Vineet Kumar <vineet@doorstop.net>
Cc: git@vger.kernel.org
Subject: Re: [PATCH] git-svn: add a show-externals command.
Date: Thu, 29 Nov 2007 00:04:41 -0800 [thread overview]
Message-ID: <20071129080441.GE32277@soma> (raw)
In-Reply-To: <1195512975-3647-1-git-send-email-vineet@doorstop.net>
Vineet Kumar <vineet@doorstop.net> wrote:
> show-externals can be used by scripts to provide svn:externals-like
> functionality. For example, a script can list all of the externals and then
> use check out the listed URLs at the appropriate paths, similar to what the svn
> client does. Said script (or perhaps git-svn itself, in the future) could
> simply invoke svn export on the paths, or it could go one further, using
> git-svn clone and even git-submodule together to better integrate externals
> checkouts.
>
> The implementation is shamelessly copied from show-ignores. A more general
> command to list user-specified properties is probably a better idea.
>
> Signed-off-by: Vineet Kumar <vineet@doorstop.net>
Thanks.
Acked-by: Eric Wong <normalperson@yhbt.net>
I'm close to having svn:externals supported in git-svn, too. But
previously cloned repositories probably won't support them
out-of-the-box, so this can still be useful.
> ---
> git-svn.perl | 18 ++++++++++++++++++
> 1 files changed, 18 insertions(+), 0 deletions(-)
>
> diff --git a/git-svn.perl b/git-svn.perl
> index 5b1deea..74966ed 100755
> --- a/git-svn.perl
> +++ b/git-svn.perl
> @@ -141,6 +141,9 @@ my %cmd = (
> 'show-ignore' => [ \&cmd_show_ignore, "Show svn:ignore listings",
> { 'revision|r=i' => \$_revision
> } ],
> + 'show-externals' => [ \&cmd_show_externals, "Show svn:externals listings",
> + { 'revision|r=i' => \$_revision
> + } ],
> 'multi-fetch' => [ \&cmd_multi_fetch,
> "Deprecated alias for $0 fetch --all",
> { 'revision|r=s' => \$_revision, %fc_opts } ],
> @@ -560,6 +563,21 @@ sub cmd_show_ignore {
> });
> }
>
> +sub cmd_show_externals {
> + my ($url, $rev, $uuid, $gs) = working_head_info('HEAD');
> + $gs ||= Git::SVN->new;
> + my $r = (defined $_revision ? $_revision : $gs->ra->get_latest_revnum);
> + $gs->prop_walk($gs->{path}, $r, sub {
> + my ($gs, $path, $props) = @_;
> + print STDOUT "\n# $path\n";
> + my $s = $props->{'svn:externals'} or return;
> + $s =~ s/[\r\n]+/\n/g;
> + chomp $s;
> + $s =~ s#^#$path#gm;
> + print STDOUT "$s\n";
> + });
> +}
> +
> sub cmd_create_ignore {
> my ($url, $rev, $uuid, $gs) = working_head_info('HEAD');
> $gs ||= Git::SVN->new;
> --
> 1.5.3.4
>
> -
> To unsubscribe from this list: send the line "unsubscribe git" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
--
Eric Wong
prev parent reply other threads:[~2007-11-29 8:05 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-11-19 22:56 [PATCH] git-svn: add a show-externals command Vineet Kumar
2007-11-29 8:04 ` Eric Wong [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20071129080441.GE32277@soma \
--to=normalperson@yhbt.net \
--cc=git@vger.kernel.org \
--cc=vineet@doorstop.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).