git-svn: usability fixes for the 'git svn log' command
Similar in spirit to the recent dcommit change, we now look at 'HEAD' by default to look for a GIT_SVN_ID so the user won't have to pass -i <GIT_SVN_ID> argument. We are also more tolerant of of people passing bare remote names as a result (just $GIT_SVN_ID without the -i) Signed-off-by: Eric Wong <normalperson@yhbt.net>
This commit is contained in:
parent
ce207c7ad1
commit
3bc718ba66
23
git-svn.perl
23
git-svn.perl
@ -3033,8 +3033,25 @@ sub log_use_color {
|
||||
}
|
||||
|
||||
sub git_svn_log_cmd {
|
||||
my ($r_min, $r_max) = @_;
|
||||
my $gs = Git::SVN->_new;
|
||||
my ($r_min, $r_max, @args) = @_;
|
||||
my $head = 'HEAD';
|
||||
foreach my $x (@args) {
|
||||
last if $x eq '--';
|
||||
next unless ::verify_ref("$x^0");
|
||||
$head = $x;
|
||||
last;
|
||||
}
|
||||
|
||||
my $url;
|
||||
my ($fh, $ctx) = command_output_pipe('rev-list', $head);
|
||||
while (<$fh>) {
|
||||
chomp;
|
||||
$url = (::cmt_metadata($_))[0];
|
||||
last if defined $url;
|
||||
}
|
||||
close $fh; # break the pipe
|
||||
|
||||
my $gs = Git::SVN->find_by_url($url) || Git::SVN->_new;
|
||||
my @cmd = (qw/log --abbrev-commit --pretty=raw --default/,
|
||||
$gs->refname);
|
||||
push @cmd, '-r' unless $non_recursive;
|
||||
@ -3227,7 +3244,7 @@ sub cmd_show_log {
|
||||
}
|
||||
|
||||
config_pager();
|
||||
@args = (git_svn_log_cmd($r_min, $r_max), @args);
|
||||
@args = (git_svn_log_cmd($r_min, $r_max, @args), @args);
|
||||
my $log = command_output_pipe(@args);
|
||||
run_pager();
|
||||
my (@k, $c, $d);
|
||||
|
Loading…
Reference in New Issue
Block a user