Mercurial > kallithea
view docs/administrator_guide/vcs_setup.rst @ 7675:c8239333853d
hooks: refactor log_push_action
The core of the functionality is to process a list of "raw id"s, log them, and
update / invalidate caches.
handle_git_post_receive and scm _handle_push already provide that list
directly. Things get much simpler when introducing a new function
(process_pushed_raw_ids) just for processing pushed raw ids. That also makes it
clear that scm _handle_push doesn't need any repo.
log_push_action remains the native entry point for the Mercurial hook. It was
not entirely correct using 'node:tip' - after Mercurial 3.7 and d6d3cf5fda6f,
it should be 'node:node_last'.
After several trivial refactorings, it turns out that the logic for creating
the hash list for Mercurial actually is very simple ...
author | Mads Kiilerich <mads@kiilerich.com> |
---|---|
date | Wed, 16 Jan 2019 12:55:10 +0100 |
parents | 52f823b92614 |
children |
line wrap: on
line source
.. _vcs_setup: ============================= Version control systems setup ============================= Kallithea supports Git and Mercurial repositories out-of-the-box. For Git, you do need the ``git`` command line client installed on the server. You can always disable Git or Mercurial support by editing the file ``kallithea/__init__.py`` and commenting out the backend. For example, to disable Git but keep Mercurial enabled: .. code-block:: python BACKENDS = { 'hg': 'Mercurial repository', #'git': 'Git repository', } Git-specific setup ------------------ Web server with chunked encoding ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Large Git pushes require an HTTP server with support for chunked encoding for POST. The Python web servers waitress_ and gunicorn_ (Linux only) can be used. By default, Kallithea uses waitress_ for `gearbox serve` instead of the built-in `paste` WSGI server. The web server used by gearbox is controlled in the .ini file:: use = egg:waitress#main or:: use = egg:gunicorn#main Also make sure to comment out the following options:: threadpool_workers = threadpool_max_requests = use_threadpool = Increasing Git HTTP POST buffer size ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ If Git pushes fail with HTTP error code 411 (Length Required), you may need to increase the Git HTTP POST buffer. Run the following command as the user that runs Kallithea to set a global Git variable to this effect:: git config --global http.postBuffer 524288000 .. _waitress: http://pypi.python.org/pypi/waitress .. _gunicorn: http://pypi.python.org/pypi/gunicorn .. _subrepositories: http://mercurial.aragost.com/kick-start/en/subrepositories/