From: Eric Wong Date: Wed, 14 Feb 2007 01:09:40 +0000 (-0800) Subject: git-svn: usability fixes for the 'git svn log' command X-Git-Tag: v1.5.1-rc1~169 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=3bc718ba66f8b101b4017e778138660d66829312;p=git.git 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 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 --- diff --git a/git-svn.perl b/git-svn.perl index 66653f9eb..fb2c864a3 100755 --- a/git-svn.perl +++ b/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);