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
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 >
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>
© 2016 - 2025 Red Hat, Inc.