##// END OF EJS Templates
templates: remove references to non-existing commit-message class...
templates: remove references to non-existing commit-message class As there already is monospace styling on textarea.form-control, there is no need for a replacement.

File last commit:

r6716:4d04ac08 default
r7253:eddb927e default
Show More
vcs_support.rst
151 lines | 5.0 KiB | text/x-rst | RstLexer
Thomas De Schampheleire
docs/usage: generalize 'git support' into 'version control systems support'...
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
docs: consistent spacing around headings...
r5433
Thomas De Schampheleire
docs/usage: generalize 'git support' into 'version control systems support'...
r4970 Git support
-----------
Mads Kiilerich
docs: consistent spacing around headings...
r5433
Thomas De Schampheleire
docs/usage: generalize 'git support' into 'version control systems support'...
r4970 Web server with chunked encoding
Mads Kiilerich
docs: use consistent style for section titles
r5568 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Mads Kiilerich
docs: consistent spacing around headings...
r5433
Thomas De Schampheleire
docs/usage: generalize 'git support' into 'version control systems support'...
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
gearbox: replace paster with something TurboGears2-ish that still works with the Pylons stack...
r6509 waitress_ for `gearbox serve` instead of the built-in `paste` WSGI
Thomas De Schampheleire
docs/usage: generalize 'git support' into 'version control systems support'...
r4970 server.
Mads Kiilerich
gearbox: replace paster with something TurboGears2-ish that still works with the Pylons stack...
r6509 The web server used by gearbox is controlled in the .ini file::
Thomas De Schampheleire
docs/usage: generalize 'git support' into 'version control systems support'...
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
docs/usage: move Mercurial subrepository info to VCS support page...
r4971 Mercurial support
-----------------
Mads Kiilerich
docs: consistent spacing around headings...
r5433
Thomas De Schampheleire
docs/usage: move Mercurial subrepository info to VCS support page...
r4971 Working with Mercurial subrepositories
Mads Kiilerich
docs: use consistent style for section titles
r5568 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Mads Kiilerich
docs: consistent spacing around headings...
r5433
Thomas De Schampheleire
docs/usage: reword information on Mercurial subrepository support
r4972 This section explains how to use Mercurial subrepositories_ in Kallithea.
Example usage::
Thomas De Schampheleire
docs/usage: move Mercurial subrepository info to VCS support page...
r4971
## init a simple repo
Thomas De Schampheleire
docs/usage: reword information on Mercurial subrepository support
r4972 hg init mainrepo
cd mainrepo
echo "file" > file
hg add file
hg ci --message "initial file"
Thomas De Schampheleire
docs/usage: move Mercurial subrepository info to VCS support page...
r4971
Thomas De Schampheleire
docs/usage: reword information on Mercurial subrepository support
r4972 # clone subrepo we want to add from Kallithea
Thomas De Schampheleire
docs/usage: move Mercurial subrepository info to VCS support page...
r4971 hg clone http://kallithea.local/subrepo
Thomas De Schampheleire
docs/usage: reword information on Mercurial subrepository support
r4972 ## specify URL to existing repo in Kallithea as subrepository path
Thomas De Schampheleire
docs/usage: move Mercurial subrepository info to VCS support page...
r4971 echo "subrepo = http://kallithea.local/subrepo" > .hgsub
hg add .hgsub
hg ci --message "added remote subrepo"
Thomas De Schampheleire
docs/usage: reword information on Mercurial subrepository support
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
docs/usage: move Mercurial subrepository info to VCS support page...
r4971
Thomas De Schampheleire
docs/usage: reword information on Mercurial subrepository support
r4972 Cloning ``mainrepo`` will also clone the attached subrepository.
Thomas De Schampheleire
docs/usage: move Mercurial subrepository info to VCS support page...
r4971
Thomas De Schampheleire
docs/usage: reword information on Mercurial subrepository support
r4972 Next we can edit the subrepository data, and push back to Kallithea. This will
update both repositories.
Thomas De Schampheleire
docs/usage: generalize 'git support' into 'version control systems support'...
r4970
Karl Goetz
docs/vcs_support: add information on importing repositories...
r6689 .. _importing:
Importing existing repositories
-------------------------------
There are two main methods to import repositories in Kallithea: via the web
interface or via the filesystem. If you have a large number of repositories to
import, importing them via the filesystem is more convenient.
Importing via web interface
^^^^^^^^^^^^^^^^^^^^^^^^^^^
For a small number of repositories, it may be easier to create the target
repositories through the Kallithea web interface, via *Admin > Repositories* or
via the *Add Repository* button on the entry page of the web interface.
Repositories can be nested in repository groups by first creating the group (via
*Admin > Repository Groups* or via the *Add Repository Group* button on the
entry page of the web interface) and then selecting the appropriate group when
adding the repository.
After creation of the (empty) repository, push the existing commits to the
*Clone URL* displayed on the repository summary page. For Git repositories,
first add the *Clone URL* as remote, then push the commits to that remote. The
specific commands to execute are shown under the *Existing repository?* section
of the new repository's summary page.
A benefit of this method particular for Git repositories, is that the
Kallithea-specific Git hooks are installed automatically. For Mercurial, no
hooks are required anyway.
Importing via the filesystem
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The alternative method of importing repositories consists of creating the
repositories in the desired hierarchy on the filesystem and letting Kallithea
scan that location.
All repositories are stored in a central location on the filesystem. This
location is specified during installation (via ``setup-db``) and can be reviewed
at *Admin > Settings > VCS > Location of repositories*. Repository groups
(defined in *Admin > Repository Groups*) are represented by a directory in that
repository location. Repositories of the repository group are nested under that
directory.
To import a set of repositories and organize them in a certain repository group
structure, first place clones in the desired hierarchy at the configured
repository location.
These clones should be created without working directory. For Mercurial, this is
done with ``hg clone -U``, for Git with ``git clone --bare``.
When the repositories are added correctly on the filesystem:
* go to *Admin > Settings > Remap and Rescan* in the Kallithea web interface
* select the *Install Git hooks* checkbox when importing Git repositories
* click *Rescan Repositories*
Mads Kiilerich
docs: fix some sphinx warnings...
r6716
Karl Goetz
docs/vcs_support: add information on importing repositories...
r6689 This step will scan the filesystem and create the appropriate repository groups
and repositories in Kallithea.
*Note*: Once repository groups have been created this way, manage their access
permissions through the Kallithea web interface.
Mads Kiilerich
docs: consistent spacing around headings...
r5433
Thomas De Schampheleire
docs/usage: generalize 'git support' into 'version control systems support'...
r4970 .. _waitress: http://pypi.python.org/pypi/waitress
.. _gunicorn: http://pypi.python.org/pypi/gunicorn
Thomas De Schampheleire
docs/usage: reword information on Mercurial subrepository support
r4972 .. _subrepositories: http://mercurial.aragost.com/kick-start/en/subrepositories/