On Mon, Feb 15, 2016 at 5:39 PM, Thomas Gummerer <t.gumme...@gmail.com> wrote:
> Both remote add and remote rename use a slightly different hand-rolled
> check if the remote exits.  The hand-rolled check may have some subtle
> cases in which it might fail to detect when a remote already exists.
> One such case was fixed in fb86e32 ("git remote: allow adding remotes
> agreeing with url.<...>.insteadOf").  Another case is when a remote is
> configured as follows:
> [...]
> Signed-off-by: Thomas Gummerer <t.gumme...@gmail.com>
> ---
> diff --git a/t/t5505-remote.sh b/t/t5505-remote.sh
> @@ -157,6 +157,24 @@ test_expect_success 'rename errors out early when 
> deleting non-existent branch'
> +test_expect_success 'add existing foreign_vcs remote' '
> +       git config --add remote.foo.vcs "bar" &&
> +       git config --add remote.bar.vcs "bar" &&
> +       test_when_finished git remote rm foo &&
> +       test_when_finished git remote rm bar &&

Nit: If the second git-config fails, then none of the cleanup will
happen. You'd either want to re-order them like this:

    git config --add remote.foo.vcs "bar" &&
    test_when_finished git remote rm foo &&
    git config --add remote.bar.vcs "bar" &&
    test_when_finished git remote rm bar &&

or this:

    test_when_finished git remote rm foo &&
    git config --add remote.foo.vcs "bar" &&
    test_when_finished git remote rm bar &&
    git config --add remote.bar.vcs "bar" &&

or this:

    test_when_finished git remote rm foo &&
    test_when_finished git remote rm bar &&
    git config --add remote.foo.vcs "bar" &&
    git config --add remote.bar.vcs "bar" &&

Probably not worth a re-roll, though.

> +       echo "fatal: remote bar already exists." >expect &&
> +       test_must_fail git remote rename foo bar 2>actual &&
> +       test_i18ncmp expect actual
> +'
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to