[RFC PATCH 0/4] output improvements for git range-diff
- Date: Sun, 14 Apr 2019 22:09:29 +0100
- From: Thomas Gummerer <t.gummerer@xxxxxxxxx>
- Subject: [RFC PATCH 0/4] output improvements for git range-diff
This series aims at improving the output of 'git range-diff',
especially in cases like the one mentioned in [*1*], where a diff
header, that was before the outer diff's hunk header was
misinterpreted as being the filename of the diff that followed it.
It does so by substituting the diff header of the inner diff with a
range-diff specific "section header", which is then parsed by a
userdiff pattern, so it's included in the outer diff's hunk header.
Additionally, instead of stripping out the whole hunk header of the
inner diff, and replacing it by just an "@@", only strip the line
numbers from that hunk header, but keep the funcname/xfuncname.
This information is not added to the outer diff's hunk header, because
it feels like that would end up in too much information, and I feel
like the filename is the more useful bit of information if we have to
pick one of them.
As an example, here's what the relevant part of the range-diff from
the original thread would look like now:
@@ -99,10 +90,10 @@ modified file Documentation/git-revert.txt
-should see linkgit:git-checkout, specifically the `git checkout
-<commit> -- <filename>` syntax. Take care with these alternatives as
+should see linkgit:git-restore, specifically the `--source`
-+option Take care with these alternatives as
++option. Take care with these alternatives as
both will discard uncommitted changes in your working directory.
+ See "Reset, restore and revert" in linkgit:git for the differences
@@ -129,10 +120,11 @@ modified file Documentation/giteveryday.txt
* linkgit:git-commit to advance the current branch.
- * linkgit:git-reset and linkgit:git-checkout (with
-+ * linkgit:git-reset and linkgit:git-restore (with
- pathname parameters) to undo changes.
+- pathname parameters) to undo changes.
++ * linkgit:git-restore to undo changes.
* linkgit:git-merge to merge between local branches.
@@ Create a topic branch and develop.::
$ git switch -c alsa-audio <1>
Note that this patch series doesn't modify or add any tests, and was
just manually tested locally, thus it is still marked as RFC. I'd
love to get some feedback on the output format first, before touching
any tests, as I expect there might be some discussion on the final
This series can also be fetched from
Thomas Gummerer (4):
range-diff: fix function parameter indentation
range-diff: don't remove funcname from inner diff
range-diff: add section header instead of diff header
range-diff: add section headers to the outer hunk header
range-diff.c | 55 ++++++++++++++++++++++++++++++++++++++++++----------
1 file changed, 45 insertions(+), 10 deletions(-)