Merge branch 'ab/submodule-add-f'
* ab/submodule-add-f: git submodule: add submodules with git add -f <path>
This commit is contained in:
commit
849865733f
@ -95,6 +95,10 @@ is the superproject and submodule repositories will be kept
|
|||||||
together in the same relative location, and only the
|
together in the same relative location, and only the
|
||||||
superproject's URL needs to be provided: git-submodule will correctly
|
superproject's URL needs to be provided: git-submodule will correctly
|
||||||
locate the submodule using the relative URL in .gitmodules.
|
locate the submodule using the relative URL in .gitmodules.
|
||||||
|
+
|
||||||
|
The submodule will be added with "git add --force <path>". I.e. git
|
||||||
|
doesn't care if the new path is in a `gitignore`. Your invocation of
|
||||||
|
"git submodule add" is considered enough to override it.
|
||||||
|
|
||||||
status::
|
status::
|
||||||
Show the status of the submodules. This will print the SHA-1 of the
|
Show the status of the submodules. This will print the SHA-1 of the
|
||||||
|
@ -234,12 +234,12 @@ cmd_add()
|
|||||||
) || die "Unable to checkout submodule '$path'"
|
) || die "Unable to checkout submodule '$path'"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
git add "$path" ||
|
git add --force "$path" ||
|
||||||
die "Failed to add submodule '$path'"
|
die "Failed to add submodule '$path'"
|
||||||
|
|
||||||
git config -f .gitmodules submodule."$path".path "$path" &&
|
git config -f .gitmodules submodule."$path".path "$path" &&
|
||||||
git config -f .gitmodules submodule."$path".url "$repo" &&
|
git config -f .gitmodules submodule."$path".url "$repo" &&
|
||||||
git add .gitmodules ||
|
git add --force .gitmodules ||
|
||||||
die "Failed to register submodule '$path'"
|
die "Failed to register submodule '$path'"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -42,7 +42,8 @@ test_expect_success 'setup - hide init subdirectory' '
|
|||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'setup - repository to add submodules to' '
|
test_expect_success 'setup - repository to add submodules to' '
|
||||||
git init addtest
|
git init addtest &&
|
||||||
|
git init addtest-ignore
|
||||||
'
|
'
|
||||||
|
|
||||||
# The 'submodule add' tests need some repository to add as a submodule.
|
# The 'submodule add' tests need some repository to add as a submodule.
|
||||||
@ -85,6 +86,27 @@ test_expect_success 'submodule add' '
|
|||||||
test_cmp empty untracked
|
test_cmp empty untracked
|
||||||
'
|
'
|
||||||
|
|
||||||
|
test_expect_success 'submodule add to .gitignored path' '
|
||||||
|
echo "refs/heads/master" >expect &&
|
||||||
|
>empty &&
|
||||||
|
|
||||||
|
(
|
||||||
|
cd addtest-ignore &&
|
||||||
|
# Does not use test_commit due to the ignore
|
||||||
|
echo "*" > .gitignore &&
|
||||||
|
git add --force .gitignore &&
|
||||||
|
git commit -m"Ignore everything" &&
|
||||||
|
git submodule add "$submodurl" submod &&
|
||||||
|
git submodule init
|
||||||
|
) &&
|
||||||
|
|
||||||
|
rm -f heads head untracked &&
|
||||||
|
inspect addtest/submod ../.. &&
|
||||||
|
test_cmp expect heads &&
|
||||||
|
test_cmp expect head &&
|
||||||
|
test_cmp empty untracked
|
||||||
|
'
|
||||||
|
|
||||||
test_expect_success 'submodule add --branch' '
|
test_expect_success 'submodule add --branch' '
|
||||||
echo "refs/heads/initial" >expect-head &&
|
echo "refs/heads/initial" >expect-head &&
|
||||||
cat <<-\EOF >expect-heads &&
|
cat <<-\EOF >expect-heads &&
|
||||||
|
Loading…
Reference in New Issue
Block a user