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>maint
							parent
							
								
									1515345156
								
							
						
					
					
						commit
						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 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	 Benoit Sigoure
						Benoit Sigoure