On Fri, Sep 10, 2010 at 1:40 PM, Jens Lehmann <Jens.Lehmann@xxxxxx> wrote: >>Brandon Casey <casey@xxxxxxxxxxxxxxx> writes: >> >>> From: Brandon Casey <drafnel@xxxxxxxxx> >>> >>> Since 'git describe' does not append -dirty to the version string it >>> produces when untracked files exist in the working directory of the main >>> repository, it should not do so for submodules either. >>> >>> Add --ignore-submodules=untracked to the call to diff-index which is used >>> to decide whether or not the '-dirty' string is necessary. >>> >>> Signed-off-by: Brandon Casey <casey@xxxxxxxxxxxxxxx> >>> --- >> >>Hmm, this changes the behaviour in a big way but it probably is for the >>better. At least it is consistent with the recent fixes to the >>interaction between diff and submodules. > > Hmm, by default the diff family considers submodules with untracked files as > dirty unless configured otherwise (and AFAICS the recent fixes to the interaction > between diff and submodule were options to configure your own default). > > So when git status tells you the subodule is modified, e.g. because of an untracked > file, I would expect git describe to add '-dirty' to its output when requested. Triple hmm. Perhaps a deeper level change is necessary than what I originally thought. It appears to me now, that the behavior of the entire diff family is inconsistent with respect to how untracked content is handled at the super-project level and at the submodule level. At the super-project level, git only considers as 'modified', changes to _tracked_ content. Any untracked content is ignored by git-describe, git-diff, and friends, and git-status places it in its own 'Untracked files' section. At the submodule level, all files, tracked and untracked, are considered. > To get rid > of that I would expect you either fix the .gitignore of the submodule or configure that > you don't care about untracked files in submodules at all (either only for this > submodule or in the config). > > So if I didn't misunderstand something here I would rather vote against this change, > git describe should append a '-dirty' when git status would show modifications, no? Do you agree that there is an inconsistency between how untracked content is treated at the super-project level and at the submodule level? Any thoughts about how the behavior should be made to be consistent? Perhaps the default setting of submodule.<name>.ignore should be 'untracked'? -Brandon -- 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