git-svn log: handle unreachable revisions like "svn log"
When unreachable revisions are given to "svn log", it displays all commit logs in the given range that exist in the current tree. (If no commit logs are found in the current tree, it simply prints a single commit log separator.) This patch makes "git-svn log" behave the same way. Ten tests added to t/t9116-git-svn-log.sh. Signed-off-by: David D Kilzer <ddkilzer@kilzer.net> Acked-by: Eric Wong <normalperson@yhbt.net>
This commit is contained in:

committed by
Eric Wong

parent
60f3ff1257
commit
111947ef8c
@ -30,6 +30,12 @@ test_expect_success 'setup repository and import' "
|
||||
git reset --hard trunk &&
|
||||
echo aye >> README &&
|
||||
git commit -a -m aye &&
|
||||
git svn dcommit &&
|
||||
git reset --hard b &&
|
||||
echo spy >> README &&
|
||||
git commit -a -m spy &&
|
||||
echo try >> README &&
|
||||
git commit -a -m try &&
|
||||
git svn dcommit
|
||||
"
|
||||
|
||||
@ -59,4 +65,64 @@ test_expect_success 'test descending revision range' "
|
||||
git svn log -r 4:1 | grep '^r[0-9]' | cut -d'|' -f1 | diff -u expected-range-r4-r2-r1 -
|
||||
"
|
||||
|
||||
printf 'r1 \nr2 \n' > expected-range-r1-r2
|
||||
|
||||
test_expect_success 'test ascending revision range with unreachable revision' "
|
||||
git reset --hard trunk &&
|
||||
git svn log -r 1:3 | grep '^r[0-9]' | cut -d'|' -f1 | diff -u expected-range-r1-r2 -
|
||||
"
|
||||
|
||||
printf 'r2 \nr1 \n' > expected-range-r2-r1
|
||||
|
||||
test_expect_success 'test descending revision range with unreachable revision' "
|
||||
git reset --hard trunk &&
|
||||
git svn log -r 3:1 | grep '^r[0-9]' | cut -d'|' -f1 | diff -u expected-range-r2-r1 -
|
||||
"
|
||||
|
||||
printf 'r2 \n' > expected-range-r2
|
||||
|
||||
test_expect_success 'test ascending revision range with unreachable upper boundary revision and 1 commit' "
|
||||
git reset --hard trunk &&
|
||||
git svn log -r 2:3 | grep '^r[0-9]' | cut -d'|' -f1 | diff -u expected-range-r2 -
|
||||
"
|
||||
|
||||
test_expect_success 'test descending revision range with unreachable upper boundary revision and 1 commit' "
|
||||
git reset --hard trunk &&
|
||||
git svn log -r 3:2 | grep '^r[0-9]' | cut -d'|' -f1 | diff -u expected-range-r2 -
|
||||
"
|
||||
|
||||
printf 'r4 \n' > expected-range-r4
|
||||
|
||||
test_expect_success 'test ascending revision range with unreachable lower boundary revision and 1 commit' "
|
||||
git reset --hard trunk &&
|
||||
git svn log -r 3:4 | grep '^r[0-9]' | cut -d'|' -f1 | diff -u expected-range-r4 -
|
||||
"
|
||||
|
||||
test_expect_success 'test descending revision range with unreachable lower boundary revision and 1 commit' "
|
||||
git reset --hard trunk &&
|
||||
git svn log -r 4:3 | grep '^r[0-9]' | cut -d'|' -f1 | diff -u expected-range-r4 -
|
||||
"
|
||||
|
||||
printf -- '------------------------------------------------------------------------\n' > expected-separator
|
||||
|
||||
test_expect_success 'test ascending revision range with unreachable boundary revisions and no commits' "
|
||||
git reset --hard trunk &&
|
||||
git svn log -r 5:6 | diff -u expected-separator -
|
||||
"
|
||||
|
||||
test_expect_success 'test descending revision range with unreachable boundary revisions and no commits' "
|
||||
git reset --hard trunk &&
|
||||
git svn log -r 6:5 | diff -u expected-separator -
|
||||
"
|
||||
|
||||
test_expect_success 'test ascending revision range with unreachable boundary revisions and 1 commit' "
|
||||
git reset --hard trunk &&
|
||||
git svn log -r 3:5 | grep '^r[0-9]' | cut -d'|' -f1 | diff -u expected-range-r4 -
|
||||
"
|
||||
|
||||
test_expect_success 'test descending revision range with unreachable boundary revisions and 1 commit' "
|
||||
git reset --hard trunk &&
|
||||
git svn log -r 5:3 | grep '^r[0-9]' | cut -d'|' -f1 | diff -u expected-range-r4 -
|
||||
"
|
||||
|
||||
test_done
|
||||
|
Reference in New Issue
Block a user