diff --git a/docs/usage/vcs_support.rst b/docs/administrator_guide/vcs_setup.rst copy from docs/usage/vcs_support.rst copy to docs/administrator_guide/vcs_setup.rst --- a/docs/usage/vcs_support.rst +++ b/docs/administrator_guide/vcs_setup.rst @@ -1,14 +1,15 @@ -.. _vcs_support: +.. _vcs_setup: -=============================== -Version control systems support -=============================== +============================= +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. +file ``kallithea/__init__.py`` and commenting out the backend. For example, to +disable Git but keep Mercurial enabled: .. code-block:: python @@ -18,20 +19,20 @@ file ``kallithea/__init__.py`` and comme } -Git support ------------ +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 `paster serve` instead of the built-in `paste` WSGI +waitress_ for `gearbox serve` instead of the built-in `paste` WSGI server. -The paster server is controlled in the .ini file:: +The web server used by gearbox is controlled in the .ini file:: use = egg:waitress#main @@ -45,41 +46,14 @@ Also make sure to comment out the follow threadpool_max_requests = use_threadpool = - -Mercurial support ------------------ - - -Working with Mercurial subrepositories -`````````````````````````````````````` - -This section explains how to use Mercurial subrepositories_ in Kallithea. - -Example usage:: +Increasing Git HTTP POST buffer size +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - ## init a simple repo - hg init mainrepo - cd mainrepo - echo "file" > file - hg add file - hg ci --message "initial file" - - # clone subrepo we want to add from Kallithea - hg clone http://kallithea.local/subrepo +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:: - ## specify URL to existing repo in Kallithea as subrepository path - echo "subrepo = http://kallithea.local/subrepo" > .hgsub - hg add .hgsub - hg ci --message "added remote subrepo" - -In the file list of a clone of ``mainrepo`` you will see a connected -subrepository at the revision it was cloned with. Clicking on the -subrepository link sends you to the proper repository in Kallithea. - -Cloning ``mainrepo`` will also clone the attached subrepository. - -Next we can edit the subrepository data, and push back to Kallithea. This will -update both repositories. + git config --global http.postBuffer 524288000 .. _waitress: http://pypi.python.org/pypi/waitress