[PATCH] maint: Tell git that *.py files should use python diff hunks

Eric Blake posted 1 patch 4 years, 7 months ago
Test checkpatch passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20210215222524.1820223-1-eblake@redhat.com
.gitattributes | 1 +
1 file changed, 1 insertion(+)
[PATCH] maint: Tell git that *.py files should use python diff hunks
Posted by Eric Blake 4 years, 7 months ago
Git's default hunk pattern recognizer favors the C language, but it
also includes several built-in diff styles that give saner results in
other languages.  In particular, telling git to treat all .py files as
python changes the beginning of diff hunks as follows:

|  --- a/python/qemu/machine.py
|  +++ b/python/qemu/machine.py
| -@@ -337,12 +337,12 @@ class QEMUMachine:
| +@@ -337,12 +337,12 @@ def _post_shutdown(self) -> None:
|               self._qmp.close()

which makes it much easier to tell what function a patch is touching,
rather than a non-descript listing of what class contains the changes.

Sadly, our python files that don't use .py suffix (such as numerous
iotests) do not benefit from this glob.

Reported-by: John Snow <jsnow@redhat.com>
Signed-off-by: Eric Blake <eblake@redhat.com>
---
 .gitattributes | 1 +
 1 file changed, 1 insertion(+)

diff --git a/.gitattributes b/.gitattributes
index 3d2fe2ecda8b..3e03ee01c0d9 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -1,2 +1,3 @@
 *.c.inc         diff=c
 *.h.inc         diff=c
+*.py            diff=python
-- 
2.30.1


Re: [PATCH] maint: Tell git that *.py files should use python diff hunks
Posted by John Snow 4 years, 7 months ago
On 2/15/21 5:25 PM, Eric Blake wrote:
> Git's default hunk pattern recognizer favors the C language, but it
> also includes several built-in diff styles that give saner results in
> other languages.  In particular, telling git to treat all .py files as
> python changes the beginning of diff hunks as follows:
> 

As a language recommendation, "gives [improved|better|more readable] 
results".

> |  --- a/python/qemu/machine.py
> |  +++ b/python/qemu/machine.py
> | -@@ -337,12 +337,12 @@ class QEMUMachine:
> | +@@ -337,12 +337,12 @@ def _post_shutdown(self) -> None:
> |               self._qmp.close()
> 

Much better.

> which makes it much easier to tell what function a patch is touching,
> rather than a non-descript listing of what class contains the changes.
> 
> Sadly, our python files that don't use .py suffix (such as numerous
> iotests) do not benefit from this glob.
> 

Probably not a big deal, since those generally don't have class-based 
code anyway.

> Reported-by: John Snow <jsnow@redhat.com>
> Signed-off-by: Eric Blake <eblake@redhat.com>

Reviewed-by: John Snow <jsnow@redhat.com>

> ---
>   .gitattributes | 1 +
>   1 file changed, 1 insertion(+)
> 
> diff --git a/.gitattributes b/.gitattributes
> index 3d2fe2ecda8b..3e03ee01c0d9 100644
> --- a/.gitattributes
> +++ b/.gitattributes
> @@ -1,2 +1,3 @@
>   *.c.inc         diff=c
>   *.h.inc         diff=c
> +*.py            diff=python
> 


Re: [PATCH] maint: Tell git that *.py files should use python diff hunks
Posted by Cleber Rosa 4 years, 7 months ago
On Mon, Feb 15, 2021 at 04:25:24PM -0600, Eric Blake wrote:
> Git's default hunk pattern recognizer favors the C language, but it
> also includes several built-in diff styles that give saner results in
> other languages.  In particular, telling git to treat all .py files as
> python changes the beginning of diff hunks as follows:
> 
> |  --- a/python/qemu/machine.py
> |  +++ b/python/qemu/machine.py
> | -@@ -337,12 +337,12 @@ class QEMUMachine:
> | +@@ -337,12 +337,12 @@ def _post_shutdown(self) -> None:
> |               self._qmp.close()
> 
> which makes it much easier to tell what function a patch is touching,
> rather than a non-descript listing of what class contains the changes.
> 
> Sadly, our python files that don't use .py suffix (such as numerous
> iotests) do not benefit from this glob.
> 
> Reported-by: John Snow <jsnow@redhat.com>
> Signed-off-by: Eric Blake <eblake@redhat.com>
> ---
>  .gitattributes | 1 +
>  1 file changed, 1 insertion(+)
>

Cool stuff!  I'm queueing this, if you don't mind.

Reviewed-by: Cleber Rosa <crosa@redhat.com>