76642ccec8
When v1.7.9.2~28^2 (2012-02-02) marked "Your branch is behind" and friends for translation, it forgot to adjust tests not to check those messages when tests are being run with git configured to write its output in another language. With this patch applied, t2020 and t6040 pass again with GETTEXT_POISON=YesPlease. Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Explained-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
144 lines
3.3 KiB
Bash
Executable File
144 lines
3.3 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
test_description='remote tracking stats'
|
|
|
|
. ./test-lib.sh
|
|
|
|
advance () {
|
|
echo "$1" >"$1" &&
|
|
git add "$1" &&
|
|
test_tick &&
|
|
git commit -m "$1"
|
|
}
|
|
|
|
test_expect_success setup '
|
|
for i in a b c;
|
|
do
|
|
advance $i || break
|
|
done &&
|
|
git clone . test &&
|
|
(
|
|
cd test &&
|
|
git checkout -b b1 origin &&
|
|
git reset --hard HEAD^ &&
|
|
advance d &&
|
|
git checkout -b b2 origin &&
|
|
git reset --hard b1 &&
|
|
git checkout -b b3 origin &&
|
|
git reset --hard HEAD^ &&
|
|
git checkout -b b4 origin &&
|
|
advance e &&
|
|
advance f
|
|
) &&
|
|
git checkout -b follower --track master &&
|
|
advance g
|
|
'
|
|
|
|
script='s/^..\(b.\)[ 0-9a-f]*\[\([^]]*\)\].*/\1 \2/p'
|
|
cat >expect <<\EOF
|
|
b1 ahead 1, behind 1
|
|
b2 ahead 1, behind 1
|
|
b3 behind 1
|
|
b4 ahead 2
|
|
EOF
|
|
|
|
test_expect_success 'branch -v' '
|
|
(
|
|
cd test &&
|
|
git branch -v
|
|
) |
|
|
sed -n -e "$script" >actual &&
|
|
test_i18ncmp expect actual
|
|
'
|
|
|
|
cat >expect <<\EOF
|
|
b1 origin/master: ahead 1, behind 1
|
|
b2 origin/master: ahead 1, behind 1
|
|
b3 origin/master: behind 1
|
|
b4 origin/master: ahead 2
|
|
EOF
|
|
|
|
test_expect_success 'branch -vv' '
|
|
(
|
|
cd test &&
|
|
git branch -vv
|
|
) |
|
|
sed -n -e "$script" >actual &&
|
|
test_i18ncmp expect actual
|
|
'
|
|
|
|
test_expect_success 'checkout' '
|
|
(
|
|
cd test && git checkout b1
|
|
) >actual &&
|
|
test_i18ngrep "have 1 and 1 different" actual
|
|
'
|
|
|
|
test_expect_success 'checkout with local tracked branch' '
|
|
git checkout master &&
|
|
git checkout follower >actual &&
|
|
test_i18ngrep "is ahead of" actual
|
|
'
|
|
|
|
test_expect_success 'status' '
|
|
(
|
|
cd test &&
|
|
git checkout b1 >/dev/null &&
|
|
# reports nothing to commit
|
|
test_must_fail git commit --dry-run
|
|
) >actual &&
|
|
test_i18ngrep "have 1 and 1 different" actual
|
|
'
|
|
|
|
test_expect_success 'fail to track lightweight tags' '
|
|
git checkout master &&
|
|
git tag light &&
|
|
test_must_fail git branch --track lighttrack light >actual &&
|
|
test_i18ngrep ! "set up to track" actual &&
|
|
test_must_fail git checkout lighttrack
|
|
'
|
|
|
|
test_expect_success 'fail to track annotated tags' '
|
|
git checkout master &&
|
|
git tag -m heavy heavy &&
|
|
test_must_fail git branch --track heavytrack heavy >actual &&
|
|
test_i18ngrep ! "set up to track" actual &&
|
|
test_must_fail git checkout heavytrack
|
|
'
|
|
|
|
test_expect_success 'setup tracking with branch --set-upstream on existing branch' '
|
|
git branch from-master master &&
|
|
test_must_fail git config branch.from-master.merge > actual &&
|
|
git branch --set-upstream from-master master &&
|
|
git config branch.from-master.merge > actual &&
|
|
grep -q "^refs/heads/master$" actual
|
|
'
|
|
|
|
test_expect_success '--set-upstream does not change branch' '
|
|
git branch from-master2 master &&
|
|
test_must_fail git config branch.from-master2.merge > actual &&
|
|
git rev-list from-master2 &&
|
|
git update-ref refs/heads/from-master2 from-master2^ &&
|
|
git rev-parse from-master2 >expect2 &&
|
|
git branch --set-upstream from-master2 master &&
|
|
git config branch.from-master.merge > actual &&
|
|
git rev-parse from-master2 >actual2 &&
|
|
grep -q "^refs/heads/master$" actual &&
|
|
cmp expect2 actual2
|
|
'
|
|
|
|
test_expect_success '--set-upstream @{-1}' '
|
|
git checkout from-master &&
|
|
git checkout from-master2 &&
|
|
git config branch.from-master2.merge > expect2 &&
|
|
git branch --set-upstream @{-1} follower &&
|
|
git config branch.from-master.merge > actual &&
|
|
git config branch.from-master2.merge > actual2 &&
|
|
git branch --set-upstream from-master follower &&
|
|
git config branch.from-master.merge > expect &&
|
|
test_cmp expect2 actual2 &&
|
|
test_cmp expect actual
|
|
'
|
|
|
|
test_done
|