Laszlo:
  I am back. This change is good. Reviewed-by: Liming Gao <liming....@intel.com>

Thanks
Liming
> -----Original Message-----
> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Laszlo Ersek
> Sent: Friday, January 31, 2020 4:34 PM
> To: Kinney, Michael D <michael.d.kin...@intel.com>
> Cc: edk2-devel-groups-io <devel@edk2.groups.io>; Feng, Bob C 
> <bob.c.f...@intel.com>; Leif Lindholm <leif.lindh...@linaro.org>;
> Gao, Liming <liming....@intel.com>
> Subject: Re: [edk2-devel] [PATCH v2] BaseTools/Conf/gitattributes: fix 
> "--function-context" for C source code
> 
> Hi Mike,
> 
> On 01/23/20 13:13, Laszlo Ersek wrote:
> > Mike,
> >
> > can you please ACK this patch while Liming and Bob are away? It's very
> > simple.
> 
> I intended to write "ping" here... But then I realized I failed to add
> you to the "To:" list in the first place, when I asked you to review! :(
> 
> Sigh.
> 
> So, can you please review this now? :)
> 
> Thanks
> Laszlo
> 
> > On 01/20/20 10:42, Laszlo Ersek wrote:
> >> The "--function-context" ("-W") option of git-diff displays the entire
> >> body of a modified function, not just small modified hunks within the
> >> function. It is useful for reviewers when the code changes to the function
> >> are small, but they could affect, or depend on, control flow that is far
> >> away in the same function.
> >>
> >> Of course, the size of the displayed context can be controlled with the
> >> "-U" option anyway, but such fixed-size contexts are usually either too
> >> small, or too large, in the above scenario.
> >>
> >> It turns out that "--function-context" does not work correctly for C
> >> source files in edk2. In particular, labels for the goto instruction
> >> (which the edk2 coding style places in the leftmost column) appear to
> >> terminate "--function-context".
> >>
> >> The "git" utility contains built-in hunk header patterns for the C and C++
> >> languages. However, they do not take effect in edk2 because we don't
> >> explicitly assign the "cpp" git-diff driver to our C files. The
> >> gitattributes(5) manual explains that this is required:
> >>
> >>>            There are a few built-in patterns to make this easier, and
> >>>            tex is one of them, so you do not have to write the above in
> >>>            your configuration file (you still need to enable this with
> >>>            the attribute mechanism, via .gitattributes). The following
> >>>            built in patterns are available:
> >>>
> >>>            [...]
> >>>
> >>>            *   cpp suitable for source code in the C and C++
> >>>                languages.
> >>
> >> The key statement is the one in parentheses.
> >>
> >> Grab the suffix lists from the [C-Code-File] and [Acpi-Table-Code-File]
> >> sections of "BaseTools/Conf/build_rule.template", add "*.h" and "*.H", and
> >> mark those as belonging to the "cpp" git-diff driver.
> >>
> >> This change has a dramatic effect on the following command, for example:
> >>
> >> $ git show -W 2ef0c27cb84c
> >>
> >> Cc: Bob Feng <bob.c.f...@intel.com>
> >> Cc: Leif Lindholm <leif.lindh...@linaro.org>
> >> Cc: Liming Gao <liming....@intel.com>
> >> Signed-off-by: Laszlo Ersek <ler...@redhat.com>
> >> ---
> >>
> >> Notes:
> >>     v2:
> >>
> >>     - take suffixes from "BaseTools/Conf/build_rule.template" [Leif]
> >>
> >>     - replace "*.h" / "*.c" in the commit message with "C source" and
> >>       [C-Code-File] / [Acpi-Table-Code-File]
> >>
> >>     - Supersedes: <20200116184929.18020-1-ler...@redhat.com>
> >>       20200116184929.18020-1-lersek@redhat.com">http://mid.mail-archive.com/20200116184929.18020-1-lersek@redhat.com
> >>       https://edk2.groups.io/g/devel/message/53312
> >>
> >>  BaseTools/Conf/gitattributes | 11 +++++++++++
> >>  1 file changed, 11 insertions(+)
> >>
> >> diff --git a/BaseTools/Conf/gitattributes b/BaseTools/Conf/gitattributes
> >> index 58b93e9d4c27..319e89064133 100644
> >> --- a/BaseTools/Conf/gitattributes
> >> +++ b/BaseTools/Conf/gitattributes
> >> @@ -17,3 +17,14 @@
> >>  *.fdf     diff=ini
> >>  *.fdf.inc diff=ini
> >>  *.inf     diff=ini
> >> +*.c       diff=cpp
> >> +*.C       diff=cpp
> >> +*.cc      diff=cpp
> >> +*.CC      diff=cpp
> >> +*.cpp     diff=cpp
> >> +*.Cpp     diff=cpp
> >> +*.CPP     diff=cpp
> >> +*.aslc    diff=cpp
> >> +*.act     diff=cpp
> >> +*.h       diff=cpp
> >> +*.H       diff=cpp
> >>
> >
> 
> 
> 


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#53600): https://edk2.groups.io/g/devel/message/53600
Mute This Topic: https://groups.io/mt/69928741/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to