##// END OF EJS Templates
docs: rework stuff...
Mads Kiilerich -
r4902:03bbd33b default
parent child Browse files
Show More
@@ -0,0 +1,3 b''
1 .. _readme:
2
3 .. include:: ./../README.rst
@@ -0,0 +1,37 b''
1 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2 <svg xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" enable-background="new 0 0 163 30" xml:space="preserve" height="30" viewBox="0 0 140 30" width="140" version="1.1" y="0px" x="0px">
3 <metadata>
4 <rdf:RDF>
5 <cc:Work rdf:about="">
6 <dc:format>image/svg+xml</dc:format>
7 <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
8 <dc:title/>
9 </cc:Work>
10 </rdf:RDF>
11 </metadata>
12 <g display="none">
13 <rect display="inline" height="163" width="256" y="-66.5" x="-24" fill="#404c2c"/>
14 </g>
15 <g transform="matrix(.83 0 0 1 5.6391 0)">
16 <g fill="#b1d579">
17 <path d="m26.04 25.875v-20.64l5.451-0.473v21.113h-5.451zm17.215 0h-6.141l-5.451-8.066 5.589-6.704h5.555l-5.555 6.481 6.003 8.289z"/>
18 <path d="m58.951 21.592c0 1.141 0.379 1.557 1.242 1.809l-1.138 2.865c-2.174-0.141-3.588-0.668-4.416-2.143-1.311 1.641-3.347 2.225-5.52 2.225-3.657 0-5.969-1.918-5.969-4.617 0-3.227 3.036-4.979 8.59-4.979h1.863v-0.641c0-1.751-0.862-2.28-3.105-2.28-1.173 0-2.967 0.278-4.795 0.779l-1.242-2.893c2.312-0.695 4.83-1.085 6.9-1.085 5.313 0 7.59 1.808 7.59 5.229v5.731zm-5.347 0.194v-2.614h-1.346c-2.484 0-3.691 0.695-3.691 2.169 0 1.169 0.793 1.864 2.139 1.864 1.276 0 2.242-0.529 2.898-1.419z"/>
19 <path d="m68.057 21.73c0 0.834 0.345 1.141 0.932 1.141 0.276 0 0.655-0.057 0.897-0.139l1.069 3.115c-0.931 0.305-2.242 0.5-3.519 0.5-3.036 0-4.83-1.447-4.83-4.173v-16.939l5.451-0.473v16.968z"/>
20 <path d="m77.785 21.73c0 0.834 0.345 1.141 0.932 1.141 0.276 0 0.655-0.057 0.897-0.139l1.069 3.115c-0.931 0.305-2.242 0.5-3.519 0.5-3.036 0-4.83-1.447-4.83-4.173v-16.939l5.451-0.473v16.968z"/>
21 <path d="m88.169 5.819c0 1.418-1.346 2.503-3.243 2.503-1.896 0-3.208-1.085-3.208-2.503 0-1.419 1.312-2.504 3.208-2.504 1.897 0 3.243 1.085 3.243 2.504zm-5.935 20.056v-14.771h5.451v14.771h-5.451z"/>
22 <path d="m102.93 25.18c-1.379 0.779-3.312 1.168-4.968 1.168-4.036-0.027-6.003-1.863-6.003-5.341v-6.843h-2.588v-3.06h2.588v-3.199l5.451-0.5v3.7h4.209l-0.587 3.06h-3.622v6.787c0 1.419 0.586 1.92 1.725 1.92 0.621 0 1.242-0.14 1.967-0.501l1.828 2.809z"/>
23 <path d="m120.04 15.082v10.793h-5.45v-10.042c0-1.558-0.691-1.975-1.726-1.975-1.208 0-2.208 0.695-3.175 1.892v10.125h-5.45v-20.64l5.45-0.445v7.9c1.483-1.363 3.141-2.059 5.279-2.059 3.174 0 5.072 1.641 5.072 4.451z"/>
24 <path d="m139.5 19.783h-11.35c0.379 2.643 1.932 3.365 4.174 3.365 1.484 0 2.795-0.416 4.382-1.308l2.243 2.447c-1.829 1.168-4.176 2.06-7.143 2.06-6.105 0-9.211-3.172-9.211-7.789 0-4.422 3.002-7.928 8.557-7.928 5.242 0 8.451 2.782 8.451 7.566 0.001 0.474-0.033 1.142-0.102 1.587zm-5.244-2.838c-0.034-2.002-0.794-3.394-2.968-3.394-1.793 0-2.896 0.946-3.139 3.589h6.105l0.002-0.195z"/>
25 <path d="m156.78 21.592c0 1.141 0.379 1.557 1.242 1.809l-1.139 2.865c-2.175-0.141-3.589-0.668-4.416-2.143-1.312 1.641-3.348 2.225-5.521 2.225-3.658 0-5.97-1.918-5.97-4.617 0-3.227 3.035-4.979 8.59-4.979h1.863v-0.641c0-1.751-0.861-2.28-3.104-2.28-1.172 0-2.968 0.278-4.795 0.779l-1.242-2.893c2.312-0.695 4.83-1.085 6.899-1.085 5.312 0 7.591 1.808 7.591 5.229l0.002 5.731zm-5.347 0.194v-2.614h-1.346c-2.484 0-3.691 0.695-3.691 2.169 0 1.169 0.793 1.864 2.14 1.864 1.275 0 2.24-0.529 2.897-1.419z"/>
26 </g>
27 </g>
28 <g fill="#b1d579">
29 <path d="m8.155 18.736c-0.086-0.21-0.048-0.579-0.048-0.579l-0.097-8.098h-1.149l0.098 8.398s-0.034 0.455 0.091 0.709c0.125 0.255 0.413 0.599 0.413 0.599l3.491 3.384s0.107 0.122 0.292 0.486l0.001-1.876-2.884-2.702c0 0.002-0.122-0.11-0.208-0.321z"/>
30 <path d="m19.362 23.255c0.088-0.331 0.089-0.608 0.089-0.608l-0.01-2.976h-1.237v3.082s-0.007 0.113-0.069 0.254c-0.063 0.142-0.091 0.173-0.091 0.173l-2.319 2.395h1.569l1.768-1.832c0.001-0.001 0.217-0.17 0.3-0.488z"/>
31 <path d="m12.905 15.81c0.18-0.288 0.437-0.463 0.437-0.463l2.998-3.073s0.511-0.461 0.622-0.782c0.108-0.321 0.045-1.436 0.045-1.436l-0.111-6.44h-1.491l0.077 6.441s0.062 0.514 0 0.726-0.294 0.481-0.294 0.481l-3.137 3.212s-0.638 0.705-0.743 0.934c-0.104 0.228-0.057 1.347-0.057 1.347l-0.003 5.005-0.001 1.876-0.002 1.938h1.479l0.051-8.819c-0.002-0.001-0.048-0.66 0.13-0.947z"/>
32 </g>
33 <g stroke="#b1d579" fill="none" stroke-miterlimit="10">
34 <circle cx="18.723" cy="17.973" r="1.698" stroke-width="1.4318"/>
35 <circle cx="7.454" cy="7.291" r="2.769" stroke-width="1.7898"/>
36 </g>
37 </svg>
@@ -21,6 +21,6 b' syntax: regexp'
21 21 ^kallithea\.db$
22 22 ^test\.db$
23 23 ^Kallithea\.egg-info$
24 ^rc.*\.ini$
24 ^my\.ini$
25 25 ^fabfile.py
26 26 ^\.idea$
@@ -1,6 +1,6 b''
1 =========
2 Kallithea
3 =========
1 ================
2 Kallithea README
3 ================
4 4
5 5 About
6 6 -----
@@ -23,15 +23,12 b' Kallithea was forked from RhodeCode in J'
23 23
24 24 Installation
25 25 ------------
26 Stable releases of Kallithea are best installed via::
27
28 easy_install kallithea
29
30 Or::
26 Official releases of Kallithea can be installed via::
31 27
32 28 pip install kallithea
33 29
34 Detailed instructions and links may be found on the Installation page.
30 The development repository is kept very stable and used in production by the
31 developers - you can do the same.
35 32
36 33 Please visit http://packages.python.org/Kallithea/installation.html for
37 34 more details.
@@ -40,14 +37,10 b' more details.'
40 37 Source code
41 38 -----------
42 39
43 The latest sources can be obtained from https://kallithea-scm.org/repos/kallithea
44
40 The latest sources can be obtained from https://kallithea-scm.org/repos/kallithea.
45 41
46 MIRRORS:
47
48 Issue tracker and sources at Bitbucket_
49
50 https://bitbucket.org/conservancy/kallithea
42 The issue tracker and a repository mirror can be found at Bitbucket_ on
43 https://bitbucket.org/conservancy/kallithea.
51 44
52 45
53 46
@@ -67,7 +60,7 b' Kallithea Features'
67 60 - Users can fork other users repos, and compare them at any time.
68 61 - Built-in versioned paste functionality (Gist) for sharing code snippets.
69 62 - Integrates easily with other systems, with custom created mappers you can connect it to almost
70 any issue tracker, and with an JSON-RPC API you can make much more
63 any issue tracker, and with a JSON-RPC API you can make much more.
71 64 - Built-in commit API lets you add, edit and commit files right from Kallithea
72 65 web interface using simple editor or upload binary files using simple form.
73 66 - Powerful pull request driven review system with inline commenting,
@@ -75,9 +68,9 b' Kallithea Features'
75 68 - Importing and syncing repositories from remote locations for Git_, Mercurial_ and Subversion.
76 69 - Mako templates let you customize the look and feel of the application.
77 70 - Beautiful diffs, annotations and source code browsing all colored by pygments.
78 Raw diffs are made in Git-diff format for both VCS systems, including Git_ binary-patches
71 Raw diffs are made in Git-diff format for both VCS systems, including Git_ binary-patches.
79 72 - Mercurial_ and Git_ DAG graphs and Flot-powered graphs with zooming and statistics
80 to track activity for repositories
73 to track activity for repositories.
81 74 - Admin interface with user/permission management. Admin activity journal, logs
82 75 pulls, pushes, forks, registrations and other actions made by all users.
83 76 - Server side forks. It is possible to fork a project and modify it freely
@@ -85,69 +78,68 b' Kallithea Features'
85 78 - reST and Markdown README support for repositories.
86 79 - Full text search powered by Whoosh on the source files, commit messages, and file names.
87 80 Built-in indexing daemons, with optional incremental index build
88 (no external search servers required all in one application)
81 (no external search servers required all in one application).
89 82 - Setup project descriptions/tags and info inside built in DB for easy,
90 83 non-filesystem operations.
91 84 - Intelligent cache with invalidation after push or project change, provides
92 85 high performance and always up to date data.
93 - RSS/Atom feeds, Gravatar support, downloadable sources as zip/tar/gz
94 - Optional async tasks for speed and performance using Celery_
86 - RSS/Atom feeds, Gravatar support, downloadable sources as zip/tar/gz.
87 - Optional async tasks for speed and performance using Celery_.
95 88 - Backup scripts can do backup of whole app and send it over scp to desired
96 location
97 - Based on Pylons, SQLAlchemy, SQLite, Whoosh, vcs
98
99
100 Incoming / Plans
101 ----------------
89 location.
90 - Based on Pylons, SQLAlchemy, SQLite, Whoosh, vcs.
102 91
103 - Finer granular permissions per branch, or subrepo
104 - Web-based merges for pull requests
105 - Tracking history for each lines in files
106 - Simple issue tracker
107 - SSH-based authentication with server side key management
108 - Commit based built in wiki system
109 - More statistics and graph (global annotation + some more statistics)
110 - Other advancements as development continues (or you can of course make
111 additions and or requests)
112 92
113 93 License
114 94 -------
115 95
116 ``Kallithea`` is released under the GPLv3 license.
96 ``Kallithea`` is released under the GPLv3 license. ``Kallithea`` is a
97 `Software Freedom Conservancy`_ project and thus controlled by a non-profit organization.
98 No commercial entity can take ownership of the project and change the direction.
99
100 Kallithea started out as an effort to make sure the existing GPLv3 codebase would stay
101 available under a legal license. Kallithea thus has to stay GPLv3 compatible ...
102 but we are also happy it is GPLv3 and happy to keep it that way.
103 A different license (such as AGPL) could perhaps help attract a different community
104 with a different mix of Free Software people and companies but we are happy with the current focus.
117 105
118 106
119 Getting help
120 ------------
107 Community
108 ---------
109
110 ``Kallithea`` is maintained by its users who contribute the fixes they would like to see.
111
112 Get in touch with the rest of the community:
121 113
122 Listed bellow are various support resources that should help.
114 - Join the mailing list users and developers - see
115 http://lists.sfconservancy.org/mailman/listinfo/kallithea-general.
116
117 - Use IRC and join #kallithea on FreeNode (irc.freenode.net)
118 or use http://webchat.freenode.net/?channels=kallithea.
119
120 - Follow ``Kallithea`` on Twitter, **@KallitheaSCM**.
121
122 - Issues can be reported at `issue tracker <https://bitbucket.org/conservancy/kallithea/issues>`_.
123 123
124 124 .. note::
125 125
126 126 Please try to read the documentation before posting any issues, especially
127 127 the **troubleshooting section**
128 128
129 - Open an issue at `issue tracker <https://bitbucket.org/conservancy/kallithea/issues>`_
130
131 - Join #kallithea on FreeNode (irc.freenode.net)
132 or use http://webchat.freenode.net/?channels=kallithea for web access to irc.
133
134 You can follow this project on Twitter, **@KallitheaSCM**.
135
136 129
137 130 Online documentation
138 131 --------------------
139 132
140 Online documentation for the current version of Kallithea is available at
141 - http://packages.python.org/Kallithea/
142 - http://kallithea.readthedocs.org/
133 Online documentation for the current version of Kallithea is available at https://pythonhosted.org/Kallithea/.
134 Documentation for the current development version can be found on http://kallithea.readthedocs.org/.
143 135
144 You may also build the documentation for yourself: go into ``docs/`` and run::
136 You can also build the documentation locally: go to ``docs/`` and run::
145 137
146 138 make html
147 139
148 140 (You need to have Sphinx_ installed to build the documentation. If you don't
149 141 have Sphinx_ installed you can install it via the command:
150 ``easy_install sphinx``)
142 ``pip install sphinx``)
151 143
152 144
153 145 Converting from RhodeCode
@@ -160,7 +152,7 b' Currently, you have two options for work'
160 152 Maintaining Interoperability
161 153 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
162 154
163 Interoperability with RhodeCode 2.2.5 installations is provided so you don't
155 Interoperability with RhodeCode 2.2.X installations is provided so you don't
164 156 have to immediately commit to switching to Kallithea. This option will most
165 157 likely go away once the two projects have diverged significantly.
166 158
@@ -173,7 +165,7 b' This location will depend on where you i'
173 165 python setup.py install
174 166
175 167 then you will find this location at
176 ``$VIRTUAL_ENV/lib/python2.7/site-packages/Kallithea-2.2.5-py2.7.egg/kallithea``
168 ``$VIRTUAL_ENV/lib/python2.7/site-packages/Kallithea-0.1-py2.7.egg/kallithea``.
177 169
178 170 One-time Conversion
179 171 ~~~~~~~~~~~~~~~~~~~
@@ -188,10 +180,10 b' database, using the database string you '
188 180 pip install sqlalchemy-migrate
189 181 python kallithea/bin/rebranddb.py sqlite:///kallithea.db
190 182
191 .. WARNING::
183 .. Note::
192 184
193 If you used the other method for interoperability, overwrite brand.py with
194 an empty file (or watch out for stray brand.pyc after removing brand.py).
185 If you started out using the branding interoperability approach mentioned
186 above, watch out for stray brand.pyc after removing brand.py.
195 187
196 188 .. _virtualenv: http://pypi.python.org/pypi/virtualenv
197 189 .. _Python: http://www.python.org/
@@ -203,3 +195,4 b' database, using the database string you '
203 195 .. _Git: http://git-scm.com/
204 196 .. _Celery: http://celeryproject.org/
205 197 .. _vcs: http://pypi.python.org/pypi/vcs
198 .. _Software Freedom Conservancy: http://sfconservancy.org/
@@ -10,7 +10,7 b' methods. Everything is available by send'
10 10 <your_server>/_admin/api .
11 11
12 12
13 API ACCESS FOR WEB VIEWS
13 API access for web views
14 14 ++++++++++++++++++++++++
15 15
16 16 API access can also be turned on for each web view in Kallithea that is
@@ -36,7 +36,7 b' Exposing raw diffs is a good way to inte'
36 36 3rd party services like code review, or build farms that could download archives.
37 37
38 38
39 API ACCESS
39 API access
40 40 ++++++++++
41 41
42 42 Clients must send JSON encoded JSON-RPC requests::
@@ -75,7 +75,7 b' the reponse will have a failure descript'
75 75 *result* will be null.
76 76
77 77
78 API CLIENT
78 API client
79 79 ++++++++++
80 80
81 81 Kallithea comes with a `kallithea-api` command line tool providing a convenient
@@ -109,7 +109,7 b' This will create a `~/.config/kallithea`'
109 109 so you don't have to specify them every time.
110 110
111 111
112 API METHODS
112 API methods
113 113 +++++++++++
114 114
115 115
@@ -4,40 +4,54 b''
4 4 Contributing to Kallithea
5 5 =========================
6 6
7 If you would like to contribute to Kallithea, please contact us, any help is
8 greatly appreciated!
7 Kallithea is developed and maintained by its users. Please join us and scratch
8 your own itch.
9
10
11 Infrastructure
12 --------------
13
14 The main repository is hosted at Our Own Kallithea (aka OOK) on
15 https://kallithea-scm.org/repos/kallithea/ (which is our self-hosted instance
16 of Kallithea).
9 17
10 Could I request that you make your source contributions by first forking the
11 Kallithea repository on bitbucket_
12 https://bitbucket.org/conservancy/kallithea and then make your changes to
13 your forked repository. Please post all fixes into **dev** bookmark since your
14 change might be already fixed there and i try to merge all fixes from dev into
15 stable, and not the other way. Finally, when you are finished with your changes,
16 please send us a pull request.
18 For now, we use Bitbucket_ for `Pull Requests`_ and `Issue Tracker`_ services. The
19 issue tracker is for tracking bugs, not for "support", discussion or ideas -
20 please use the `mailing list`_ to reach the community.
17 21
18 To run Kallithea in a development version you always need to install the latest
19 required libs. Simply clone Kallithea and switch to beta branch::
22 We use Weblate_ to translate the user interface messages into languages other
23 than English. Join our project on `Hosted Weblate`_ to help us.
24 To register, you can use your Bitbucket or GitHub account.
25
26
27 Getting started
28 ---------------
29
30 To get started with development::
20 31
21 32 hg clone https://kallithea-scm.org/repos/kallithea
22
23 after downloading/pulling Kallithea make sure you run::
24
33 cd kallithea
34 virtualenv ../kallithea-venv
35 source ../kallithea-venv/bin/activate
25 36 python setup.py develop
37 paster make-config Kallithea my.ini
38 paster setup-db my.ini --user=user --email=user@example.com --password=password --repos=/tmp
39 paster serve my.ini --reload &
40 firefox http://127.0.0.1:5000/
26 41
27 command to install/verify all required packages, and prepare development
28 enviroment.
42 You can also start out by forking https://bitbucket.org/conservancy/kallithea
43 on Bitbucket_ and create a local clone of your own fork.
44
29 45
30 There are two files in the directory production.ini and developement.ini copy
31 the `development.ini` file as rc.ini (which is excluded from version controll)
32 and put all your changes like db connection or server port in there.
46 Running tests
47 -------------
33 48
34 After finishing your changes make sure all tests passes ok. You can run
49 After finishing your changes make sure all tests pass cleanly. You can run
35 50 the testsuite running ``nosetest`` from the project root, or if you use tox
36 51 run tox for python2.6-2.7 with multiple database test. When using `nosetests`
37 52 test.ini file is used and by default it uses sqlite for tests, edit this file
38 53 to change your testing enviroment.
39 54
40
41 55 There's a special set of tests for push/pull operations, you can runn them using::
42 56
43 57 paster serve test.ini --pid-file=test.pid --daemon
@@ -45,7 +59,102 b" There's a special set of tests for push/"
45 59 kill -9 $(cat test.pid)
46 60
47 61
48 | Thank you for any contributions!
62 Coding/contribution guidelines
63 ------------------------------
64
65 Kallithea is GPLv3 and we assume all contributions are made by the
66 committer/contributor and under GPLv3 unless explicitly stated. We do care a
67 lot about preservation of copyright and license information for existing code
68 that is brought into the project.
69
70 We don't have a formal coding/formatting standard. We are currently using a mix
71 of Mercurial (http://mercurial.selenic.com/wiki/CodingStyle), pep8, and
72 consistency with existing code. Run whitespacecleanup.sh to avoid stupid
73 whitespace noise in your patches.
74
75 We support both Python 2.6.x and 2.7.x and nothing else. For now we don't care
76 about Python 3 compatibility.
77
78 We try to support the most common modern web browsers. IE8 is still supported
79 to the extent it is feasible but we may stop supporting it very soon.
80
81 We primarily support Linux and OS X on the server side but Windows should also work.
82
83 Html templates should use 2 spaces for indentation ... but be pragmatic. We
84 should use templates cleverly and avoid duplication. We should use reasonable
85 semantic markup with classes and ids that can be used for styling and testing.
86 We should only use inline styles in places where it really is semantic (such as
87 display:none).
88
89 JavaScript must use ';' between/after statements. Indentation 4 spaces. Inline
90 multiline functions should be indented two levels - one for the () and one for
91 {}. jQuery value arrays should have a leading $.
92
93 Commit messages should have a leading short line summarizing the changes. For
94 bug fixes, put "(Issue #123)" at the end of this line.
95
96 Contributions will be accepted in most formats - such as pull requests on
97 bitbucket, something hosted on your own Kallithea instance, or patches sent by
98 mail to the kallithea-general mailing list.
99
100 Make sure to test your changes both manually and with the automatic tests
101 before posting.
102
103 We care about quality and review and keeping a clean repository history. We
104 might give feedback that requests polishing contributions until they are
105 "perfect". We might also rebase and collapse and make minor adjustments to your
106 changes when we apply them.
107
108 We try to make sure we have consensus on the direction the project is taking.
109 Everything non-sensitive should be discussed in public - preferably on the
110 mailing list. We aim at having all non-trivial changes reviewed by at least
111 one other core developer before pushing. Obvious non-controversial changes will
112 be handled more casually.
113
114 For now we just have one official branch ("default") and will keep it so stable
115 that it can be (and is) used in production. Experimental changes should live
116 elsewhere (for example in a pull request) until they are ready.
49 117
50 118
119 "Roadmap"
120 ---------
121
122 We do not have a road map but are waiting for your contributions. Here are some
123 ideas of places we might want to go - contributions in these areas are very
124 welcome:
125
126 * Front end:
127 * kill YUI - more jQuery
128 * remove other dependencies - especially the embedded cut'n'pasted ones
129 * remove hardcoded styling in templates, make markup more semantic while moving all styling to css
130 * switch to bootstrap or some other modern UI library and cleanup of style.css and contextbar.css
131 * new fancy style that looks good
132 * testing
133 * better test coverage with the existing high level test framework
134 * test even more high level and javascript - selenium/robot and splinter seems like the top candidates
135 * more unit testing
136 * code cleanup
137 * move code from templates to controllers and from controllers to libs or models
138 * more best practice for web apps and the frameworks
139 * features
140 * relax dependency version requirements after thorough testing
141 * support for evolve
142 * updates of PRs ... while preserving history and comment context
143 * auto pr merge/rebase
144 * ssh
145 * bitbucket compatible wiki
146 * realtime preview / wysiwyg when editing comments and files
147 * make journal more useful - filtering on branches and files
148 * community mode with self registration and personal space
149 * improve documentation
150
151 Thank you for your contribution!
152 --------------------------------
153
154
155 .. _Weblate: http://weblate.org/
156 .. _Issue Tracker: https://bitbucket.org/conservancy/kallithea/issues?status=new&status=open
157 .. _Pull Requests: https://bitbucket.org/conservancy/kallithea/pull-requests
51 158 .. _bitbucket: http://bitbucket.org/
159 .. _mailing list: http://lists.sfconservancy.org/mailman/listinfo/kallithea-general
160 .. _Hosted Weblate: https://hosted.weblate.org/projects/kallithea/kallithea/
@@ -1,17 +1,21 b''
1 1 .. _index:
2 2
3 .. include:: ./../README.rst
3 Administrators Guide
4 --------------------
5
6 **Readme**
4 7
5 Users Guide
6 -----------
8 .. toctree::
9 :maxdepth: 1
7 10
8 **Installation:**
11 readme
12
13 **Installation**
9 14
10 15 .. toctree::
11 16 :maxdepth: 1
12 17
13 18 installation
14 upgrade
15 19 installation_win
16 20 installation_win_old
17 21 installation_iis
@@ -4,69 +4,42 b''
4 4 Installation on Unix/Linux
5 5 ==========================
6 6
7 ``Kallithea`` is written entirely in Python. Before posting any issues make
8 sure, your not missing any system libraries and using right version of
9 libraries required by Kallithea. There's also restriction in terms of mercurial
10 clients. Minimal version of hg client known working fine with Kallithea is
11 **1.6**. If you're using older client, please upgrade.
7 ``Kallithea`` is written entirely in Python. Kallithea requires Python version
8 2.6 or higher.
9
10 .. Note:: Alternative very detailed installation instructions for Ubuntu Server
11 with celery, indexer and daemon scripts: https://gist.github.com/4546398
12 12
13 13
14 Installing Kallithea from PyPI (aka "Cheeseshop")
15 -------------------------------------------------
16
17 Kallithea requires python version 2.6 or higher.
14 Installing Kallithea from Python Package Index (PyPI)
15 -----------------------------------------------------
18 16
19 The easiest way to install ``kallithea`` is to run::
20
21 easy_install kallithea
22
23 Or::
17 ``Kallithea`` can be installed from PyPI with::
24 18
25 19 pip install kallithea
26 20
27 If you prefer to install Kallithea manually simply grab latest release from
28 http://pypi.python.org/pypi/Kallithea, decompress the archive and run::
29 21
30 python setup.py install
31
32 Step by step installation example for Windows
33 ---------------------------------------------
34
35 :ref:`installation_win`
36
22 Installation in virtualenv
23 --------------------------
37 24
38 Step by step installation example for Linux
39 -------------------------------------------
40
25 It is highly recommended to use a separate virtualenv_ for installing Kallithea.
26 This way, all libraries required by Kallithea will be installed separately from your
27 main Python installation and things will be less problematic when upgrading the
28 system or Kallithea.
29 An additional benefit of virtualenv_ is that it doesn't require root privileges.
41 30
42 For installing Kallithea i highly recommend using separate virtualenv_. This
43 way many required by Kallithea libraries will remain sandboxed from your main
44 python and making things less problematic when doing system python updates.
45
46 Alternative very detailed installation instructions for Ubuntu Server with
47 celery, indexer and daemon scripts: https://gist.github.com/4546398
48
49
50 - Assuming you have installed virtualenv_ create a new virtual environment
31 - Assuming you have installed virtualenv_, create a new virtual environment
51 32 using virtualenv command::
52 33
53 virtualenv --no-site-packages /opt/kallithea-venv
34 virtualenv /srv/kallithea/venv
54 35
36 .. note:: Older versions of virtualenv required ``--no-site-packages`` to work
37 correctly. It should no longer be necessary.
55 38
56 .. note:: Using ``--no-site-packages`` when generating your
57 virtualenv is **very important**. This flag provides the necessary
58 isolation for running the set of packages required by
59 Kallithea. If you do not specify ``--no-site-packages``,
60 it's possible that Kallithea will not install properly into
61 the virtualenv, or, even if it does, may not run properly,
62 depending on the packages you've already got installed into your
63 Python's "main" site-packages dir.
39 - this will install new virtualenv_ into `/srv/kallithea/venv`.
40 - Activate the virtualenv_ in your current shell session by running::
64 41
65
66 - this will install new virtualenv_ into `/opt/kallithea-venv`.
67 - Activate the virtualenv_ by running::
68
69 source /opt/kallithea-venv/bin/activate
42 source /srv/kallithea/venv/bin/activate
70 43
71 44 .. note:: If you're using UNIX, *do not* use ``sudo`` to run the
72 45 ``virtualenv`` script. It's perfectly acceptable (and desirable)
@@ -75,19 +48,20 b' celery, indexer and daemon scripts: http'
75 48 - Make a folder for Kallithea data files, and configuration somewhere on the
76 49 filesystem. For example::
77 50
78 mkdir /opt/kallithea
79
51 mkdir /srv/kallithea
80 52
81 53 - Go into the created directory run this command to install kallithea::
82 54
83 easy_install kallithea
84
85 or::
86
87 55 pip install kallithea
88 56
57 Alternatively, download a .tar.gz from http://pypi.python.org/pypi/Kallithea,
58 extract it and run::
59
60 python setup.py install
61
89 62 - This will install Kallithea together with pylons and all other required
90 python libraries into activated virtualenv
63 python libraries into the activated virtualenv.
64
91 65
92 66 Requirements for Celery (optional)
93 67 ----------------------------------
@@ -121,9 +95,103 b' http://ask.github.com/celery/getting-sta'
121 95 This is a very nice tutorial on how to start using celery_ with rabbitmq_
122 96
123 97
124 You can now proceed to :ref:`setup`
125 -----------------------------------
98 Next
99 ----
100
101 You can now proceed to :ref:`setup`.
102
103
104 Upgrading Kallithea from Python Package Index (PyPI)
105 -----------------------------------------------------
106
107 .. note::
108 Firstly, it is recommended that you **always** perform a database and
109 configuration backup before doing an upgrade.
110
111 (These directions will use '{version}' to note that this is the version of
112 Kallithea that these files were used with. If backing up your Kallithea
113 instance from version 0.1 to 0.2, the ``my.ini`` file could be
114 backed up to ``my.ini.0-1``.)
115
116
117 If using a sqlite database, stop the Kallithea process/daemon/service, and
118 then make a copy of the database file::
119
120 service kallithea stop
121 cp kallithea.db kallithea.db.{version}
122
123
124 Back up your configuration file::
125
126 cp my.ini my.ini.{version}
127
128
129 Ensure that you are using the Python Virtual Environment that you'd originally
130 installed Kallithea in::
131
132 pip freeze
133
134 will list all packages installed in the current environment. If Kallithea
135 isn't listed, change virtual environments to your venv location::
136
137 source /srv/kallithea/venv/bin/activate
138
139
140 Once you have verified the environment you can upgrade ``Kallithea`` with::
141
142 pip install --upgrade kallithea
143
144
145 Then run the following command from the installation directory::
126 146
147 paster make-config Kallithea my.ini
148
149 This will display any changes made by the new version of Kallithea to your
150 current configuration. It will try to perform an automerge. It's recommended
151 that you re-check the content after the automerge.
152
153 .. note::
154 Please always make sure your .ini files are up to date. Often errors are
155 caused by missing params added in new versions.
156
157
158 It is also recommended that you rebuild the whoosh index after upgrading since
159 the new whoosh version could introduce some incompatible index changes. Please
160 read the changelog to see if there were any changes to whoosh.
161
162
163 The final step is to upgrade the database. To do this simply run::
164
165 paster upgrade-db my.ini
166
167 This will upgrade the schema and update some of the defaults in the database,
168 and will always recheck the settings of the application, if there are no new
169 options that need to be set.
170
171
172 .. note::
173 DB schema upgrade library has some limitations and can sometimes fail if you try to
174 upgrade from older major releases. In such case simply run upgrades sequentially, eg.
175 upgrading from 0.1.X to 0.3.X should be done like that: 0.1.X. > 0.2.X > 0.3.X
176 You can always specify what version of Kallithea you want to install for example in pip
177 `pip install Kallithea==0.2`
178
179 You may find it helpful to clear out your log file so that new errors are
180 readily apparent::
181
182 echo > kallithea.log
183
184 Once that is complete, you may now start your upgraded Kallithea Instance::
185
186 service kallithea start
187
188 Or::
189
190 paster serve /srv/kallithea/my.ini
191
192 .. note::
193 If you're using Celery, make sure you restart all instances of it after
194 upgrade.
127 195
128 196
129 197 .. _virtualenv: http://pypi.python.org/pypi/virtualenv
@@ -71,6 +71,7 b' If it was not installed or if you are us'
71 71 - Go to https://bootstrap.pypa.io
72 72 - Right-click on get-pip.py and choose Saves as...
73 73 - Run "python get-pip.py" in the folder where you downloaded get-pip.py (may require admin access).
74
74 75 (See http://stackoverflow.com/questions/4750806/how-to-install-pip-on-windows for explanations or alternatives)
75 76
76 77 Note that pip.exe will be placed inside your Python installation's Scripts folder, which is likely not on your path.
@@ -11,22 +11,22 b' Setting up Kallithea'
11 11 First, you will need to create a Kallithea configuration file. Run the
12 12 following command to do this::
13 13
14 paster make-config Kallithea production.ini
14 paster make-config Kallithea my.ini
15 15
16 - This will create the file `production.ini` in the current directory. This
16 - This will create the file `my.ini` in the current directory. This
17 17 configuration file contains the various settings for Kallithea, e.g proxy
18 18 port, email settings, usage of static files, cache, celery settings and
19 19 logging.
20 20
21 21
22 Next, you need to create the databases used by Kallithea. I recommend that you
22 Next, you need to create the databases used by Kallithea. It is recommended to
23 23 use postgresql or sqlite (default). If you choose a database other than the
24 default ensure you properly adjust the db url in your production.ini
24 default ensure you properly adjust the db url in your my.ini
25 25 configuration file to use this other database. Kallithea currently supports
26 26 postgresql, sqlite and mysql databases. Create the database by running
27 27 the following command::
28 28
29 paster setup-db production.ini
29 paster setup-db my.ini
30 30
31 31 This will prompt you for a "root" path. This "root" path is the location where
32 32 Kallithea will store all of its repositories on the current machine. After
@@ -36,7 +36,7 b' up for you.'
36 36
37 37 setup process can be fully automated, example for lazy::
38 38
39 paster setup-db production.ini --user=nn --password=secret --email=nn@your.kallithea.server --repos=/home/nn/my_repos
39 paster setup-db my.ini --user=nn --password=secret --email=nn@your.kallithea.server --repos=/srv/repos
40 40
41 41
42 42 - The ``setup-db`` command will create all of the needed tables and an
@@ -52,22 +52,22 b' setup process can be fully automated, ex'
52 52
53 53 You are now ready to use Kallithea, to run it simply execute::
54 54
55 paster serve production.ini
55 paster serve my.ini
56 56
57 57 - This command runs the Kallithea server. The web app should be available at the
58 127.0.0.1:5000. This ip and port is configurable via the production.ini
58 127.0.0.1:5000. This ip and port is configurable via the my.ini
59 59 file created in previous step
60 60 - Use the admin account you created above when running ``setup-db``
61 61 to login to the web app.
62 62 - The default permissions on each repository is read, and the owner is admin.
63 63 Remember to update these if needed.
64 - In the admin panel you can toggle ldap, anonymous, permissions settings. As
64 - In the admin panel you can toggle LDAP, anonymous, permissions settings. As
65 65 well as edit more advanced options on users and repositories
66 66
67 67 Optionally users can create `rcextensions` package that extends Kallithea
68 68 functionality. To do this simply execute::
69 69
70 paster make-rcext production.ini
70 paster make-rcext my.ini
71 71
72 72 This will create `rcextensions` package in the same place that your `ini` file
73 73 lives. With `rcextensions` it's possible to add additional mapping for whoosh,
@@ -96,10 +96,10 b' login accounts have the correct permissi'
96 96 using the Kallithea web interface.)
97 97
98 98 If your main directory (the same as set in Kallithea settings) is for example
99 set to **/home/hg** and the repository you are using is named `kallithea`, then
99 set to **/srv/repos** and the repository you are using is named `kallithea`, then
100 100 to clone via ssh you should run::
101 101
102 hg clone ssh://user@server.com/home/hg/kallithea
102 hg clone ssh://user@server.com//srv/repos/kallithea
103 103
104 104 Using other external tools such as mercurial-server_ or using ssh key based
105 105 authentication is fully supported.
@@ -112,12 +112,12 b' permissions against that.'
112 112 Setting up Whoosh full text search
113 113 ----------------------------------
114 114
115 Starting from version 1.1 the whoosh index can be build by using the paster
115 The whoosh index can be build by using the paster
116 116 command ``make-index``. To use ``make-index`` you must specify the configuration
117 117 file that stores the location of the index. You may specify the location of the
118 118 repositories (`--repo-location`). If not specified, this value is retrieved
119 from the Kallithea database. This was required prior to 1.2. Starting from
120 version 1.2 it is also possible to specify a comma separated list of
119 from the Kallithea database.
120 It is also possible to specify a comma separated list of
121 121 repositories (`--index-only`) to build index only on chooses repositories
122 122 skipping any other found in repos location
123 123
@@ -126,23 +126,23 b' the `-f` option, indexing will run alway'
126 126
127 127 For an incremental index build use::
128 128
129 paster make-index production.ini
129 paster make-index my.ini
130 130
131 131 For a full index rebuild use::
132 132
133 paster make-index production.ini -f
133 paster make-index my.ini -f
134 134
135 135
136 136 building index just for chosen repositories is possible with such command::
137 137
138 paster make-index production.ini --index-only=vcs,kallithea
138 paster make-index my.ini --index-only=vcs,kallithea
139 139
140 140
141 141 In order to do periodical index builds and keep your index always up to date.
142 142 It's recommended to do a crontab entry for incremental indexing.
143 143 An example entry might look like this::
144 144
145 /path/to/python/bin/paster make-index /path/to/kallithea/production.ini
145 /path/to/python/bin/paster make-index /path/to/kallithea/my.ini
146 146
147 147 When using incremental mode (the default) whoosh will check the last
148 148 modification date of each file and add it to be reindexed if a newer file is
@@ -156,25 +156,19 b' or in the admin panel you can check `bui'
156 156 Setting up LDAP support
157 157 -----------------------
158 158
159 Kallithea starting from version 1.1 supports ldap authentication. In order
159 Kallithea supports LDAP authentication. In order
160 160 to use LDAP, you have to install the python-ldap_ package. This package is
161 161 available via pypi, so you can install it by running
162 162
163 using easy_install::
164
165 easy_install python-ldap
166
167 using pip::
168
169 163 pip install python-ldap
170 164
171 165 .. note::
172 166 python-ldap requires some certain libs on your system, so before installing
173 167 it check that you have at least `openldap`, and `sasl` libraries.
174 168
175 LDAP settings are located in admin->ldap section,
169 LDAP settings are located in Admin->LDAP section.
176 170
177 Here's a typical ldap setup::
171 Here's a typical LDAP setup::
178 172
179 173 Connection settings
180 174 Enable LDAP = checked
@@ -241,7 +235,7 b' Connection Security : required'
241 235 Plain non encrypted connection
242 236
243 237 LDAPS connection
244 Enable ldaps connection. It will likely require `Port`_ to be set to
238 Enable LDAPS connections. It will likely require `Port`_ to be set to
245 239 a different value (standard LDAPS port is 636). When LDAPS is enabled
246 240 then `Certificate Checks`_ is required.
247 241
@@ -338,7 +332,7 b' Email Attribute : required'
338 332 The LDAP record attribute which represents the user's email address.
339 333
340 334 If all data are entered correctly, and python-ldap_ is properly installed
341 users should be granted access to Kallithea with ldap accounts. At this
335 users should be granted access to Kallithea with LDAP accounts. At this
342 336 time user information is copied from LDAP into the Kallithea user database.
343 337 This means that updates of an LDAP user object may not be reflected as a
344 338 user update in Kallithea.
@@ -417,7 +411,7 b' reverse-proxy setup with basic auth::'
417 411
418 412 AuthType Basic
419 413 AuthName "Kallithea authentication"
420 AuthUserFile /home/web/kallithea/.htpasswd
414 AuthUserFile /srv/kallithea/.htpasswd
421 415 require valid-user
422 416
423 417 RequestHeader unset X-Forwarded-User
@@ -491,18 +485,18 b' can be found at *kallithea.lib.hooks*.'
491 485 Changing default encoding
492 486 -------------------------
493 487
494 By default Kallithea uses utf8 encoding, starting from 1.3 series this
495 can be changed, simply edit default_encoding in .ini file to desired one.
496 This affects many parts in Kallithea including committers names, filenames,
488 By default, Kallithea uses utf8 encoding.
489 It is configurable as `default_encoding` in the .ini file.
490 This affects many parts in Kallithea including user names, filenames, and
497 491 encoding of commit messages. In addition Kallithea can detect if `chardet`
498 492 library is installed. If `chardet` is detected Kallithea will fallback to it
499 493 when there are encode/decode errors.
500 494
501 495
502 Setting Up Celery
503 -----------------
496 Celery configuration
497 --------------------
504 498
505 Since version 1.1 celery is configured by the Kallithea ini configuration files.
499 Celery is configured in the Kallithea ini configuration files.
506 500 Simply set use_celery=true in the ini file then add / change the configuration
507 501 variables inside the ini file.
508 502
@@ -537,7 +531,7 b' Nginx virtual host example'
537 531
538 532 Sample config for nginx using proxy::
539 533
540 upstream rc {
534 upstream kallithea {
541 535 server 127.0.0.1:5000;
542 536 # add more instances for load balancing
543 537 #server 127.0.0.1:5001;
@@ -586,11 +580,11 b' Sample config for nginx using proxy::'
586 580 #root /path/to/installation/kallithea/public;
587 581 include /etc/nginx/proxy.conf;
588 582 location / {
589 try_files $uri @rhode;
583 try_files $uri @kallithea;
590 584 }
591 585
592 location @rhode {
593 proxy_pass http://rc;
586 location @kallithea {
587 proxy_pass http://kallithea;
594 588 }
595 589
596 590 }
@@ -699,50 +693,66 b" that, you'll need to:"
699 693
700 694 Here is a sample excerpt from an Apache Virtual Host configuration file::
701 695
702 WSGIDaemonProcess pylons \
703 threads=4 \
704 python-path=/home/web/kallithea/pyenv/lib/python2.7/site-packages
705 WSGIScriptAlias / /home/web/kallithea/dispatch.wsgi
696 WSGIDaemonProcess kallithea \
697 processes=1 threads=4 \
698 python-path=/srv/kallithea/pyenv/lib/python2.7/site-packages
699 WSGIScriptAlias / /srv/kallithea/dispatch.wsgi
706 700 WSGIPassAuthorization On
707 701
702 Or if using a dispatcher wsgi script with proper virtualenv activation::
703
704 WSGIDaemonProcess kallithea processes=1 threads=4
705 WSGIScriptAlias / /srv/kallithea/dispatch.wsgi
706 WSGIPassAuthorization On
707
708
708 709 .. note::
709 when running apache as root please add: `user=www-data group=www-data`
710 into above configuration
710 When running apache as root, please make sure it doesn't run Kallithea as
711 root, for examply by adding: `user=www-data group=www-data` to the configuration.
711 712
712 713 .. note::
713 Running Kallithea in multiprocess mode in apache is not supported,
714 make sure you don't specify `processes=num` directive in the config
714 If running Kallithea in multiprocess mode,
715 make sure you set `instance_id = \*` in the configuration so each process
716 gets it's own cache invalidationkey.
715 717
716 718
717 719 Example wsgi dispatch script::
718 720
719 721 import os
720 722 os.environ["HGENCODING"] = "UTF-8"
721 os.environ['PYTHON_EGG_CACHE'] = '/home/web/kallithea/.egg-cache'
723 os.environ['PYTHON_EGG_CACHE'] = '/srv/kallithea/.egg-cache'
722 724
723 725 # sometimes it's needed to set the curent dir
724 os.chdir('/home/web/kallithea/')
726 os.chdir('/srv/kallithea/')
725 727
726 728 import site
727 site.addsitedir("/home/web/kallithea/pyenv/lib/python2.7/site-packages")
729 site.addsitedir("/srv/kallithea/pyenv/lib/python2.7/site-packages")
728 730
729 731 from paste.deploy import loadapp
730 732 from paste.script.util.logging_config import fileConfig
731 733
732 fileConfig('/home/web/kallithea/production.ini')
733 application = loadapp('config:/home/web/kallithea/production.ini')
734 fileConfig('/srv/kallithea/my.ini')
735 application = loadapp('config:/srv/kallithea/my.ini')
736
737 Or using proper virtualenv activation::
738
739 activate_this = '/srv/kallithea/venv/bin/activate_this.py'
740 execfile(activate_this,dict(__file__=activate_this))
734 741
735 Note: when using mod_wsgi you'll need to install the same version of
736 Mercurial that's inside Kallithea's virtualenv also on the system's Python
737 environment.
742 import os
743 os.environ['HOME'] = '/srv/kallithea'
744
745 ini = '/srv/kallithea/kallithea.ini'
746 from paste.script.util.logging_config import fileConfig
747 fileConfig(ini)
748 from paste.deploy import loadapp
749 application = loadapp('config:' + ini)
738 750
739 751
740 752 Other configuration files
741 753 -------------------------
742 754
743 Some example init.d scripts can be found in init.d directory::
744
745 https://kallithea-scm.org/repos/kallithea/files/tip/init.d/
755 Some example init.d scripts can be found in init.d directory: https://kallithea-scm.org/repos/kallithea/files/tip/init.d/
746 756
747 757 .. _virtualenv: http://pypi.python.org/pypi/virtualenv
748 758 .. _python: http://www.python.org/
@@ -752,4 +762,3 b' Some example init.d scripts can be found'
752 762 .. _python-ldap: http://www.python-ldap.org/
753 763 .. _mercurial-server: http://www.lshift.net/mercurial-server.html
754 764 .. _PublishingRepositories: http://mercurial.selenic.com/wiki/PublishingRepositories
755 .. _Issues tracker: https://bitbucket.org/conservancy/kallithea/issues
@@ -1,6 +1,9 b''
1 1 {% extends "basic/layout.html" %}
2 2
3 3 {% block sidebarlogo %}
4 <div style="text-align:center;margin:10px;padding:20px;background:white">
5 <img src="{{pathto('_static/kallithea-logo.svg',1)}}"/>
6 </div>
4 7 <h3>Support Kallithea development</h3>
5 8 <div style="text-align:center">
6 9 <form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
@@ -9,7 +9,7 b' possibly debug them.'
9 9
10 10 ** First make sure you're using the latest version available.**
11 11
12 enable detailed debug
12 Enable detailed debug
13 13 ---------------------
14 14
15 15 Kallithea uses standard python logging modules to log it's output.
@@ -19,7 +19,7 b' This change will allow to see much more '
19 19 console. This generally helps a lot to track issues.
20 20
21 21
22 enable interactive debug mode
22 Enable interactive debug mode
23 23 -----------------------------
24 24
25 25 To enable interactive debug mode simply comment out `set debug = false` in
@@ -16,7 +16,7 b' delete a repository You can easy restore'
16 16 from the repository name, and internal repository storage (.hg/.git). There
17 17 is also a special command for cleaning such archived repos::
18 18
19 paster cleanup-repos --older-than=30d production.ini
19 paster cleanup-repos --older-than=30d my.ini
20 20
21 21 This command will scan for archived repositories that are older than 30d,
22 22 display them and ask if you want to delete them (there's a --dont-ask flag also)
@@ -5,24 +5,18 b' GIT support'
5 5 ===========
6 6
7 7
8 Git support in Kallithea 1.3 was enabled by default. You need to have a git
9 client installed on the machine to make git fully work.
8 Kallithea Git support is enabled by default. You just need a git
9 command line client installed on the server to make Git work fully.
10 10
11 Although There is one limitation on git usage.
12
13 - large pushes requires a http server with chunked encoding support.
11 Web server with chunked encoding
12 --------------------------------
14 13
15 if you plan to use git you need to run Kallithea with some
16 http server that supports chunked encoding which git http protocol uses,
17 i recommend using waitress_ or gunicorn_ (linux only) for `paste` wsgi app
18 replacement. Starting from version 1.4 waitress_ is the default wsgi server
19 used in Kallithea.
14 Large Git pushes do however require a http server with support for chunked encoding for POST.
20 15
21 To use, simply change change the following in the .ini file::
16 The Python web servers waitress_ and gunicorn_ (linux only) can be used.
17 By default, Kallithea uses waitress_ for `paster serve` instead of the built-in `paste` WSGI server.
22 18
23 use = egg:Paste#http
24
25 to::
19 The default paste server is controlled in the .ini file::
26 20
27 21 use = egg:waitress#main
28 22
@@ -31,18 +25,18 b' or::'
31 25 use = egg:gunicorn#main
32 26
33 27
34 And comment out bellow options::
28 Also make sure to comment out the following options::
35 29
36 30 threadpool_workers =
37 31 threadpool_max_requests =
38 32 use_threadpool =
39 33
40 34
41 You can simply run `paster serve` as usual.
42
35 Disabling Git
36 -------------
43 37
44 38 You can always disable git/hg support by editing a
45 file **kallithea/__init__.py** and commenting out backends
39 file **kallithea/__init__.py** and commenting out the backend.
46 40
47 41 .. code-block:: python
48 42
@@ -5,6 +5,12 b' Kallithea repository locking system'
5 5 ===================================
6 6
7 7
8 The scenario for repos with `locking function` enabled is that
9 every initial clone and every pull gives users (with write permission)
10 the exclusive right to do a push.
11
12 Each repo can be manually unlocked by admin from the repo settings menu.
13
8 14 | Repos with **locking function=disabled** is the default, that's how repos work
9 15 today.
10 16 | Repos with **locking function=enabled** behaves like follows:
@@ -20,22 +26,13 b' influence this state:'
20 26 user has write/admin permissions on this repo
21 27
22 28
23 Kallithea will remember the user id who locked the repo
29 Kallithea will remember the user id who locked the repo so
24 30 only this specific user can unlock the repo (locked=false) by calling
25 31
26 32 - `hg/git push <repo>`
27 33
28 every other command on that repo from this user and
29 every command from any other user will result in http return code 423 (locked)
30
31
32 additionally the http error includes the <user> that locked the repo
33 (e.g. “repository <repo> locked by user <user>”)
34 Every other command on that repo from this user and
35 every command from any other user will result in http return code 423 (locked).
34 36
35
36 So the scenario of use for repos with `locking function` enabled is that
37 every initial clone and every pull gives users (with write permission)
38 the exclusive right to do a push.
39
40
41 Each repo can be manually unlocked by admin from the repo settings menu.
37 Additionally, the http error includes the <user> that locked the repo
38 (e.g. “repository <repo> locked by user <user>”).
@@ -6,7 +6,7 b' Statistics'
6 6
7 7 The Kallithea statistics system makes heavy demands of the server resources, so
8 8 in order to keep a balance between usability and performance, the statistics are
9 cached inside db and are gathered incrementally, this is how Kallithea does
9 cached inside db and are gathered incrementally. This is how Kallithea does
10 10 this:
11 11
12 12 With Celery disabled
@@ -1,10 +1,10 b''
1 1 .. _subrepos:
2 2
3 3 =============================================
4 working with Kallithea and mercurial subrepos
4 Working with Kallithea and Mercurial subrepos
5 5 =============================================
6 6
7 example usage of Subrepos with Kallithea::
7 Example usage of Subrepos with Kallithea::
8 8
9 9 ## init a simple repo
10 10 hg init repo1
@@ -14,24 +14,23 b' example usage of Subrepos with Kallithea'
14 14 hg ci --message "initial file 1"
15 15
16 16 #clone subrepo we want to add
17 hg clone http://rc.local/subrepo
17 hg clone http://kallithea.local/subrepo
18 18
19 19 ## use path like url to existing repo in Kallithea
20 echo "subrepo = http://rc.local/subrepo" > .hgsub
20 echo "subrepo = http://kallithea.local/subrepo" > .hgsub
21 21
22 22 hg add .hgsub
23 23 hg ci --message "added remote subrepo"
24 24
25 25
26 In the file list of a clone of repo1 you will see a connected subrepo at
27 revision it was during cloning.
28 Clicking in subrepos link should send you to proper repository in Kallithea.
26 29
27 In file list of repo1 you will see a connected subrepo at revision it was
28 during cloning.
29 Clicking in subrepos link should send you to proper repository in Kallithea
30
31 cloning repo1 will also clone attached subrepository.
30 Cloning repo1 will also clone attached subrepository.
32 31
33 32 Next we can edit the subrepo data, and push back to Kallithea. This will update
34 33 both of repositories.
35 34
36 see http://mercurial.aragost.com/kick-start/en/subrepositories/ for more
37 information about subrepositories
35 See http://mercurial.aragost.com/kick-start/en/subrepositories/ for more
36 information about subrepositories.
@@ -39,11 +39,11 b' Troubleshooting'
39 39
40 40 :Q: **Git fails on push/pull?**
41 41 :A: Make sure you're using an wsgi http server that can handle chunked encoding
42 such as `waitress` or `gunicorn`
42 such as `waitress` or `gunicorn`.
43 43
44 44 |
45 45
46 :Q: **How i use hooks in Kallithea?**
46 :Q: **How can I use hooks in Kallithea?**
47 47 :A: It's easy if they are python hooks just use advanced link in hooks section
48 48 in Admin panel, that works only for Mercurial. If you want to use githooks,
49 49 just install proper one in repository eg. create file in
@@ -52,19 +52,19 b' Troubleshooting'
52 52
53 53 |
54 54
55 :Q: **Kallithea is slow for me, how can i make it faster?**
56 :A: See the :ref:`performance` section
55 :Q: **Kallithea is slow for me, how can I make it faster?**
56 :A: See the :ref:`performance` section.
57 57
58 58 |
59 59
60 60 :Q: **UnicodeDecodeError on Apache mod_wsgi**
61 :A: Please read: https://docs.djangoproject.com/en/dev/howto/deployment/wsgi/modwsgi/#if-you-get-a-unicodeencodeerror
61 :A: Please read: https://docs.djangoproject.com/en/dev/howto/deployment/wsgi/modwsgi/#if-you-get-a-unicodeencodeerror.
62 62
63 63 |
64 64
65 65 :Q: **Requests hanging on Windows**
66 66 :A: Please try out with disabled Antivirus software, there are some known problems with Eset Anitivirus. Make sure
67 you have installed latest windows patches (especially KB2789397)
67 you have installed latest windows patches (especially KB2789397).
68 68
69 69
70 70 .. _virtualenv: http://pypi.python.org/pypi/virtualenv
@@ -73,6 +73,3 b' Troubleshooting'
73 73 .. _celery: http://celeryproject.org/
74 74 .. _rabbitmq: http://www.rabbitmq.com/
75 75 .. _python-ldap: http://www.python-ldap.org/
76 .. _mercurial-server: http://www.lshift.net/mercurial-server.html
77 .. _PublishingRepositories: http://mercurial.selenic.com/wiki/PublishingRepositories
78 .. _Issues tracker: https://bitbucket.org/conservancy/kallithea/issues
@@ -23,7 +23,7 b' user=username ; (defaul'
23 23 ;directory=/tmp ; (default is not to cd during start)
24 24 ;nocleanup=true ; (don't clean up tempfiles at start;default false)
25 25 ;childlogdir=/tmp ; ('AUTO' child log dir, default $TEMP)
26 environment=HOME=/home/username ; (key value pairs to add to environment)
26 environment=HOME=/srv/kallithea ; (key value pairs to add to environment)
27 27 ;strip_ansi=false ; (strip ansi escape codes in logs; def. false)
28 28
29 29 ; the below section must remain in the config file for RPC
@@ -44,8 +44,8 b' serverurl=http://127.0.0.1:9001 ; use an'
44 44 [program:kallithea]
45 45 numprocs = 1
46 46 numprocs_start = 5000 # possible should match ports
47 directory=/home/username/kallithea-dir
48 command = /home/username/v-env/bin/paster serve rc.ini
47 directory=/srv/kallithea
48 command = /srv/kallithea/venv/bin/paster serve my.ini
49 49 process_name = %(program_name)s_%(process_num)04d
50 50 redirect_stderr=true
51 stdout_logfile=/%(here)s/kallithea.log No newline at end of file
51 stdout_logfile=/%(here)s/kallithea.log
1 NO CONTENT: file was removed
General Comments 0
You need to be logged in to leave comments. Login now