diff mbox series

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

Message ID 20210215222524.1820223-1-eblake@redhat.com
State New
Headers show
Series maint: Tell git that *.py files should use python diff hunks | expand

Commit Message

Eric Blake Feb. 15, 2021, 10:25 p.m. UTC
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(+)

Comments

John Snow Feb. 15, 2021, 11:05 p.m. UTC | #1
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
>
Cleber Rosa Feb. 16, 2021, 3:12 a.m. UTC | #2
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>
diff mbox series

Patch

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