AW: Issue with kallithea 0.6.2 in combination with mercurial hook

Mads Kiilerich mads at kiilerich.com
Fri Dec 4 12:27:12 UTC 2020


The update hook is built-in functionality. I don't think it makes sense 
to make it customizable. If you want it to do something else, just 
disable "Update repository after push (hg update)" under VCS and add 
your own custom hook instead.

I agree that the built-in hook should use the virtualenv hg.

But also, it seems like the root cause of your problem is that your 
system has a bad hg in $PATH. It should work if your system hg works.

It seems very odd that <dev/null should fix anything or >&2 should break 
anything. At most, it can expose/hide other breakage.

/Mads


On 12/4/20 10:16 AM, Benny Bürger wrote:
>
> I got the same error when running my own script *with* Kallithea (but 
> this has already been fixed by using <dev/null)
>
> The current error occurs in the internal hook from Kallithea 
> *changegroup.update*
>
> But unfortunately I cannot change the hook because it is read-only.
>
> I will give it a try with virtualenv, but in my opinion the hook 
> should be changeable
>
> *Von:*Mads Kiilerich <mads at kiilerich.com>
> *Gesendet:* Freitag, 4. Dezember 2020 00:43
> *An:* Benny Bürger <buerger at simba.de>; kallithea-general at sfconservancy.org
> *Betreff:* Re: Issue with kallithea 0.6.2 in combination with 
> mercurial hook
>
> If you can get the same error when launching your scripts manually 
> without Kallithea, then the problem must be in your local system - not 
> directly related to Kallithea.
>
> Again, I can only advise against installing in /usr/local - it is very 
> easy to get inconsistent installations, and very hard to clean up.
>
> But also, I guess Kallithea should do something to ensure that we 
> actually invoke the hg installed in a Kallithea virtualenv. You can do 
> the same in your scripts.
>
> /Mads
>
> On 12/1/20 11:24 AM, Benny Bürger wrote:
>
>     Sorry, just noticed it was the wrong hook.
>
>     Actually the changegroup.update fails (hg update >&2)
>
>     I guess the >&2 is not working.
>
>     In my own script I did a hg clone and I had to add a </dev/null in
>     order to work, otherwise I would get the same error.
>
>     Unfortunately I cannot change the update command because it is
>     read-only.
>
>     I already have mercurial 5.4 installed, although did a test with
>     5.6 but there was another error.
>
>     *Von:*Mads Kiilerich <mads at kiilerich.com> <mailto:mads at kiilerich.com>
>     *Gesendet:* Montag, 30. November 2020 17:59
>     *An:* Benny Bürger <buerger at simba.de> <mailto:buerger at simba.de>;
>     kallithea-general at sfconservancy.org
>     <mailto:kallithea-general at sfconservancy.org>
>     *Betreff:* Re: Issue with kallithea 0.6.2 in combination with
>     mercurial hook
>
>     On 11/30/20 5:30 PM, Benny Bürger wrote:
>
>         Hi,
>
>         I use the pretxnchangegroup.check with a bash script.
>
>         The script executes but the error code is ignored because of
>         the following error:
>
>         Gegenseite: Traceback (most recent call last):
>
>         Gegenseite:   File "/usr/local/bin/hg", line 43, in <module>
>
>         Gegenseite:     dispatch.run()
>
>         Gegenseite:   File "/usr/lib/python3.8/importlib/util.py",
>         line 245, in __getattribute__
>
>         Gegenseite: self.__spec__.loader.exec_module(self)
>
>         Gegenseite:   File "<frozen importlib._bootstrap_external>",
>         line 783, in exec_module
>
>         Gegenseite:   File "<frozen importlib._bootstrap>", line 219,
>         in _call_with_frames_removed
>
>         Gegenseite:   File
>         "/usr/local/lib/python3.8/dist-packages/mercurial/dispatch.py",
>         line 22, in <module>
>
>         Gegenseite:     from .i18n import _
>
>         Gegenseite:   File "/usr/lib/python3.8/importlib/util.py",
>         line 245, in __getattribute__
>
>         Gegenseite: self.__spec__.loader.exec_module(self)
>
>         Gegenseite:   File
>         "/usr/local/lib/python3.8/dist-packages/mercurial/i18n.py",
>         line 15, in <module>
>
>         Gegenseite:     from .pycompat import getattr
>
>         Gegenseite: ImportError: cannot import name 'getattr' from
>         'mercurial.pycompat'
>         (/usr/local/lib/python3.8/dist-packages/mercurial/pycompat.py)
>
>         Environment: Linux repository 5.4.0-48-generic #52-Ubuntu SMP
>         Thu Sep 10 10:58:49 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
>
>         I used pip to install Kallithea and all dependencies…
>
>     Is the hook working when launched manually with python3?
>
>     It looks like a problem in the installation of /usr/local/bin/hg .
>     /usr/local/lib/python3.8/dist-packages/mercurial/pycompat.py must
>     be a version less than 5.2 if it doesn't have getattr . That one
>     year old version didn't have good support for Python 3. I suggest
>     using latest Mercurial version. Python3 support is still improving.
>
>     How was Kallithea installed? Using virtualenv?
>
>     How was /usr/local/bin/hg installed?
>
>     Instead of installing in /usr/local , I would suggest using the hg
>     in the Kallithea virtualenv.
>
>     /Mads
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sfconservancy.org/pipermail/kallithea-general/attachments/20201204/c097d294/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image001.png
Type: image/png
Size: 10737 bytes
Desc: not available
URL: <http://lists.sfconservancy.org/pipermail/kallithea-general/attachments/20201204/c097d294/attachment-0001.png>


More information about the kallithea-general mailing list