Show 146 quoted lines
> Brandon Casey <casey@nrlssc.navy.mil> writes:
>
>> No time to investigate, but here is an example patch and the
>> results of running the affected tests. Looks like reflog may
>> be creating a reflog when it is not supposed to.
>
> Your later analysis is correct; "git reflog show <branch>" does not
> complain when there is no reflog for <branch>, which might or might not be
> a bug.
>
> Because these tests are not about behaviour of "git reflog show" command,
> let's do this for now.
>
> Thanks.
>
> -- >8 --
> Subject: tests: correct "does reflog exist" tests
>
> These two tests were not about how "git reflog show <branch>" exits when
> there is no reflog, but were about whether "checkout" and "branch" create
> or not create reflog when creating a new <branch>, update the tests to
> check it in a more direct way, namely using "git rev-parse --verify".
>
> Also lose tests based on "test -f .git/logs/refs/heads/<branch>" from
> nearby, to avoid exposing this particular implementation detail
> unnecessarily.
>
> ---
> t/t2017-checkout-orphan.sh | 47 +++++++------------------------------------
> t/t3200-branch.sh | 13 ++---------
> 2 files changed, 11 insertions(+), 49 deletions(-)
>
> diff --git a/t/t2017-checkout-orphan.sh b/t/t2017-checkout-orphan.sh
> index 81cb393..2d2f63f 100755
> --- a/t/t2017-checkout-orphan.sh
> +++ b/t/t2017-checkout-orphan.sh
> @@ -68,65 +68,34 @@ test_expect_success '--orphan makes reflog by default' '
> git checkout master &&
> git config --unset core.logAllRefUpdates &&
> git checkout --orphan delta &&
> - ! test -f .git/logs/refs/heads/delta &&
> - (
> - PAGER= &&
> - export PAGER &&
> - test_must_fail git reflog show delta
> - ) &&
> + test_must_fail git rev-parse --verify delta@{0} &&
> git commit -m Delta &&
> - test -f .git/logs/refs/heads/delta &&
> - PAGER= git reflog show delta
> + git rev-parse --verify delta@{0}
> '
>
> test_expect_success '--orphan does not make reflog when core.logAllRefUpdates = false' '
> git checkout master &&
> git config core.logAllRefUpdates false &&
> git checkout --orphan epsilon &&
> - ! test -f .git/logs/refs/heads/epsilon &&
> - (
> - PAGER= &&
> - export PAGER &&
> - test_must_fail git reflog show epsilon
> - ) &&
> + test_must_fail git rev-parse --verify epsilon@{0} &&
> git commit -m Epsilon &&
> - ! test -f .git/logs/refs/heads/epsilon &&
> - (
> - PAGER= &&
> - export PAGER &&
> - test_must_fail git reflog show epsilon
> - )
> + test_must_fail git rev-parse --verify epsilon@{0}
> '
>
> test_expect_success '--orphan with -l makes reflog when core.logAllRefUpdates = false' '
> git checkout master &&
> git checkout -l --orphan zeta &&
> - test -f .git/logs/refs/heads/zeta &&
> - (
> - PAGER= &&
> - export PAGER &&
> - test_must_fail git reflog show zeta
> - ) &&
> + test_must_fail git rev-parse --verify zeta@{0} &&
> git commit -m Zeta &&
> - PAGER= git reflog show zeta
> + git rev-parse --verify zeta@{0}
> '
>
> test_expect_success 'giving up --orphan not committed when -l and core.logAllRefUpdates = false deletes reflog' '
> git checkout master &&
> git checkout -l --orphan eta &&
> - test -f .git/logs/refs/heads/eta &&
> - (
> - PAGER= &&
> - export PAGER &&
> - test_must_fail git reflog show eta
> - ) &&
> + test_must_fail git rev-parse --verify eta@{0} &&
> git checkout master &&
> - ! test -f .git/logs/refs/heads/eta &&
> - (
> - PAGER= &&
> - export PAGER &&
> - test_must_fail git reflog show eta
> - )
> + test_must_fail git rev-parse --verify eta@{0}
> '
>
> test_expect_success '--orphan is rejected with an existing name' '
> diff --git a/t/t3200-branch.sh b/t/t3200-branch.sh
> index bf7747d..f54a533 100755
> --- a/t/t3200-branch.sh
> +++ b/t/t3200-branch.sh
> @@ -228,28 +228,21 @@ test_expect_success 'checkout -b makes reflog by default' '
> git checkout master &&
> git config --unset core.logAllRefUpdates &&
> git checkout -b alpha &&
> - test -f .git/logs/refs/heads/alpha &&
> - PAGER= git reflog show alpha
> + git rev-parse --verify alpha@{0}
> '
>
> test_expect_success 'checkout -b does not make reflog when core.logAllRefUpdates = false' '
> git checkout master &&
> git config core.logAllRefUpdates false &&
> git checkout -b beta &&
> - ! test -f .git/logs/refs/heads/beta &&
> - (
> - PAGER= &&
> - export PAGER &&
> - test_must_fail git reflog show beta
> - )
> + test_must_fail git rev-parse --verify beta@{0}
> '
>
> test_expect_success 'checkout -b with -l makes reflog when core.logAllRefUpdates = false' '
> git checkout master &&
> git checkout -lb gamma &&
> git config --unset core.logAllRefUpdates &&
> - test -f .git/logs/refs/heads/gamma &&
> - PAGER= git reflog show gamma
> + git rev-parse --verify gamma@{0}
> '
>
> test_expect_success 'avoid ambiguous track' '