зеркало из https://github.com/microsoft/git.git
git-svn: add git svn proplist
This allows one to easily retrieve a list of svn properties from within git-svn without requiring svn or knowing the URL of a repository. * git-svn.perl (%cmd): Add the command `proplist'. (&cmd_proplist): New. * t/t9101-git-svn-props.sh: Test git svn proplist. Signed-off-by: Benoit Sigoure <tsuna@lrde.epita.fr> Acked-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
This commit is contained in:
Родитель
1515345156
Коммит
51e057cf80
18
git-svn.perl
18
git-svn.perl
|
@ -135,6 +135,9 @@ my %cmd = (
|
||||||
'propget' => [ \&cmd_propget,
|
'propget' => [ \&cmd_propget,
|
||||||
'Print the value of a property on a file or directory',
|
'Print the value of a property on a file or directory',
|
||||||
{ 'revision|r=i' => \$_revision } ],
|
{ 'revision|r=i' => \$_revision } ],
|
||||||
|
'proplist' => [ \&cmd_proplist,
|
||||||
|
'List all properties of a file or directory',
|
||||||
|
{ 'revision|r=i' => \$_revision } ],
|
||||||
'show-ignore' => [ \&cmd_show_ignore, "Show svn:ignore listings",
|
'show-ignore' => [ \&cmd_show_ignore, "Show svn:ignore listings",
|
||||||
{ 'revision|r=i' => \$_revision
|
{ 'revision|r=i' => \$_revision
|
||||||
} ],
|
} ],
|
||||||
|
@ -536,7 +539,7 @@ sub cmd_create_ignore {
|
||||||
|
|
||||||
# get_svnprops(PATH)
|
# get_svnprops(PATH)
|
||||||
# ------------------
|
# ------------------
|
||||||
# Helper for cmd_propget below.
|
# Helper for cmd_propget and cmd_proplist below.
|
||||||
sub get_svnprops {
|
sub get_svnprops {
|
||||||
my $path = shift;
|
my $path = shift;
|
||||||
my ($url, $rev, $uuid, $gs) = working_head_info('HEAD');
|
my ($url, $rev, $uuid, $gs) = working_head_info('HEAD');
|
||||||
|
@ -583,6 +586,19 @@ sub cmd_propget {
|
||||||
print $props->{$prop} . "\n";
|
print $props->{$prop} . "\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# cmd_proplist (PATH)
|
||||||
|
# -------------------
|
||||||
|
# Print the list of SVN properties for PATH.
|
||||||
|
sub cmd_proplist {
|
||||||
|
my $path = shift;
|
||||||
|
$path = '.' if not defined $path;
|
||||||
|
my $props = get_svnprops($path);
|
||||||
|
print "Properties on '$path':\n";
|
||||||
|
foreach (sort keys %{$props}) {
|
||||||
|
print " $_\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
sub cmd_multi_init {
|
sub cmd_multi_init {
|
||||||
my $url = shift;
|
my $url = shift;
|
||||||
unless (defined $_trunk || defined $_branches || defined $_tags) {
|
unless (defined $_trunk || defined $_branches || defined $_tags) {
|
||||||
|
|
|
@ -193,4 +193,25 @@ test_expect_success 'test propget' "
|
||||||
git-svn propget svn:ignore .././deeply/nested | cmp - ../prop.expect
|
git-svn propget svn:ignore .././deeply/nested | cmp - ../prop.expect
|
||||||
"
|
"
|
||||||
|
|
||||||
|
cat >prop.expect <<\EOF
|
||||||
|
Properties on '.':
|
||||||
|
svn:entry:committed-date
|
||||||
|
svn:entry:committed-rev
|
||||||
|
svn:entry:last-author
|
||||||
|
svn:entry:uuid
|
||||||
|
svn:ignore
|
||||||
|
EOF
|
||||||
|
cat >prop2.expect <<\EOF
|
||||||
|
Properties on 'nested/directory/.keep':
|
||||||
|
svn:entry:committed-date
|
||||||
|
svn:entry:committed-rev
|
||||||
|
svn:entry:last-author
|
||||||
|
svn:entry:uuid
|
||||||
|
EOF
|
||||||
|
|
||||||
|
test_expect_success 'test proplist' "
|
||||||
|
git-svn proplist . | cmp - prop.expect &&
|
||||||
|
git-svn proplist nested/directory/.keep | cmp - prop2.expect
|
||||||
|
"
|
||||||
|
|
||||||
test_done
|
test_done
|
||||||
|
|
Загрузка…
Ссылка в новой задаче