From: Junio C Hamano Date: Tue, 26 Jun 2012 16:07:59 GMT Subject: Re: git submodule vs GIT_WORK_TREE Message-ID: <7vobo6cazk.fsf@alter.siamese.dyndns.org> In-Reply-To: Richard Hartmann writes: > As you are most likely aware, `git submodule` allows you to access a > separate git repository in a sub-directory, e.g. $submodule, while > $GIT_WORK_TREE forces git to operate in a specific directory. Combine > the two and the result is less than ideal. git is forced to operate in > $GIT_WORK_TREE while it should operate on $GIT_WORK_TREE/$submodule, > instead. The end user should not be asked to anything special. When the user exports GIT_WORK_TREE to tell git that the root of the working tree the user wants to work on resides there (which is needed when the user exports GIT_DIR to tell git that the user wants to work on that repository), that wish obviously applies only to that repository. If git decides to visit the working tree of a different repository (e.g. a checkout of a submodule bound to the project GIT_WORK_TREE points at), even if it is done in response to the user action (e.g. like passing "--recurse-submodules" option), it should adjust GIT_WORK_TREE and GIT_DIR to be appropriate for operations in the submodule repository while doing so. If the more recent "recursive" behaviour forgets to do so, it simply is a bug.