I would automate the most common path - python upgrade.

Store python version somewhere in db when hooks are installed.
Check if hooks needs reinstall on startup.

Regards,
Łukasz

On 20/11/2020 15.42, Mads Kiilerich wrote:
> On 11/20/20 9:49 AM, Łukasz Michalski wrote:
>> On 19/11/2020 20.53, Mads Kiilerich wrote:
>>> On 11/19/20 4:31 PM, Łukasz Michalski wrote:
>>>> Hi,
>>>>
>>>> I have a problem with one of git repos. When I try to push changes I got 
>>>> "remote rejected":
>>>>
>>>> [zork@serenity filebench]$ git push zork
>>>> Password for 'https://zork@XXXXXXXXXXXX':
>>>> Enumerating objects: 15, done.
>>>> Counting objects: 100% (15/15), done.
>>>> Delta compression using up to 8 threads
>>>> Compressing objects: 100% (8/8), done.
>>>> Writing objects: 100% (8/8), 3.17 KiB | 1.58 MiB/s, done.
>>>> Total 8 (delta 7), reused 0 (delta 0), pack-reused 0
>>>> To https://XXXXXXXXXXXX
>>>>    ! [remote rejected] branch -> branch (pre-receive hook declined)
>>>> error: failed to push some refs to 'https://XXXXXXXXXXXX'
>>>>
>>>> Kallithea  0.6.2 on Arch Linux.
>>>>
>>>> What can I do to resolve this issue? I already tried to increase log level 
>>>> but I cannot find any clues in logs.
>>>
>>> It works for other repos - just not this one?
>>>
>>> The pre-receive hook is really not doing anything and should never reject 
>>> pushes. I guess the hooks (for this repo?) isn't installed correctly? 
>>> Inspect and compare hooks/post-receive for working and non-working repos. 
>>> Or try to reinstall all hooks in Admin/Settings/Remap and Rescan/Install 
>>> Git hooks + Overwrite existing Git hooks.
>>>
>>> It might be a very fundamental problem (such as finding the right Python 
>>> interpreter to run the hook) so I doubt Kallithea logging could say 
>>> anything. But perhaps the web server error log has something.
>>>
>>> /Mads
>>>
>> Rescan+Overwrite helped. Thanks!
>>
>> I also upgraded kallithea to 0.6.2 changing python version from 3.7 to 3.8 
>> (by creating new venv).
>
>
> Great it works.
>
> Should the documentation be improved to clarify the importance of 
> re-installing git hooks after upgrading Kallithea or Python? Where and how 
> would you suggest phrasing it?
>
> I don't know how we can improve this handling. We rely on Git functionality. 
> If you modify hooks/pre-receive to invoke sys.stdin.write or sys.stderr.write 
> or cause an exception (for example by adding an invalid import), you will see 
> that as "remote:" lines on the client side. But if you modify the first line 
> with #! to point at something that doesn't work, Git will be silent - not 
> even a "bad interpreter" message as the shell would do.
>
> We could perhaps change the hooks to *always* write something, such as 
> "rejected by Kallithea hook" or "accepted by Kallithea hook" ... and if there 
> is no such message, we can know that the hook failed badly. But that wouldn't 
> be explicit and obvious ... and we did figure it out anyway.
>
> /Mads
>

_______________________________________________
kallithea-general mailing list
kallithea-general@sfconservancy.org
https://lists.sfconservancy.org/mailman/listinfo/kallithea-general

Reply via email to