#!/bin/sh
#
# Copyright (c) 2009, Junio C Hamano
#
setglobal test_description = ''log family learns --stdin''
source ./test-lib.sh
proc check {
for cmd in [rev-list "log --stat]"
{
for i in [@Argv]
{
printf "%s\n" $i
} >input &&
test_expect_success "check $cmd $ifsjoin(Argv)" '
git $cmd $(cat input) >expect &&
git $cmd --stdin actual &&
sed -e "s/^/input /" input &&
sed -e "s/^/output /" expect &&
test_cmp expect actual
'
}
}
setglobal them = ''1 2 3 4 5 6 7''
test_expect_success setup '
(
for i in 0 $them
do
for j in $them
do
echo $i.$j >file-$j &&
git add file-$j || exit
done &&
test_tick &&
git commit -m $i || exit
done &&
for i in $them
do
git checkout -b side-$i master~$i &&
echo updated $i >file-$i &&
git add file-$i &&
test_tick &&
git commit -m side-$i || exit
done
)
'
check master
check side-1 ^side-4
check side-1 ^side-7 --
check side-1 ^side-7 -- file-1
check side-1 ^side-7 -- file-2
check side-3 ^side-4 -- file-3
check side-3 ^side-2
check side-3 ^side-2 -- file-1
test_expect_success 'not only --stdin' '
cat >expect <<-EOF &&
7
file-1
file-2
EOF
cat >input <<-EOF &&
^master^
--
file-2
EOF
git log --pretty=tformat:%s --name-only --stdin master -- file-1 \
actual &&
test_cmp expect actual
'
test_done