diff options
author | David D Kilzer <ddkilzer@kilzer.net> | 2007-11-10 22:10:34 -0800 |
---|---|---|
committer | Eric Wong <normalperson@yhbt.net> | 2007-11-17 13:28:21 -0800 |
commit | 60f3ff12573e411476f7a32ab13bbb9b8063c8f7 (patch) | |
tree | b9bf330eb03132bf7d918e1f59c2987dbaec02fb | |
parent | git-svn log: fix ascending revision ranges (diff) | |
download | tgif-60f3ff12573e411476f7a32ab13bbb9b8063c8f7.tar.xz |
git-svn log: include commit log for the smallest revision in a range
The "svn log -rM:N" command shows commit logs inclusive in the range [M,N].
Previously "git-svn log" always excluded the commit log for the smallest
revision in a range, whether the range was ascending or descending. With
this patch, the smallest revision in a range is always shown.
Updated tests for ascending and descending revision ranges.
Signed-off-by: David D Kilzer <ddkilzer@kilzer.net>
Acked-by: Eric Wong <normalperson@yhbt.net>
-rwxr-xr-x | git-svn.perl | 6 | ||||
-rwxr-xr-x | t/t9116-git-svn-log.sh | 8 |
2 files changed, 7 insertions, 7 deletions
diff --git a/git-svn.perl b/git-svn.perl index 1872214dec..506e1a605d 100755 --- a/git-svn.perl +++ b/git-svn.perl @@ -3799,9 +3799,9 @@ sub git_svn_log_cmd { $c_min = $gs->rev_db_get($r_min); if (defined $c_min && defined $c_max) { if ($r_max > $r_min) { - push @cmd, "$c_min..$c_max"; + push @cmd, "--boundary", "$c_min..$c_max"; } else { - push @cmd, "$c_max..$c_min"; + push @cmd, "--boundary", "$c_max..$c_min"; } } elsif ($r_max > $r_min) { push @cmd, $c_max; @@ -3980,7 +3980,7 @@ sub cmd_show_log { my (@k, $c, $d, $stat); my $esc_color = qr/(?:\033\[(?:(?:\d+;)*\d*)?m)*/; while (<$log>) { - if (/^${esc_color}commit ($::sha1_short)/o) { + if (/^${esc_color}commit -?($::sha1_short)/o) { my $cmt = $1; if ($c && cmt_showable($c) && $c->{r} != $r_last) { $r_last = $c->{r}; diff --git a/t/t9116-git-svn-log.sh b/t/t9116-git-svn-log.sh index 618d7e9c00..500089208d 100755 --- a/t/t9116-git-svn-log.sh +++ b/t/t9116-git-svn-log.sh @@ -45,18 +45,18 @@ test_expect_success 'run log against a from trunk' " git svn log -r3 a | grep ^r3 " -printf 'r2 \nr4 \n' > expected-range-r2-r4 +printf 'r1 \nr2 \nr4 \n' > expected-range-r1-r2-r4 test_expect_success 'test ascending revision range' " git reset --hard trunk && - git svn log -r 1:4 | grep '^r[0-9]' | cut -d'|' -f1 | diff -u expected-range-r2-r4 - + git svn log -r 1:4 | grep '^r[0-9]' | cut -d'|' -f1 | diff -u expected-range-r1-r2-r4 - " -printf 'r4 \nr2 \n' > expected-range-r4-r2 +printf 'r4 \nr2 \nr1 \n' > expected-range-r4-r2-r1 test_expect_success 'test descending revision range' " git reset --hard trunk && - git svn log -r 4:1 | grep '^r[0-9]' | cut -d'|' -f1 | diff -u expected-range-r4-r2 - + git svn log -r 4:1 | grep '^r[0-9]' | cut -d'|' -f1 | diff -u expected-range-r4-r2-r1 - " test_done |