Johannes Schindelin <Johannes.Schindelin@xxxxxx> writes: > @@ -3355,6 +3357,9 @@ void diff_addremove(struct diff_options *options, > char concatpath[PATH_MAX]; > struct diff_filespec *one, *two; > > + if (DIFF_OPT_TST(options, IGNORE_SUBMODULES) && S_ISGITLINK(mode)) > + return; > + > /* This may look odd, but it is a preparation for > * feeding "there are unchanged files which should > * not produce diffs, but when you are doing copy So both removal and addition of a submodule is an uninteresting event. > @@ -3399,6 +3404,10 @@ void diff_change(struct diff_options *options, > char concatpath[PATH_MAX]; > struct diff_filespec *one, *two; > > + if (DIFF_OPT_TST(options, IGNORE_SUBMODULES) && S_ISGITLINK(old_mode) > + && S_ISGITLINK(new_mode)) > + return; And a submodule changing from revision A to B is uninteresting. Is it interesting if something that used to be a blob turns into a submodule, or vice versa? The code says it is, but I think it would be more convenient to treat it as a removal of blob and addition of a submodule. -- 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