On Mon, 16 Nov 2020, Martin Liška wrote: > > I have decided to give your `contrib/mklog.py' script a hit and, well, > > ahem, I guess I must be doing something utterly silly, but no matter what > > kind of a diff I hand to the script it does not produce anything unless I > > apply a patch like below to it, in which case the output produced is as > > expected. > > Hm, it should not be really needed. See: > > $ git show > 1 > $ ipython > $ from unidiff import PatchSet > $ PatchSet(open('1')) > Out[2]: <PatchSet: [<PatchedFile: gcc/config/i386/i386.h>, <PatchedFile: > gcc/doc/invoke.texi>]>
Hmm, $ ipython -bash: ipython: command not found $ > > What's going on here -- has the API of `PatchSet' changed so much at one > > point? Can we do anything to prevent someone else from tripping over this > > issue? > > Can you please show how do you use the script and what's the output? Sure, let's pick your recent change: $ git show 2935ff7eb7ac | contrib/mklog.py $ Nothing, as I wrote. With my tweaked version I instead get: $ git show 2935ff7eb7ac | ../mklog.py ChangeLog: * gcc/testsuite/g++.dg/ubsan/pr61272.C: $ which is not perfect as it failed to pick ChangeLog from gcc/testsuite/, but at least it's a starting point. Let's retry with `ipython' installed now: $ git show 2935ff7eb7ac > 1 $ ipython $ Python 2.7.16 (default, Oct 10 2019, 22:02:15) Type "copyright", "credits" or "license" for more information. IPython 5.8.0 -- An enhanced Interactive Python. ? -> Introduction and overview of IPython's features. %quickref -> Quick reference. help -> Python's own help system. object? -> Details about 'object', use 'object??' for extra details. In [1]: from unidiff import PatchSet In [2]: PatchSet(open('1')) Out[2]: <PatchSet: [<PatchedFile: gcc/testsuite/g++.dg/ubsan/pr61272.C>]> Same with `ipython3' except for: Python 3.7.3 (default, Jul 25 2020, 13:03:44) Please note however that your script effectively does: In [3]: PatchSet(open('1').read()) Out[3]: <PatchSet: []> which my tweak changes into your proposed sequence. Maciej no less confused