Revision 31991b0260216d16f2e447e68bcabd9d9cce26ba authored by Ævar Arnfjörð Bjarmason on 05 July 2010, 17:33:03 UTC, committed by Junio C Hamano on 05 July 2010, 18:53:59 UTC
Change `git submodule add' to add the new submodule <path> with `git
add --force'.

I keep my /etc in .git with a .gitignore that contains just
"*". I.e. `git status' will ignore everything that isn't in the tree
already. When I do:

    git submodule add <url> hlagh

git-submodule will get as far as checking out the remote repository
into hlagh, but it'll die right afterwards when it fails to add the
new path:

    The following paths are ignored by one of your .gitignore files:
    hlagh
    Use -f if you really want to add them.
    fatal: no files added
    Failed to add submodule 'hlagh'

Currently there's no way to add a submodule in this situation other
than to remove the ignored path from the .gitignore while I'm at it.

That's silly, when you run `git submodule add' you're explicitly
saying that you want to add something *new* to the repository. Instead
it should just add the path with `git add --force'.

Initially I implemented this by adding new -f and --force options to
`git submodule add'. But if the --force option isn't supplied it'll
get as far as cloning `hlagh', but won't add it.

So the first thing the user has to do is to remove `hlagh' and then
try again with the --force option.

That sucks, it should just add the path to begin with. I can't think
of any usecase where you've gone through the trouble of typing out
`git submodule add ..', but wish to be overriden by a `gitignore'. The
submodule semantics should be more like `git init', not `git add'.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
1 parent 45e9a82
History
File Mode Size
xdiff.h -rw-r--r-- 3.4 KB
xdiffi.c -rw-r--r-- 14.6 KB
xdiffi.h -rw-r--r-- 1.8 KB
xemit.c -rw-r--r-- 5.1 KB
xemit.h -rw-r--r-- 1.2 KB
xinclude.h -rw-r--r-- 1.2 KB
xmacros.h -rw-r--r-- 1.9 KB
xmerge.c -rw-r--r-- 15.1 KB
xpatience.c -rw-r--r-- 10.7 KB
xprepare.c -rw-r--r-- 11.2 KB
xprepare.h -rw-r--r-- 1.1 KB
xtypes.h -rw-r--r-- 1.6 KB
xutils.c -rw-r--r-- 8.1 KB
xutils.h -rw-r--r-- 1.7 KB

back to top