Hi Simon, Sorry if you patched an old version of hgview, I'm getting
applying patch from stdin patching file hgviewlib/qt4/hgrepoviewer.py Hunk #2 FAILED at 85 1 out of 2 hunks FAILED -- saving rejects to file hgviewlib/qt4/hgrepoviewer.py.rej cat hgviewlib/qt4/hgrepoviewer.py.rej (2m 21s 201ms) File: hgviewlib/qt4/hgrepoviewer.py.rej --- hgrepoviewer.py +++ hgrepoviewer.py @@ -87,11 +86,10 @@ self.setupModels(fromhead) self._setupQuickOpen() - to_utf8 = methodcaller('encode', 'utf-8') if self.cfg.getFileDescriptionView() == 'asfile': - fileselcallback = compose(self.displaySelectedFile, to_utf8) + fileselcallback = compose(self.displaySelectedFile, tounicode) else: - fileselcallback = compose(self.textview_status.displayFile, to_utf8) + fileselcallback = compose(self.textview_status.displayFile, tounicode) self.tableView_filelist.file_selected[str].connect(fileselcallback) Can you try to make your changes on a recent version ? (if they are still necessary) And Mads thanks for the review (and the fedora package ! ) Arthur On 06/08/2019 18:09, Arthur Lutz wrote: > Hi Simon, > > Thanks for your contribution. We are missing a maintainer on hgview > nowadays. (Philippe has done the most recent releases). > > I pushed the most recent version of the code > https://hg.logilab.org/master/hgview/ to > https://hg.logilab.org/master/hgview/ (should probably find a way to > mirror automatically). > > I'll take a look at your patch and try to integrate it and release a new > version tomorrow. > > Arthur > > On 30/07/2019 16:08, Simon Giesecke wrote: >> Here is the updated patchset: >> >> # HG changeset patch >> # User Simon Giesecke <sgiese...@mozilla.com> >> # Date 1562663911 -7200 >> # Tue Jul 09 11:18:31 2019 +0200 >> # Node ID 273b4ae25ccb8e26ca8b27b61861a621abcfb71f >> # Parent 7f3142453cd546d701a7455cab9568cce08d9974 >> Bugfix: do not return matcher function, but use it for calling diff >> >> diff -r 7f3142453cd5 -r 273b4ae25ccb hgviewlib/hggraph.py >> --- a/hgviewlib/hggraph.py Wed Jun 26 13:55:23 2019 +0200 >> +++ b/hgviewlib/hggraph.py Tue Jul 09 11:18:31 2019 +0200 >> @@ -64,9 +64,9 @@ >> # backward compat with mercurial < 5.0 >> if tuple(map(int, hgversion.split('.', 2)[:2])) < (5, 0): >> if files is None: >> - return match.always(repo.root, repo.getcwd()) >> + matchfn = match.always(repo.root, repo.getcwd()) >> else: >> - return match.exact(repo.root, repo.getcwd(), files) >> + matchfn = match.exact(repo.root, repo.getcwd(), files) >> else: >> if files is None: >> matchfn = match.always() >> # HG changeset patch >> # User Simon Giesecke <sgiese...@mozilla.com> >> # Date 1564495318 -7200 >> # Tue Jul 30 16:01:58 2019 +0200 >> # Node ID 9b01ad1b0ee86c2eba0a5b9f903228ce7c5400f5 >> # Parent 273b4ae25ccb8e26ca8b27b61861a621abcfb71f >> Bugfix: support conversion of QString to unicode >> >> Removed unused import for methodcaller >> Inlined redundant lambda >> >> diff -r 273b4ae25ccb -r 9b01ad1b0ee8 hgviewlib/qt4/hgrepoviewer.py >> --- a/hgviewlib/qt4/hgrepoviewer.py Tue Jul 09 11:18:31 2019 +0200 >> +++ b/hgviewlib/qt4/hgrepoviewer.py Tue Jul 30 16:01:58 2019 +0200 >> @@ -14,7 +14,6 @@ >> import re >> import errno >> from functools import partial >> -from operator import methodcaller >> >> from PyQt4 import QtCore, QtGui, Qsci >> >> @@ -87,11 +86,10 @@ >> self.setupModels(fromhead) >> self._setupQuickOpen() >> >> - to_utf8 = methodcaller('encode', 'utf-8') >> if self.cfg.getFileDescriptionView() == 'asfile': >> - fileselcallback = compose(self.displaySelectedFile, to_utf8) >> + fileselcallback = compose(self.displaySelectedFile, tounicode) >> else: >> - fileselcallback = >> compose(self.textview_status.displayFile, to_utf8) >> + fileselcallback = >> compose(self.textview_status.displayFile, tounicode) >> self.tableView_filelist.file_selected[str].connect(fileselcallback) >> self.tableView_filelist.file_selected[str, >> int].connect(fileselcallback) >> >> diff -r 273b4ae25ccb -r 9b01ad1b0ee8 hgviewlib/util.py >> --- a/hgviewlib/util.py Tue Jul 09 11:18:31 2019 +0200 >> +++ b/hgviewlib/util.py Tue Jul 30 16:01:58 2019 +0200 >> @@ -30,6 +30,8 @@ >> """ >> if isinstance(text, unicode): >> return text >> + elif hasattr(text, 'toUtf8'): # a QString >> + return text.toUtf8().data() >> else: >> text = str(text) >> for encoding in ('utf-8', 'iso-8859-15', 'cp1252'): >> # HG changeset patch >> # User Simon Giesecke <sgiese...@mozilla.com> >> # Date 1564495420 -7200 >> # Tue Jul 30 16:03:40 2019 +0200 >> # Node ID 093ed6e5aa51b1a454a13c5b171221a6e8169d77 >> # Parent 9b01ad1b0ee86c2eba0a5b9f903228ce7c5400f5 >> Bugfix: status may be a QVariant >> >> diff -r 9b01ad1b0ee8 -r 093ed6e5aa51 hgviewlib/qt4/hgrepoviewer.py >> --- a/hgviewlib/qt4/hgrepoviewer.py Tue Jul 30 16:01:58 2019 +0200 >> +++ b/hgviewlib/qt4/hgrepoviewer.py Tue Jul 30 16:03:40 2019 +0200 >> @@ -294,6 +294,8 @@ >> status = settings.value(entryname) >> if status is None: >> status = 1 >> + elif isinstance(status, QtCore.QVariant): >> + status = int(status.toBool()) >> else: >> try: >> status = int(status) >> >> >> On Mon, Jul 29, 2019 at 2:40 PM Simon Giesecke <sgiese...@mozilla.com> wrote: >>> Hi, >>> >>> On Sat, Jul 27, 2019 at 1:12 AM Mads Kiilerich <m...@kiilerich.com> wrote: >>>> On 7/26/19 4:08 PM, Simon Giesecke wrote: >>>>> Hi, >>>>> >>>>> I needed the following patches to get hgview (with the Qt frontend) >>>>> basically running on my Fedora 30 instance. Please consider merging them. >>>> I confirm they make the QT frontend work - tested with Mercurial 4.9. >>>> >>>> (The curses frontend is however still broken. And migration to Python 3 >>>> will very soon be necessary for Fedora packaging.) >>> Yes that's true, I can check migrating to Python 3, but probably some >>> dependencies will need to be migrated first. >>> >>>>> # HG changeset patch >>>>> # User Simon Giesecke <sgiese...@mozilla.com> >>>>> # Date 1562663911 -7200 >>>>> # Tue Jul 09 11:18:31 2019 +0200 >>>>> # Node ID 273b4ae25ccb8e26ca8b27b61861a621abcfb71f >>>>> # Parent 7f3142453cd546d701a7455cab9568cce08d9974 >>>>> Bugfix: do not return matcher function, but use it for calling diff >>>> Fixing a trivial recent regression for Mercurial < 5.0 from >>>> http://hg.logilab.org/review/hgview/rev/15113c412f4c . >>>> >>>> >>>>> # HG changeset patch >>>>> # User Simon Giesecke <sgiese...@mozilla.com> >>>>> # Date 1562664056 -7200 >>>>> # Tue Jul 09 11:20:56 2019 +0200 >>>>> # Node ID e73ef9c7f73339207df78209f8b9ed384c166aad >>>>> # Parent 273b4ae25ccb8e26ca8b27b61861a621abcfb71f >>>>> Bugfix: status may be a QVariant >>>> Is it known what introduced this change? Is the old behaviour still >>>> relevant? >>> Unfortunately, I have no idea. I am not familiar with PyQt4 or sip, I was >>> just trying to do some minimal changes to make it work. >>> >>> Probably this is not the best approach, following >>> https://www.riverbankcomputing.com/static/Docs/PyQt4/python_v3.html#qvariant >>> (this is about Python3, but I did not find any equivalent documentation >>> regarding Python2) and >>> https://www.riverbankcomputing.com/static/Docs/PyQt4/pyqt_qvariant.html, >>> which sounds as if converting to int should actually work. So maybe this is >>> more a bug in PyQt4, and my change just works around that? >>> >>> Unfortunately, I have no idea when hgview last worked, since I am a new >>> user. >>> >>>>> diff --git a/hgviewlib/qt4/hgrepoviewer.py b/hgviewlib/qt4/hgrepoviewer.py >>>>> --- a/hgviewlib/qt4/hgrepoviewer.py >>>>> +++ b/hgviewlib/qt4/hgrepoviewer.py >>>>> @@ -299,6 +299,9 @@ class HgRepoViewer(ActionsMixin, HgDialo >>>>> else: >>>>> try: >>>>> status = int(status) >>>>> + except TypeError: >>>>> + # assume status is a QVariant >>>>> + status = int(status.toBool()) >>>>> except ValueError: >>>>> # for backward compatibility >>>>> status = {'false': False , 'true': >>>>> True}.get(status.lower(), status) >>>> Instead of catching the generic TypeError, how about something like: >>>> >>>> status = settings.value(entryname) >>>> if status is None: >>>> status = 1 >>>> + elif isinstance(status, QtCore.QVariant): >>>> + status = int(status.toBool()) >>>> else: >>>> try: >>>> status = int(status) >>>> >>> Yes, that's probably better, I will change the patch to do just that. >>> Thanks for the suggestion! >>> >>> Best wishes >>> Simon >> _______________________________________________ >> Python-Projects mailing list >> Python-Projects@lists.logilab.org >> https://lists.logilab.org/mailman/listinfo/python-projects > _______________________________________________ > Python-Projects mailing list > Python-Projects@lists.logilab.org > https://lists.logilab.org/mailman/listinfo/python-projects _______________________________________________ Python-Projects mailing list Python-Projects@lists.logilab.org https://lists.logilab.org/mailman/listinfo/python-projects