##// END OF EJS Templates
git: update check for invalid URL characters to work with Python versions that include an attempt at fixing the very same problem...
git: update check for invalid URL characters to work with Python versions that include an attempt at fixing the very same problem With changes like https://github.com/python/cpython/commit/76cd81d60310d65d01f9d7b48a8985d8ab89c8b4 making it to Python 3.10 and being backported to previous Python versions, the approach in a8a51a3bdb61 no longer works when combined with urllib.parse.urlparse in d2f59de17bef: path will never contain the invalid characters. To catch this case anyway, add a new check to verify that the parsed URL can roundtrip back to the original representation with urllib.parse.urlunparse . The actual exception might vary, but one of them should always fire. There is a risk that the new check will reject some URLs that somehow isn't normalized. No such cases have been found yet.

File last commit:

r7261:52f823b9 default
r8681:f0fbb0fe default
Show More
vcs_setup.rst
61 lines | 1.7 KiB | text/x-rst | RstLexer

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:

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