First of all, thanks for your detailed analysis; it cleared things up for me quite a bit. I am not sure if this would work in all cases, but let's assume there is a new GIT_WORK_ROOT which will always point to the top level of a given repository (it would stay the same for submodules, as well). As for storage of .git, GIT_DIR_ROOT would always point to a directory where git data is stored and GIT_DIR_NAME to the relative path within GIT_DIR_ROOT. Admittedly, this may be rather specific to vcsh, but I don't see any other (reliable) option to support submodules. Thanks, Richard -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html