Hi Eric,

On Sun, 1 Jul 2018, Eric Sunshine wrote:

> This test has been dysfunctional since it was added by 619acfc78c
> (submodule add: extend force flag to add existing repos, 2016-10-06),
> however, two problems early in the test went unnoticed due to a broken
> &&-chain later in the test.
> 
> First, it tries configuring the submodule with repository "bogus-url",
> however, "git submodule add" insists that the repository be either an
> absolute URL or a relative pathname requiring prefix "./" or "../" (this
> is true even with --force), but "bogus-url" does not meet those
> criteria, thus the command fails.
> 
> Second, it then tries configuring a submodule with a path which is
> .gitignore'd, which is disallowed. This restriction can be overridden
> with --force, but the test neglects to use that option.
> 
> Fix both problems, as well as the broken &&-chain behind which they hid.
> 
> Reviewed-by: Stefan Beller <sbel...@google.com>
> Signed-off-by: Eric Sunshine <sunsh...@sunshineco.com>
> ---
>  t/t7400-submodule-basic.sh | 10 +++++-----
>  1 file changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/t/t7400-submodule-basic.sh b/t/t7400-submodule-basic.sh
> index 812db137b8..401adaed32 100755
> --- a/t/t7400-submodule-basic.sh
> +++ b/t/t7400-submodule-basic.sh
> @@ -171,12 +171,12 @@ test_expect_success 'submodule add to .gitignored path 
> with --force' '
>  test_expect_success 'submodule add to reconfigure existing submodule with 
> --force' '
>       (
>               cd addtest-ignore &&
> -             git submodule add --force bogus-url submod &&
> -             git submodule add -b initial "$submodurl" submod-branch &&
> -             test "bogus-url" = "$(git config -f .gitmodules 
> submodule.submod.url)" &&
> -             test "bogus-url" = "$(git config submodule.submod.url)" &&
> +             git submodule add --force /bogus-url submod &&
> +             git submodule add --force -b initial "$submodurl" submod-branch 
> &&
> +             test "/bogus-url" = "$(git config -f .gitmodules 
> submodule.submod.url)" &&
> +             test "/bogus-url" = "$(git config submodule.submod.url)" &&
>               # Restore the url
> -             git submodule add --force "$submodurl" submod
> +             git submodule add --force "$submodurl" submod &&
>               test "$submodurl" = "$(git config -f .gitmodules 
> submodule.submod.url)" &&
>               test "$submodurl" = "$(git config submodule.submod.url)"
>       )

This breaks on Windows because of the absolute Unix-y path having to be
translated to a Windows path:

        
https://git-for-windows.visualstudio.com/git/git%20Team/_build/results?buildId=12365&view=logs

(In this case, it is prefixed with `C:/git-sdk-64-ci` because that is the
pseudo root when running in a Git for Windows SDK that is installed into
that directory.)

I could imagine that using "$(pwd)/bogus-url" (which will generate a
Windows-y absolute path on Windows) would work, though.

Ciao,
Dscho

Reply via email to