vcs_support.rst
87 lines
| 2.3 KiB
| text/x-rst
|
RstLexer
Thomas De Schampheleire
|
r4970 | .. _vcs_support: | ||
=============================== | ||||
Version control systems support | ||||
=============================== | ||||
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. | ||||
.. code-block:: python | ||||
BACKENDS = { | ||||
'hg': 'Mercurial repository', | ||||
#'git': 'Git repository', | ||||
} | ||||
Mads Kiilerich
|
r5433 | |||
Thomas De Schampheleire
|
r4970 | Git support | ||
----------- | ||||
Mads Kiilerich
|
r5433 | |||
Thomas De Schampheleire
|
r4970 | Web server with chunked encoding | ||
Mads Kiilerich
|
r5568 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ||
Mads Kiilerich
|
r5433 | |||
Thomas De Schampheleire
|
r4970 | 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 | ||||
Mads Kiilerich
|
r6509 | waitress_ for `gearbox serve` instead of the built-in `paste` WSGI | ||
Thomas De Schampheleire
|
r4970 | server. | ||
Mads Kiilerich
|
r6509 | The web server used by gearbox is controlled in the .ini file:: | ||
Thomas De Schampheleire
|
r4970 | |||
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 = | ||||
Thomas De Schampheleire
|
r4971 | Mercurial support | ||
----------------- | ||||
Mads Kiilerich
|
r5433 | |||
Thomas De Schampheleire
|
r4971 | Working with Mercurial subrepositories | ||
Mads Kiilerich
|
r5568 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ||
Mads Kiilerich
|
r5433 | |||
Thomas De Schampheleire
|
r4972 | This section explains how to use Mercurial subrepositories_ in Kallithea. | ||
Example usage:: | ||||
Thomas De Schampheleire
|
r4971 | |||
## init a simple repo | ||||
Thomas De Schampheleire
|
r4972 | hg init mainrepo | ||
cd mainrepo | ||||
echo "file" > file | ||||
hg add file | ||||
hg ci --message "initial file" | ||||
Thomas De Schampheleire
|
r4971 | |||
Thomas De Schampheleire
|
r4972 | # clone subrepo we want to add from Kallithea | ||
Thomas De Schampheleire
|
r4971 | hg clone http://kallithea.local/subrepo | ||
Thomas De Schampheleire
|
r4972 | ## specify URL to existing repo in Kallithea as subrepository path | ||
Thomas De Schampheleire
|
r4971 | echo "subrepo = http://kallithea.local/subrepo" > .hgsub | ||
hg add .hgsub | ||||
hg ci --message "added remote subrepo" | ||||
Thomas De Schampheleire
|
r4972 | 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. | ||||
Thomas De Schampheleire
|
r4971 | |||
Thomas De Schampheleire
|
r4972 | Cloning ``mainrepo`` will also clone the attached subrepository. | ||
Thomas De Schampheleire
|
r4971 | |||
Thomas De Schampheleire
|
r4972 | Next we can edit the subrepository data, and push back to Kallithea. This will | ||
update both repositories. | ||||
Thomas De Schampheleire
|
r4970 | |||
Mads Kiilerich
|
r5433 | |||
Thomas De Schampheleire
|
r4970 | .. _waitress: http://pypi.python.org/pypi/waitress | ||
.. _gunicorn: http://pypi.python.org/pypi/gunicorn | ||||
Thomas De Schampheleire
|
r4972 | .. _subrepositories: http://mercurial.aragost.com/kick-start/en/subrepositories/ | ||