Re: [RFC PATCH v2 1/1] scripts: Introduce a default git.orderFile

From: Masahiro Yamada
Date: Tue Sep 12 2023 - 03:53:52 EST


On Tue, Sep 12, 2023 at 8:45 AM Leonardo Bras <leobras@xxxxxxxxxx> wrote:
>
> When reviewing patches, it looks much nicer to have some changes shown
> before others, which allow better understanding of the patch before the
> the .c files reviewing.
>
> Introduce a default git.orderFile, in order to help developers getting the
> best ordering easier.
>
> Signed-off-by: Leonardo Bras <leobras@xxxxxxxxxx>
> ---
>
> Please provide feedback on what else to add / remove / reorder here!
>
> Changes since RFCv1:
> - Added Kconfig* (thanks Randy Dunlap!)
> - Changed Kbuild to Kbuild* (improve matching)
>
> scripts/git.orderFile | 32 ++++++++++++++++++++++++++++++++
> 1 file changed, 32 insertions(+)
> create mode 100644 scripts/git.orderFile
>
> diff --git a/scripts/git.orderFile b/scripts/git.orderFile
> new file mode 100644
> index 000000000000..819f0a957fe3
> --- /dev/null
> +++ b/scripts/git.orderFile
> @@ -0,0 +1,32 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
> +


Please use "# SPDX-License-Identifier: GPL-2.0".

/* ... */ is not a valid comment style for the orderfile.




> +# order file for git, to produce patches which are easier to review
> +# by diffing the important stuff like header changes first.
> +#
> +# one-off usage:
> +# git diff -O scripts/git.orderfile ...
> +#
> +# add to git config:
> +# git config diff.orderFile scripts/git.orderfile


These comments are bogus.


I guess this comment header was copied from QEMU,
but you changed the file path
from scripts/git.orderfile to scripts/git.orderFile.


You need to adjust the comment lines to


git diff -O scripts/git.orderFile ...

git config diff.orderFile scripts/git.orderFile



Or, you need to get the file path back to scripts/git.orderfile








> +#
> +
> +MAINTAINERS
> +
> +# Documentation
> +Documentation/*
> +*.rst
> +
> +# build system
> +Kbuild*
> +Kconfig*
> +Makefile*


Kbuild* and Makefile* are interchangeable.
(both are for GNU Make)

Kconfig* are different types.


Better to arrange the order to

Kconfig*
Kbuild*
Makefile*





> +*.mak

QEMU consistently uses only *.mak.

I just realized the kernel tree uses both *.mak and *.mk

masahiro@zoe:~/ref/linux(master)$ find . -name '*.mak'
./tools/scripts/utilities.mak
masahiro@zoe:~/ref/linux(master)$ find . -name '*.mk'
./tools/testing/selftests/lib.mk
./tools/testing/selftests/ptp/testptp.mk





BTW, I quickly tested this, but
it did not work as I expected.





masahiro@zoe:~/ref/linux(aaa)$ git diff --name-only d34599b^..d34599b
MAINTAINERS
drivers/Kconfig
drivers/Makefile
drivers/cache/Kconfig
drivers/cache/Makefile
drivers/cache/ax45mp_cache.c

masahiro@zoe:~/ref/linux(aaa)$ git diff --name-only -O
scripts/git.orderFile d34599b^..d34599b
MAINTAINERS
drivers/cache/ax45mp_cache.c
drivers/Kconfig
drivers/Makefile
drivers/cache/Kconfig
drivers/cache/Makefile

masahiro@zoe:~/ref/linux(aaa)$ git diff --name-only -O
scripts/git.orderFile d34599b..d34599b^
MAINTAINERS
drivers/cache/ax45mp_cache.c
drivers/Kconfig
drivers/Makefile
drivers/cache/Kconfig
drivers/cache/Makefile





My expectation was the following:

MAINTAINERS
drivers/Kconfig
drivers/cache/Kconfig
drivers/Makefile
drivers/cache/Makefile
drivers/cache/ax45mp_cache.c


It did not work like that.
Am I missing something?





> +
> +# semantic patches
> +*.cocci
> +
> +# headers
> +*.h
> +
> +# code
> +*.c
> --
> 2.42.0
>





--
Best Regards
Masahiro Yamada