mirror of
https://github.com/git/git.git
synced 2024-05-06 05:16:15 +02:00
d162b25f95
This removes the ability to inject "poison" gettext() messages via the GIT_TEST_GETTEXT_POISON special test setup. I initially added this as a compile-time option inbb946bba76
(i18n: add GETTEXT_POISON to simulate unfriendly translator, 2011-02-22), and most recently modified to be toggleable at runtime in6cdccfce1e
(i18n: make GETTEXT_POISON a runtime option, 2018-11-08).. The reason for its removal is that the trade-off of maintaining it v.s. what it's getting us has long since flipped. When gettext was integrated in5e9637c629
(i18n: add infrastructure for translating Git with gettext, 2011-11-18) there was understandable concern on the Git ML that in marking messages for translation en-masse we'd inadvertently mark plumbing messages. The GETTEXT_POISON facility was a way to smoke those out via our test suite. Nowadays however we're done (or almost entirely done) with any marking of messages for translation. New messages are usually marked by their authors, who'll know whether it makes sense to translate them or not. If not any errors in marking the messages are much more likely to be spotted in review than in the the initial deluge of i18n patches in the 2011-2012 era. So let's just remove this. This leaves the test suite in a state where we still have a lot of test_i18n, C_LOCALE_OUTPUT etc. uses. Subsequent commits will remove those too. The change to t/lib-rebase.sh is a selective revert of the relevant part off2d17068fd
(i18n: rebase-interactive: mark comments of squash for translation, 2016-06-17), and the comment in t/t3406-rebase-message.sh is fromc7108bf9ed
(i18n: rebase: mark messages for translation, 2012-07-25). Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
116 lines
3.2 KiB
Bash
Executable File
116 lines
3.2 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
test_description='messages from rebase operation'
|
|
|
|
. ./test-lib.sh
|
|
|
|
test_expect_success 'setup' '
|
|
test_commit O fileO &&
|
|
test_commit X fileX &&
|
|
test_commit A fileA &&
|
|
test_commit B fileB &&
|
|
test_commit Y fileY &&
|
|
|
|
git checkout -b topic O &&
|
|
git cherry-pick A B &&
|
|
test_commit Z fileZ &&
|
|
git tag start
|
|
'
|
|
|
|
test_expect_success 'rebase -m' '
|
|
git rebase -m master >actual &&
|
|
test_must_be_empty actual
|
|
'
|
|
|
|
test_expect_success 'rebase against master twice' '
|
|
git rebase --apply master >out &&
|
|
test_i18ngrep "Current branch topic is up to date" out
|
|
'
|
|
|
|
test_expect_success 'rebase against master twice with --force' '
|
|
git rebase --force-rebase --apply master >out &&
|
|
test_i18ngrep "Current branch topic is up to date, rebase forced" out
|
|
'
|
|
|
|
test_expect_success 'rebase against master twice from another branch' '
|
|
git checkout topic^ &&
|
|
git rebase --apply master topic >out &&
|
|
test_i18ngrep "Current branch topic is up to date" out
|
|
'
|
|
|
|
test_expect_success 'rebase fast-forward to master' '
|
|
git checkout topic^ &&
|
|
git rebase --apply topic >out &&
|
|
test_i18ngrep "Fast-forwarded HEAD to topic" out
|
|
'
|
|
|
|
test_expect_success 'rebase --stat' '
|
|
git reset --hard start &&
|
|
git rebase --stat master >diffstat.txt &&
|
|
grep "^ fileX | *1 +$" diffstat.txt
|
|
'
|
|
|
|
test_expect_success 'rebase w/config rebase.stat' '
|
|
git reset --hard start &&
|
|
git config rebase.stat true &&
|
|
git rebase master >diffstat.txt &&
|
|
grep "^ fileX | *1 +$" diffstat.txt
|
|
'
|
|
|
|
test_expect_success 'rebase -n overrides config rebase.stat config' '
|
|
git reset --hard start &&
|
|
git config rebase.stat true &&
|
|
git rebase -n master >diffstat.txt &&
|
|
! grep "^ fileX | *1 +$" diffstat.txt
|
|
'
|
|
|
|
test_expect_success 'rebase --onto outputs the invalid ref' '
|
|
test_must_fail git rebase --onto invalid-ref HEAD HEAD 2>err &&
|
|
test_i18ngrep "invalid-ref" err
|
|
'
|
|
|
|
test_expect_success 'error out early upon -C<n> or --whitespace=<bad>' '
|
|
test_must_fail git rebase -Cnot-a-number HEAD 2>err &&
|
|
test_i18ngrep "numerical value" err &&
|
|
test_must_fail git rebase --whitespace=bad HEAD 2>err &&
|
|
test_i18ngrep "Invalid whitespace option" err
|
|
'
|
|
|
|
test_expect_success 'GIT_REFLOG_ACTION' '
|
|
git checkout start &&
|
|
test_commit reflog-onto &&
|
|
git checkout -b reflog-topic start &&
|
|
test_commit reflog-to-rebase &&
|
|
|
|
git rebase reflog-onto &&
|
|
git log -g --format=%gs -3 >actual &&
|
|
cat >expect <<-\EOF &&
|
|
rebase (finish): returning to refs/heads/reflog-topic
|
|
rebase (pick): reflog-to-rebase
|
|
rebase (start): checkout reflog-onto
|
|
EOF
|
|
test_cmp expect actual &&
|
|
|
|
git checkout -b reflog-prefix reflog-to-rebase &&
|
|
GIT_REFLOG_ACTION=change-the-reflog git rebase reflog-onto &&
|
|
git log -g --format=%gs -3 >actual &&
|
|
cat >expect <<-\EOF &&
|
|
change-the-reflog (finish): returning to refs/heads/reflog-prefix
|
|
change-the-reflog (pick): reflog-to-rebase
|
|
change-the-reflog (start): checkout reflog-onto
|
|
EOF
|
|
test_cmp expect actual
|
|
'
|
|
|
|
test_expect_success 'rebase -i onto unrelated history' '
|
|
git init unrelated &&
|
|
test_commit -C unrelated 1 &&
|
|
git -C unrelated remote add -f origin "$PWD" &&
|
|
git -C unrelated branch --set-upstream-to=origin/master &&
|
|
git -C unrelated -c core.editor=true rebase -i -v --stat >actual &&
|
|
test_i18ngrep "Changes to " actual &&
|
|
test_i18ngrep "5 files changed" actual
|
|
'
|
|
|
|
test_done
|