• J
    submodule add: Fail when .git/modules/<name> already exists unless forced · 4b7c286e
    Jens Lehmann 提交于
    When adding a new submodule it can happen that .git/modules/<name> already
    contains a submodule repo, e.g. when a submodule is removed from the work
    tree and another submodule is added at the same path. But then the work
    tree of the submodule will be populated using the existing repository and
    not the one the user provided, which results in an incorrect work tree. On
    the other hand the user might reactivate a submodule removed earlier, then
    reusing that .git directory is the Right Thing to do.
    
    As git can't decide what is the case, error out and tell the user she
    should use either use a different name for the submodule with the "--name"
    option or can reuse the .git directory for the newly added submodule by
    providing the --force option (which only makes sense when the upstream
    matches, so the error message lists all remotes of .git/modules/<name>).
    
    In one test in t7406 the --force option had to be added to "git submodule
    add", as that test re-adds a formerly removed submodule.
    Reported-by: NJonathan Johnson <me@jondavidjohn.com>
    Signed-off-by: NJens Lehmann <Jens.Lehmann@web.de>
    Signed-off-by: NJunio C Hamano <gitster@pobox.com>
    4b7c286e
git-submodule.sh 25.0 KB