README.rst
205 lines
| 7.6 KiB
| text/x-rst
|
RstLexer
r2020 | ========= | |||
Bradley M. Kuhn
|
r4212 | Kallithea | ||
r2020 | ========= | |||
About | ||||
----- | ||||
r572 | ||||
Andrew Shadura
|
r4258 | ``Kallithea`` is a fast and powerful management tool for Mercurial_ and Git_ | ||
with a built-in push/pull server, full text search and code-review. | ||||
r3224 | It works on http/https and has a built in permission/authentication system with | |||
Bradley M. Kuhn
|
r4212 | the ability to authenticate via LDAP or ActiveDirectory. Kallithea also provides | ||
Andrew Shadura
|
r4258 | simple API so it's easy to integrate with existing external systems. | ||
r1093 | ||||
Andrew Shadura
|
r4258 | Kallithea is similar in some respects to GitHub_ or Bitbucket_, | ||
Bradley M. Kuhn
|
r4212 | however Kallithea can be run as standalone hosted application on your own server. | ||
Andrew Shadura
|
r4258 | It is open-source donationware and focuses more on providing a customised, | ||
self-administered interface for Mercurial_ and Git_ repositories. | ||||
Kallithea works on Unix-like systems and Windows, and is powered by the vcs_ library | ||||
created by Łukasz Balcerzak and Marcin Kuźmiński to uniformly handle multiple | ||||
version control systems. | ||||
r572 | ||||
Bradley M. Kuhn
|
r4236 | Kallithea was forked from RhodeCode in July 2014 and has been heavily modified. | ||
r2020 | Installation | |||
------------ | ||||
Bradley M. Kuhn
|
r4212 | Stable releases of Kallithea are best installed via:: | ||
r2020 | ||||
Bradley M. Kuhn
|
r4192 | easy_install kallithea | ||
r2020 | ||||
Or:: | ||||
Bradley M. Kuhn
|
r4192 | pip install kallithea | ||
r2020 | ||||
Detailed instructions and links may be found on the Installation page. | ||||
Bradley M. Kuhn
|
r4192 | Please visit http://packages.python.org/Kallithea/installation.html for | ||
Andrew Shadura
|
r4258 | more details. | ||
r2020 | ||||
r572 | ||||
Source code | ||||
----------- | ||||
Bradley M. Kuhn
|
r4179 | The latest sources can be obtained from https://kallithea-scm.org/repos/kallithea | ||
r254 | ||||
r1167 | ||||
MIRRORS: | ||||
Andrew Shadura
|
r4258 | Issue tracker and sources at Bitbucket_ | ||
r1167 | ||||
Bradley M. Kuhn
|
r4179 | https://bitbucket.org/conservancy/kallithea | ||
r572 | ||||
r1167 | ||||
r572 | ||||
Bradley M. Kuhn
|
r4212 | Kallithea Features | ||
r1093 | ------------------ | |||
r572 | ||||
Andrew Shadura
|
r4258 | - Has its own middleware to handle Mercurial_ and Git_ protocol requests. | ||
r3184 | Each request is authenticated and logged together with IP address. | |||
Andrew Shadura
|
r4258 | - Built for speed and performance. You can make multiple pulls/pushes simultaneously. | ||
Proven to work with thousands of repositories and users. | ||||
r3184 | - Supports http/https, LDAP, AD, proxy-pass authentication. | |||
- Full permissions (private/read/write/admin) together with IP restrictions for each repository, | ||||
r3848 | additional explicit forking, repositories group and repository creation permissions. | |||
- User groups for easier permission management. | ||||
- Repository groups let you group repos and manage them easier. They come with | ||||
permission delegation features, so you can delegate groups management. | ||||
r3184 | - Users can fork other users repos, and compare them at any time. | |||
Andrew Shadura
|
r4258 | - Built-in versioned paste functionality (Gist) for sharing code snippets. | ||
r3184 | - Integrates easily with other systems, with custom created mappers you can connect it to almost | |||
any issue tracker, and with an JSON-RPC API you can make much more | ||||
Andrew Shadura
|
r4258 | - Built-in commit API lets you add, edit and commit files right from Kallithea | ||
r3184 | web interface using simple editor or upload binary files using simple form. | |||
Andrew Shadura
|
r4258 | - Powerful pull request driven review system with inline commenting, | ||
r3184 | changeset statuses, and notification system. | |||
Andrew Shadura
|
r4258 | - Importing and syncing repositories from remote locations for Git_, Mercurial_ and Subversion. | ||
- Mako templates let you customize the look and feel of the application. | ||||
r3224 | - Beautiful diffs, annotations and source code browsing all colored by pygments. | |||
Andrew Shadura
|
r4258 | Raw diffs are made in Git-diff format for both VCS systems, including Git_ binary-patches | ||
- Mercurial_ and Git_ DAG graphs and Flot-powered graphs with zooming and statistics | ||||
r3184 | to track activity for repositories | |||
r847 | - Admin interface with user/permission management. Admin activity journal, logs | |||
pulls, pushes, forks, registrations and other actions made by all users. | ||||
r3224 | - Server side forks. It is possible to fork a project and modify it freely | |||
r3184 | without breaking the main repository. | |||
Andrew Shadura
|
r4258 | - reST and Markdown README support for repositories. | ||
r3184 | - Full text search powered by Whoosh on the source files, commit messages, and file names. | |||
Andrew Shadura
|
r4258 | Built-in indexing daemons, with optional incremental index build | ||
r1093 | (no external search servers required all in one application) | |||
Andrew Shadura
|
r4258 | - Setup project descriptions/tags and info inside built in DB for easy, | ||
non-filesystem operations. | ||||
r3224 | - Intelligent cache with invalidation after push or project change, provides | |||
r1167 | high performance and always up to date data. | |||
Andrew Shadura
|
r4258 | - RSS/Atom feeds, Gravatar support, downloadable sources as zip/tar/gz | ||
- Optional async tasks for speed and performance using Celery_ | ||||
r3224 | - Backup scripts can do backup of whole app and send it over scp to desired | |||
location | ||||
Andrew Shadura
|
r4258 | - Based on Pylons, SQLAlchemy, SQLite, Whoosh, vcs | ||
r253 | ||||
r3224 | ||||
r676 | Incoming / Plans | |||
---------------- | ||||
r253 | ||||
r3184 | - Finer granular permissions per branch, or subrepo | |||
Andrew Shadura
|
r4258 | - Web-based merges for pull requests | ||
r3184 | - Tracking history for each lines in files | |||
r3224 | - Simple issue tracker | |||
Andrew Shadura
|
r4258 | - SSH-based authentication with server side key management | ||
r1093 | - Commit based built in wiki system | |||
- More statistics and graph (global annotation + some more statistics) | ||||
r3224 | - Other advancements as development continues (or you can of course make | |||
r1167 | additions and or requests) | |||
r552 | ||||
r572 | License | |||
------- | ||||
Bradley M. Kuhn
|
r4212 | ``Kallithea`` is released under the GPLv3 license. | ||
r572 | ||||
r2020 | Getting help | |||
------------ | ||||
r676 | ||||
r2020 | Listed bellow are various support resources that should help. | |||
r676 | ||||
r2020 | .. note:: | |||
r3224 | ||||
r2601 | Please try to read the documentation before posting any issues, especially | |||
the **troubleshooting section** | ||||
r3224 | ||||
Bradley M. Kuhn
|
r4179 | - Open an issue at `issue tracker <https://bitbucket.org/conservancy/kallithea/issues>`_ | ||
r2020 | ||||
Bradley M. Kuhn
|
r4180 | - Join #kallithea on FreeNode (irc.freenode.net) | ||
or use http://webchat.freenode.net/?channels=kallithea for web access to irc. | ||||
r2020 | ||||
Bradley M. Kuhn
|
r4180 | You can follow this project on Twitter, **@KallitheaSCM**. | ||
r2020 | ||||
r796 | ||||
Online documentation | ||||
-------------------- | ||||
r572 | ||||
Bradley M. Kuhn
|
r4212 | Online documentation for the current version of Kallithea is available at | ||
Bradley M. Kuhn
|
r4192 | - http://packages.python.org/Kallithea/ | ||
- http://kallithea.readthedocs.org/ | ||||
r2020 | ||||
Andrew Shadura
|
r4258 | You may also build the documentation for yourself: go into ``docs/`` and run:: | ||
r572 | ||||
make html | ||||
Andrew Shadura
|
r4258 | (You need to have Sphinx_ installed to build the documentation. If you don't | ||
have Sphinx_ installed you can install it via the command: | ||||
r1167 | ``easy_install sphinx``) | |||
r3224 | ||||
Sean Farley
|
r4227 | |||
Converting from RhodeCode | ||||
------------------------- | ||||
Currently, you have two options for working with an existing RhodeCode database: | ||||
- keep the database unconverted (intended for testing and evaluation) | ||||
- convert the database in a one-time step | ||||
Maintaining Interoperability | ||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
Interoperability with RhodeCode 2.2.5 installations is provided so you don't | ||||
have to immediately commit to switching to Kallithea. This option will most | ||||
likely go away once the two projects have diverged significantly. | ||||
Andrew Shadura
|
r4258 | To run Kallithea on a RhodeCode database, run:: | ||
Sean Farley
|
r4227 | |||
echo "BRAND = 'rhodecode'" > kallithea/brand.py | ||||
This location will depend on where you installed Kallithea. If you installed via:: | ||||
python setup.py install | ||||
then you will find this location at | ||||
``$VIRTUAL_ENV/lib/python2.7/site-packages/Kallithea-2.2.5-py2.7.egg/kallithea`` | ||||
One-time Conversion | ||||
~~~~~~~~~~~~~~~~~~~ | ||||
Alternatively, if you would like to convert the database for good, you can use | ||||
a helper script provided by Kallithea. This script will operate directly on the | ||||
database, using the database string you can find in your ``production.ini`` (or | ||||
``development.ini``) file. For example, if using SQLite:: | ||||
cd /path/to/kallithea | ||||
cp /path/to/rhodecode/rhodecode.db kallithea.db | ||||
pip install sqlalchemy-migrate | ||||
python kallithea/bin/rebranddb.py sqlite:///kallithea.db | ||||
.. WARNING:: | ||||
If you used the other method for interoperability, overwrite brand.py with | ||||
an empty file (or watch out for stray brand.pyc after removing brand.py). | ||||
r869 | .. _virtualenv: http://pypi.python.org/pypi/virtualenv | |||
Andrew Shadura
|
r4258 | .. _Python: http://www.python.org/ | ||
r869 | .. _Sphinx: http://sphinx.pocoo.org/ | |||
Andrew Shadura
|
r4258 | .. _Mercurial: http://mercurial.selenic.com/ | ||
.. _Bitbucket: http://bitbucket.org/ | ||||
.. _GitHub: http://github.com/ | ||||
.. _Subversion: http://subversion.tigris.org/ | ||||
.. _Git: http://git-scm.com/ | ||||
.. _Celery: http://celeryproject.org/ | ||||
r3224 | .. _vcs: http://pypi.python.org/pypi/vcs | |||