git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v4 2/2] diff: add SUBMODULE_DIFF format to display submodule diff

From
Jacob Keller <jacob.keller@gmail.com>
Date
Aug 11, 2016, 18:34 UTC
Message-ID
<CA+P7+xpYrEa4Ocsny0Ca6zsRDJxax9FwiRtuxDGArgDiPbk9Cg@mail.gmail.com>
In-Reply-To
<xmqqd1lf2nvj.fsf@gitster.mtv.corp.google.com>
On Thu, Aug 11, 2016 at 10:53 AM, Junio C Hamano <gitster@pobox.com> wrote:
Show 29 quoted lines
> Jacob Keller <jacob.e.keller@intel.com> writes:
>
>> From: Jacob Keller <jacob.keller@gmail.com>
>>
>> Teach git-diff and friends a new format for displaying the difference of
>> a submodule using git-diff inside the submodule project. This allows
>> users to easily see exactly what source changed in a given commit that
>> updates the submodule pointer. To do this, remove DIFF_SUBMODULE_LOG bit
>> from the diff options, and instead add a new enum type for these
>> formats.
>>
>> Signed-off-by: Jacob Keller <jacob.keller@gmail.com>
>> ---
>>  Documentation/diff-config.txt  |  3 +-
>>  Documentation/diff-options.txt |  6 ++--
>>  diff.c                         | 41 ++++++++++++++++----------
>>  diff.h                         |  9 +++++-
>>  submodule.c                    | 67 ++++++++++++++++++++++++++++++++++++++++++
>>  submodule.h                    |  6 ++++
>>  6 files changed, 113 insertions(+), 19 deletions(-)
>
> This looks good.
>
> You'd want some tests to make sure that the "--submodule" and the
> "--submodule=<format>" command line options and the diff.submodule
> configuration variables are parsed correctly (and when combined, the
> command line option overrides the configured default), and of course
> the machinery does the right thing, with and without "--graph" when
> used in "git log".

Yes, I am adding tests now, but I ran into some interesting corner cases for this, that still need some work.

There's a bunch of issues with cases involving adding a submodule that isn't stored in .git/modules/etc, which the current tests for --submodule=log do.

There's also the case of empty trees, which I believe I have resolved now. Hopefully I can sort these cases correctly.

Show 19 quoted lines
>
>> diff --git a/Documentation/diff-options.txt b/Documentation/diff-options.txt
>> index e7b729f3644f..988068225463 100644
>> --- a/Documentation/diff-options.txt
>> +++ b/Documentation/diff-options.txt
>> @@ -215,8 +215,10 @@ any of those replacements occurred.
>>       the commits in the range like linkgit:git-submodule[1] `summary` does.
>>       Omitting the `--submodule` option or specifying `--submodule=short`,
>>       uses the 'short' format. This format just shows the names of the commits
>> -     at the beginning and end of the range.  Can be tweaked via the
>> -     `diff.submodule` configuration variable.
>> +     at the beginning and end of the range. When `--submodule=diff` is
>> +     given, the 'diff' format is used. This format shows the diff between
>> +     the old and new submodule commmit from the perspective of the
>> +     submodule.  Can be tweaked via the `diff.submodule` configuration variable.
>
> This is carried over from the existing text, but "Can be tweaked
> via" sounds a bit wasteful (and strange); "Defaults to" (or "The
> default is taken from") is the phrase we seem to use more often.
Probably worth fixing here. WIll do.

Thanks, Jake

>
> Thanks.
Previous: Junio C HamanoNext: Junio C Hamano
Message 4 of 8 in “diff: add --line-prefix option for passing in a prefix”
  1. 1/2 diff: add --line-prefix option for passing in a prefixJacob Keller, Aug 10, 2016
  2. 2/2 diff: add SUBMODULE_DIFF format to display submodule diffJacob Keller, Aug 10, 2016
  3. Junio C HamanoAug 11, 2016
  4. Jacob KellerAug 11, 2016
  5. Junio C HamanoAug 11, 2016
  6. Junio C HamanoAug 11, 2016
  7. Jacob KellerAug 11, 2016
  8. Junio C HamanoAug 11, 2016

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.