On Tue, Nov 01, 2016 at 12:41:50PM -0700, Kirill Katsnelson wrote: > "git-subtree add" fails to add the subtree into a repository with > submodules, reporting that the worktree is not clean, while `git status` > says that everything is clean (including submodules). I tracked the problem > down to the command "git index HEAD" returning all submodules as having the > M status: > > $ git diff-index HEAD > :160000 160000 d3812c9318c4d0336897fd2d666be908fa1a7953 > d3812c9318c4d0336897fd2d666be908fa1a7953 M ext/grpc > <snip more submodules> > $ git --version > git version 2.9.2.windows.1 > > I worked around the problem in my local copy of git-subtree shell script by > adding "--ignore-submodules=all" to the two invocations of `git diff-index` > in the ensure_clean() function (direct link > <https://github.com/git/git/blob/next/contrib/subtree/git-subtree.sh#L586>). > > I am wondering, is this a defect in git-subtree? To my understanding, the > command should not care about submodules more than ensuring their worktree > is not in the way of new prefix, and that's a separate check. So *even if* > the submodule is modified, this should not be a show stopper for > "git-subtree add". Or am I missing some subtleties? That sounds correct to me; subtree should ignore submodules. -- David