зеркало из https://github.com/microsoft/git.git
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>
This commit is contained in:
Родитель
fede44b2e1
Коммит
60f3ff1257
|
@ -3799,9 +3799,9 @@ sub git_svn_log_cmd {
|
||||||
$c_min = $gs->rev_db_get($r_min);
|
$c_min = $gs->rev_db_get($r_min);
|
||||||
if (defined $c_min && defined $c_max) {
|
if (defined $c_min && defined $c_max) {
|
||||||
if ($r_max > $r_min) {
|
if ($r_max > $r_min) {
|
||||||
push @cmd, "$c_min..$c_max";
|
push @cmd, "--boundary", "$c_min..$c_max";
|
||||||
} else {
|
} else {
|
||||||
push @cmd, "$c_max..$c_min";
|
push @cmd, "--boundary", "$c_max..$c_min";
|
||||||
}
|
}
|
||||||
} elsif ($r_max > $r_min) {
|
} elsif ($r_max > $r_min) {
|
||||||
push @cmd, $c_max;
|
push @cmd, $c_max;
|
||||||
|
@ -3980,7 +3980,7 @@ sub cmd_show_log {
|
||||||
my (@k, $c, $d, $stat);
|
my (@k, $c, $d, $stat);
|
||||||
my $esc_color = qr/(?:\033\[(?:(?:\d+;)*\d*)?m)*/;
|
my $esc_color = qr/(?:\033\[(?:(?:\d+;)*\d*)?m)*/;
|
||||||
while (<$log>) {
|
while (<$log>) {
|
||||||
if (/^${esc_color}commit ($::sha1_short)/o) {
|
if (/^${esc_color}commit -?($::sha1_short)/o) {
|
||||||
my $cmt = $1;
|
my $cmt = $1;
|
||||||
if ($c && cmt_showable($c) && $c->{r} != $r_last) {
|
if ($c && cmt_showable($c) && $c->{r} != $r_last) {
|
||||||
$r_last = $c->{r};
|
$r_last = $c->{r};
|
||||||
|
|
|
@ -45,18 +45,18 @@ test_expect_success 'run log against a from trunk' "
|
||||||
git svn log -r3 a | grep ^r3
|
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' "
|
test_expect_success 'test ascending revision range' "
|
||||||
git reset --hard trunk &&
|
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' "
|
test_expect_success 'test descending revision range' "
|
||||||
git reset --hard trunk &&
|
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
|
test_done
|
||||||
|
|
Загрузка…
Ссылка в новой задаче