changeset 4902:03bbd33bc084

docs: rework stuff The existing docs were far from how we wanted it to be. There was so much to do and it is not feasible to do that cleanup it in clean patches. Instead, I took a sweep through the docs and changed what I thought could benefit from a change: structure, examples, advices, language, markup, content, etc.
author Mads Kiilerich <madski@unity3d.com>
date Wed, 11 Mar 2015 16:10:30 +0100
parents 409eaadc0054
children f9011c406fc5
files .hgignore README.rst docs/api/api.rst docs/contributing.rst docs/index.rst docs/installation.rst docs/installation_win.rst docs/readme.rst docs/setup.rst docs/theme/nature/layout.html docs/theme/nature/static/kallithea-logo.svg docs/upgrade.rst docs/usage/debugging.rst docs/usage/general.rst docs/usage/git_support.rst docs/usage/locking.rst docs/usage/statistics.rst docs/usage/subrepos.rst docs/usage/troubleshooting.rst init.d/supervisord.conf
diffstat 20 files changed, 484 insertions(+), 377 deletions(-) [+]
line wrap: on
line diff
--- a/.hgignore	Wed Mar 11 01:17:33 2015 +0100
+++ b/.hgignore	Wed Mar 11 16:10:30 2015 +0100
@@ -21,6 +21,6 @@
 ^kallithea\.db$
 ^test\.db$
 ^Kallithea\.egg-info$
-^rc.*\.ini$
+^my\.ini$
 ^fabfile.py
 ^\.idea$
--- a/README.rst	Wed Mar 11 01:17:33 2015 +0100
+++ b/README.rst	Wed Mar 11 16:10:30 2015 +0100
@@ -1,6 +1,6 @@
-=========
-Kallithea
-=========
+================
+Kallithea README
+================
 
 About
 -----
@@ -23,15 +23,12 @@
 
 Installation
 ------------
-Stable releases of Kallithea are best installed via::
-
-    easy_install kallithea
-
-Or::
+Official releases of Kallithea can be installed via::
 
     pip install kallithea
 
-Detailed instructions and links may be found on the Installation page.
+The development repository is kept very stable and used in production by the
+developers - you can do the same.
 
 Please visit http://packages.python.org/Kallithea/installation.html for
 more details.
@@ -40,14 +37,10 @@
 Source code
 -----------
 
-The latest sources can be obtained from https://kallithea-scm.org/repos/kallithea
-
+The latest sources can be obtained from https://kallithea-scm.org/repos/kallithea.
 
-MIRRORS:
-
-Issue tracker and sources at Bitbucket_
-
-https://bitbucket.org/conservancy/kallithea
+The issue tracker and a repository mirror can be found at Bitbucket_ on
+https://bitbucket.org/conservancy/kallithea.
 
 
 
@@ -67,7 +60,7 @@
 - Users can fork other users repos, and compare them at any time.
 - Built-in versioned paste functionality (Gist) for sharing code snippets.
 - 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
+  any issue tracker, and with a JSON-RPC API you can make much more.
 - Built-in commit API lets you add, edit and commit files right from Kallithea
   web interface using simple editor or upload binary files using simple form.
 - Powerful pull request driven review system with inline commenting,
@@ -75,9 +68,9 @@
 - Importing and syncing repositories from remote locations for Git_, Mercurial_ and Subversion.
 - Mako templates let you customize the look and feel of the application.
 - Beautiful diffs, annotations and source code browsing all colored by pygments.
-  Raw diffs are made in Git-diff format for both VCS systems, including Git_ binary-patches
+  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
-  to track activity for repositories
+  to track activity for repositories.
 - Admin interface with user/permission management. Admin activity journal, logs
   pulls, pushes, forks, registrations and other actions made by all users.
 - Server side forks. It is possible to fork a project and modify it freely
@@ -85,69 +78,68 @@
 - reST and Markdown README support for repositories.
 - Full text search powered by Whoosh on the source files, commit messages, and file names.
   Built-in indexing daemons, with optional incremental index build
-  (no external search servers required all in one application)
+  (no external search servers required all in one application).
 - Setup project descriptions/tags and info inside built in DB for easy,
   non-filesystem operations.
 - Intelligent cache with invalidation after push or project change, provides
   high performance and always up to date data.
-- RSS/Atom feeds, Gravatar support, downloadable sources as zip/tar/gz
-- Optional async tasks for speed and performance using Celery_
+- RSS/Atom feeds, Gravatar support, downloadable sources as zip/tar/gz.
+- Optional async tasks for speed and performance using Celery_.
 - Backup scripts can do backup of whole app and send it over scp to desired
-  location
-- Based on Pylons, SQLAlchemy, SQLite, Whoosh, vcs
-
-
-Incoming / Plans
-----------------
+  location.
+- Based on Pylons, SQLAlchemy, SQLite, Whoosh, vcs.
 
-- Finer granular permissions per branch, or subrepo
-- Web-based merges for pull requests
-- Tracking history for each lines in files
-- Simple issue tracker
-- SSH-based authentication with server side key management
-- Commit based built in wiki system
-- More statistics and graph (global annotation + some more statistics)
-- Other advancements as development continues (or you can of course make
-  additions and or requests)
 
 License
 -------
 
-``Kallithea`` is released under the GPLv3 license.
+``Kallithea`` is released under the GPLv3 license. ``Kallithea`` is a
+`Software Freedom Conservancy`_ project and thus controlled by a non-profit organization.
+No commercial entity can take ownership of the project and change the direction.
+
+Kallithea started out as an effort to make sure the existing GPLv3 codebase would stay
+available under a legal license. Kallithea thus has to stay GPLv3 compatible ...
+but we are also happy it is GPLv3 and happy to keep it that way.
+A different license (such as AGPL) could perhaps help attract a different community
+with a different mix of Free Software people and companies but we are happy with the current focus.
 
 
-Getting help
-------------
+Community
+---------
+
+``Kallithea`` is maintained by its users who contribute the fixes they would like to see.
 
-Listed bellow are various support resources that should help.
+Get in touch with the rest of the community:
 
-.. note::
+- Join the mailing list users and developers - see
+  http://lists.sfconservancy.org/mailman/listinfo/kallithea-general.
 
-   Please try to read the documentation before posting any issues, especially
-   the **troubleshooting section**
+- Use IRC and join #kallithea on FreeNode (irc.freenode.net)
+  or use http://webchat.freenode.net/?channels=kallithea.
 
-- Open an issue at `issue tracker <https://bitbucket.org/conservancy/kallithea/issues>`_
+- Follow ``Kallithea`` on Twitter, **@KallitheaSCM**.
 
-- Join #kallithea on FreeNode (irc.freenode.net)
-  or use http://webchat.freenode.net/?channels=kallithea for web access to irc.
+- Issues can be reported at `issue tracker <https://bitbucket.org/conservancy/kallithea/issues>`_.
 
-You can follow this project on Twitter, **@KallitheaSCM**.
+   .. note::
+
+       Please try to read the documentation before posting any issues, especially
+       the **troubleshooting section**
 
 
 Online documentation
 --------------------
 
-Online documentation for the current version of Kallithea is available at
- - http://packages.python.org/Kallithea/
- - http://kallithea.readthedocs.org/
+Online documentation for the current version of Kallithea is available at https://pythonhosted.org/Kallithea/.
+Documentation for the current development version can be found on http://kallithea.readthedocs.org/.
 
-You may also build the documentation for yourself: go into ``docs/`` and run::
+You can also build the documentation locally: go to ``docs/`` and run::
 
    make html
 
 (You need to have Sphinx_ installed to build the documentation. If you don't
 have Sphinx_ installed you can install it via the command:
-``easy_install sphinx``)
+``pip install sphinx``)
 
 
 Converting from RhodeCode
@@ -160,7 +152,7 @@
 Maintaining Interoperability
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-Interoperability with RhodeCode 2.2.5 installations is provided so you don't
+Interoperability with RhodeCode 2.2.X 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.
 
@@ -173,7 +165,7 @@
    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``
+``$VIRTUAL_ENV/lib/python2.7/site-packages/Kallithea-0.1-py2.7.egg/kallithea``.
 
 One-time Conversion
 ~~~~~~~~~~~~~~~~~~~
@@ -188,10 +180,10 @@
    pip install sqlalchemy-migrate
    python kallithea/bin/rebranddb.py sqlite:///kallithea.db
 
-.. WARNING::
+.. Note::
 
-   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).
+   If you started out using the branding interoperability approach mentioned
+   above, watch out for stray brand.pyc after removing brand.py.
 
 .. _virtualenv: http://pypi.python.org/pypi/virtualenv
 .. _Python: http://www.python.org/
@@ -203,3 +195,4 @@
 .. _Git: http://git-scm.com/
 .. _Celery: http://celeryproject.org/
 .. _vcs: http://pypi.python.org/pypi/vcs
+.. _Software Freedom Conservancy: http://sfconservancy.org/
--- a/docs/api/api.rst	Wed Mar 11 01:17:33 2015 +0100
+++ b/docs/api/api.rst	Wed Mar 11 16:10:30 2015 +0100
@@ -10,7 +10,7 @@
 <your_server>/_admin/api .
 
 
-API ACCESS FOR WEB VIEWS
+API access for web views
 ++++++++++++++++++++++++
 
 API access can also be turned on for each web view in Kallithea that is
@@ -36,7 +36,7 @@
 3rd party services like code review, or build farms that could download archives.
 
 
-API ACCESS
+API access
 ++++++++++
 
 Clients must send JSON encoded JSON-RPC requests::
@@ -75,7 +75,7 @@
 *result* will be null.
 
 
-API CLIENT
+API client
 ++++++++++
 
 Kallithea comes with a `kallithea-api` command line tool providing a convenient
@@ -109,7 +109,7 @@
 so you don't have to specify them every time.
 
 
-API METHODS
+API methods
 +++++++++++
 
 
--- a/docs/contributing.rst	Wed Mar 11 01:17:33 2015 +0100
+++ b/docs/contributing.rst	Wed Mar 11 16:10:30 2015 +0100
@@ -4,40 +4,54 @@
 Contributing to Kallithea
 =========================
 
-If you would like to contribute to Kallithea, please contact us, any help is
-greatly appreciated!
+Kallithea is developed and maintained by its users. Please join us and scratch
+your own itch.
+
+
+Infrastructure
+--------------
 
-Could I request that you make your source contributions by first forking the
-Kallithea repository on bitbucket_
-https://bitbucket.org/conservancy/kallithea and then make your changes to
-your forked repository. Please post all fixes into **dev** bookmark since your
-change might be already fixed there and i try to merge all fixes from dev into
-stable, and not the other way. Finally, when you are finished with your changes,
-please send us a pull request.
+The main repository is hosted at Our Own Kallithea (aka OOK) on
+https://kallithea-scm.org/repos/kallithea/ (which is our self-hosted instance
+of Kallithea).
 
-To run Kallithea in a development version you always need to install the latest
-required libs. Simply clone Kallithea and switch to beta branch::
+For now, we use Bitbucket_ for `Pull Requests`_ and `Issue Tracker`_ services. The
+issue tracker is for tracking bugs, not for "support", discussion or ideas -
+please use the `mailing list`_ to reach the community.
+
+We use Weblate_ to translate the user interface messages into languages other
+than English. Join our project on `Hosted Weblate`_ to help us.
+To register, you can use your Bitbucket or GitHub account.
+
 
-    hg clone https://kallithea-scm.org/repos/kallithea
+Getting started
+---------------
 
-after downloading/pulling Kallithea make sure you run::
-
-    python setup.py develop
+To get started with development::
 
-command to install/verify all required packages, and prepare development
-enviroment.
+        hg clone https://kallithea-scm.org/repos/kallithea
+        cd kallithea
+        virtualenv ../kallithea-venv
+        source ../kallithea-venv/bin/activate
+        python setup.py develop
+        paster make-config Kallithea my.ini
+        paster setup-db my.ini --user=user --email=user@example.com --password=password --repos=/tmp
+        paster serve my.ini --reload &
+        firefox http://127.0.0.1:5000/
 
-There are two files in the directory production.ini and developement.ini copy
-the `development.ini` file as rc.ini (which is excluded from version controll)
-and put all your changes like db connection or server port in there.
+You can also start out by forking https://bitbucket.org/conservancy/kallithea
+on Bitbucket_ and create a local clone of your own fork.
+
 
-After finishing your changes make sure all tests passes ok. You can run
+Running tests
+-------------
+
+After finishing your changes make sure all tests pass cleanly. You can run
 the testsuite running ``nosetest`` from the project root, or if you use tox
 run tox for python2.6-2.7 with multiple database test. When using `nosetests`
 test.ini file is used and by default it uses sqlite for tests, edit this file
 to change your testing enviroment.
 
-
 There's a special set of tests for push/pull operations, you can runn them using::
 
     paster serve test.ini --pid-file=test.pid --daemon
@@ -45,7 +59,102 @@
     kill -9 $(cat test.pid)
 
 
-| Thank you for any contributions!
+Coding/contribution guidelines
+------------------------------
+
+Kallithea is GPLv3 and we assume all contributions are made by the
+committer/contributor and under GPLv3 unless explicitly stated. We do care a
+lot about preservation of copyright and license information for existing code
+that is brought into the project.
+
+We don't have a formal coding/formatting standard. We are currently using a mix
+of Mercurial (http://mercurial.selenic.com/wiki/CodingStyle), pep8, and
+consistency with existing code. Run whitespacecleanup.sh to avoid stupid
+whitespace noise in your patches.
+
+We support both Python 2.6.x and 2.7.x and nothing else. For now we don't care
+about Python 3 compatibility.
+
+We try to support the most common modern web browsers. IE8 is still supported
+to the extent it is feasible but we may stop supporting it very soon.
+
+We primarily support Linux and OS X on the server side but Windows should also work.
+
+Html templates should use 2 spaces for indentation ... but be pragmatic. We
+should use templates cleverly and avoid duplication. We should use reasonable
+semantic markup with classes and ids that can be used for styling and testing.
+We should only use inline styles in places where it really is semantic (such as
+display:none).
+
+JavaScript must use ';' between/after statements. Indentation 4 spaces. Inline
+multiline functions should be indented two levels - one for the () and one for
+{}. jQuery value arrays should have a leading $.
+
+Commit messages should have a leading short line summarizing the changes. For
+bug fixes, put "(Issue #123)" at the end of this line.
+
+Contributions will be accepted in most formats - such as pull requests on
+bitbucket, something hosted on your own Kallithea instance, or patches sent by
+mail to the kallithea-general mailing list.
+
+Make sure to test your changes both manually and with the automatic tests
+before posting.
+
+We care about quality and review and keeping a clean repository history. We
+might give feedback that requests polishing contributions until they are
+"perfect". We might also rebase and collapse and make minor adjustments to your
+changes when we apply them.
+
+We try to make sure we have consensus on the direction the project is taking.
+Everything non-sensitive should be discussed in public - preferably on the
+mailing list.  We aim at having all non-trivial changes reviewed by at least
+one other core developer before pushing. Obvious non-controversial changes will
+be handled more casually.
+
+For now we just have one official branch ("default") and will keep it so stable
+that it can be (and is) used in production. Experimental changes should live
+elsewhere (for example in a pull request) until they are ready.
 
 
+"Roadmap"
+---------
+
+We do not have a road map but are waiting for your contributions. Here are some
+ideas of places we might want to go - contributions in these areas are very
+welcome:
+
+* Front end:
+    * kill YUI - more jQuery
+    * remove other dependencies - especially the embedded cut'n'pasted ones
+    * remove hardcoded styling in templates, make markup more semantic while moving all styling to css
+    * switch to bootstrap or some other modern UI library and cleanup of style.css and contextbar.css
+    * new fancy style that looks good
+* testing
+    * better test coverage with the existing high level test framework
+    * test even more high level and javascript - selenium/robot and splinter seems like the top candidates
+    * more unit testing
+* code cleanup
+    * move code from templates to controllers and from controllers to libs or models
+    * more best practice for web apps and the frameworks
+* features
+    * relax dependency version requirements after thorough testing
+    * support for evolve
+    * updates of PRs ... while preserving history and comment context
+    * auto pr merge/rebase
+    * ssh
+    * bitbucket compatible wiki
+    * realtime preview / wysiwyg when editing comments and files
+    * make journal more useful - filtering on branches and files
+    * community mode with self registration and personal space
+    * improve documentation
+
+Thank you for your contribution!
+--------------------------------
+
+
+.. _Weblate: http://weblate.org/
+.. _Issue Tracker: https://bitbucket.org/conservancy/kallithea/issues?status=new&status=open
+.. _Pull Requests: https://bitbucket.org/conservancy/kallithea/pull-requests
 .. _bitbucket: http://bitbucket.org/
+.. _mailing list: http://lists.sfconservancy.org/mailman/listinfo/kallithea-general
+.. _Hosted Weblate: https://hosted.weblate.org/projects/kallithea/kallithea/
--- a/docs/index.rst	Wed Mar 11 01:17:33 2015 +0100
+++ b/docs/index.rst	Wed Mar 11 16:10:30 2015 +0100
@@ -1,17 +1,21 @@
 .. _index:
 
-.. include:: ./../README.rst
+Administrators Guide
+--------------------
+
+**Readme**
 
-Users Guide
------------
+.. toctree::
+   :maxdepth: 1
 
-**Installation:**
+   readme
+
+**Installation**
 
 .. toctree::
    :maxdepth: 1
 
    installation
-   upgrade
    installation_win
    installation_win_old
    installation_iis
--- a/docs/installation.rst	Wed Mar 11 01:17:33 2015 +0100
+++ b/docs/installation.rst	Wed Mar 11 16:10:30 2015 +0100
@@ -4,69 +4,42 @@
 Installation on Unix/Linux
 ==========================
 
-``Kallithea`` is written entirely in Python. Before posting any issues make
-sure, your not missing any system libraries and using right version of
-libraries required by Kallithea. There's also restriction in terms of mercurial
-clients. Minimal version of hg client known working fine with Kallithea is
-**1.6**. If you're using older client, please upgrade.
+``Kallithea`` is written entirely in Python.  Kallithea requires Python version
+2.6 or higher.
+
+.. Note:: Alternative very detailed installation instructions for Ubuntu Server
+   with celery, indexer and daemon scripts: https://gist.github.com/4546398
 
 
-Installing Kallithea from PyPI (aka "Cheeseshop")
--------------------------------------------------
-
-Kallithea requires python version 2.6 or higher.
+Installing Kallithea from Python Package Index (PyPI)
+-----------------------------------------------------
 
-The easiest way to install ``kallithea`` is to run::
-
-    easy_install kallithea
-
-Or::
+``Kallithea`` can be installed from PyPI with::
 
     pip install kallithea
 
-If you prefer to install Kallithea manually simply grab latest release from
-http://pypi.python.org/pypi/Kallithea, decompress the archive and run::
 
-    python setup.py install
-
-Step by step installation example for Windows
----------------------------------------------
-
-:ref:`installation_win`
-
+Installation in virtualenv
+--------------------------
 
-Step by step installation example for Linux
--------------------------------------------
-
+It is highly recommended to use a separate virtualenv_ for installing Kallithea.
+This way, all libraries required by Kallithea will be installed separately from your
+main Python installation and things will be less problematic when upgrading the
+system or Kallithea.
+An additional benefit of virtualenv_ is that it doesn't require root privileges. 
 
-For installing Kallithea i highly recommend using separate virtualenv_. This
-way many required by Kallithea libraries will remain sandboxed from your main
-python and making things less problematic when doing system python updates.
-
-Alternative very detailed installation instructions for Ubuntu Server with
-celery, indexer and daemon scripts: https://gist.github.com/4546398
-
-
-- Assuming you have installed virtualenv_ create a new virtual environment
+- Assuming you have installed virtualenv_, create a new virtual environment
   using virtualenv command::
 
-    virtualenv --no-site-packages /opt/kallithea-venv
+    virtualenv /srv/kallithea/venv
 
+.. note:: Older versions of virtualenv required ``--no-site-packages`` to work
+   correctly. It should no longer be necessary.
 
-.. note:: Using ``--no-site-packages`` when generating your
-   virtualenv is **very important**. This flag provides the necessary
-   isolation for running the set of packages required by
-   Kallithea.  If you do not specify ``--no-site-packages``,
-   it's possible that Kallithea will not install properly into
-   the virtualenv, or, even if it does, may not run properly,
-   depending on the packages you've already got installed into your
-   Python's "main" site-packages dir.
+- this will install new virtualenv_ into `/srv/kallithea/venv`.
+- Activate the virtualenv_ in your current shell session by running::
 
-
-- this will install new virtualenv_ into `/opt/kallithea-venv`.
-- Activate the virtualenv_ by running::
-
-    source /opt/kallithea-venv/bin/activate
+    source /srv/kallithea/venv/bin/activate
 
 .. note:: If you're using UNIX, *do not* use ``sudo`` to run the
    ``virtualenv`` script.  It's perfectly acceptable (and desirable)
@@ -75,19 +48,20 @@
 - Make a folder for Kallithea data files, and configuration somewhere on the
   filesystem. For example::
 
-    mkdir /opt/kallithea
-
+    mkdir /srv/kallithea
 
 - Go into the created directory run this command to install kallithea::
 
-    easy_install kallithea
-
-  or::
-
     pip install kallithea
 
+  Alternatively, download a .tar.gz from http://pypi.python.org/pypi/Kallithea,
+  extract it and run::
+
+    python setup.py install
+
 - This will install Kallithea together with pylons and all other required
-  python libraries into activated virtualenv
+  python libraries into the activated virtualenv.
+
 
 Requirements for Celery (optional)
 ----------------------------------
@@ -121,9 +95,103 @@
 This is a very nice tutorial on how to start using celery_ with rabbitmq_
 
 
-You can now proceed to :ref:`setup`
------------------------------------
+Next
+----
+
+You can now proceed to :ref:`setup`.
+
+
+Upgrading Kallithea from Python Package Index (PyPI)
+-----------------------------------------------------
+
+.. note::
+   Firstly, it is recommended that you **always** perform a database and
+   configuration backup before doing an upgrade.
+
+   (These directions will use '{version}' to note that this is the version of
+   Kallithea that these files were used with.  If backing up your Kallithea
+   instance from version 0.1 to 0.2, the ``my.ini`` file could be
+   backed up to ``my.ini.0-1``.)
+
+
+If using a sqlite database, stop the Kallithea process/daemon/service, and
+then make a copy of the database file::
+
+ service kallithea stop
+ cp kallithea.db kallithea.db.{version}
+
+
+Back up your configuration file::
+
+ cp my.ini my.ini.{version}
+
+
+Ensure that you are using the Python Virtual Environment that you'd originally
+installed Kallithea in::
+
+ pip freeze
+
+will list all packages installed in the current environment.  If Kallithea
+isn't listed, change virtual environments to your venv location::
+
+ source /srv/kallithea/venv/bin/activate
+
+
+Once you have verified the environment you can upgrade ``Kallithea`` with::
+
+ pip install --upgrade kallithea
+
+
+Then run the following command from the installation directory::
 
+ paster make-config Kallithea my.ini
+
+This will display any changes made by the new version of Kallithea to your
+current configuration. It will try to perform an automerge. It's recommended
+that you re-check the content after the automerge.
+
+.. note::
+   Please always make sure your .ini files are up to date. Often errors are
+   caused by missing params added in new versions.
+
+
+It is also recommended that you rebuild the whoosh index after upgrading since
+the new whoosh version could introduce some incompatible index changes. Please
+read the changelog to see if there were any changes to whoosh.
+
+
+The final step is to upgrade the database. To do this simply run::
+
+ paster upgrade-db my.ini
+
+This will upgrade the schema and update some of the defaults in the database,
+and will always recheck the settings of the application, if there are no new
+options that need to be set.
+
+
+.. note::
+   DB schema upgrade library has some limitations and can sometimes fail if you try to
+   upgrade from older major releases. In such case simply run upgrades sequentially, eg.
+   upgrading from 0.1.X to 0.3.X should be done like that: 0.1.X. > 0.2.X > 0.3.X
+   You can always specify what version of Kallithea you want to install for example in pip
+   `pip install Kallithea==0.2`
+
+You may find it helpful to clear out your log file so that new errors are
+readily apparent::
+
+ echo > kallithea.log
+
+Once that is complete, you may now start your upgraded Kallithea Instance::
+
+ service kallithea start
+
+Or::
+
+ paster serve /srv/kallithea/my.ini
+
+.. note::
+   If you're using Celery, make sure you restart all instances of it after
+   upgrade.
 
 
 .. _virtualenv: http://pypi.python.org/pypi/virtualenv
--- a/docs/installation_win.rst	Wed Mar 11 01:17:33 2015 +0100
+++ b/docs/installation_win.rst	Wed Mar 11 16:10:30 2015 +0100
@@ -71,6 +71,7 @@
 - Go to https://bootstrap.pypa.io
 - Right-click on get-pip.py and choose Saves as...
 - Run "python get-pip.py" in the folder where you downloaded get-pip.py (may require admin access).
+
 (See http://stackoverflow.com/questions/4750806/how-to-install-pip-on-windows for explanations or alternatives)
 
 Note that pip.exe will be placed inside your Python installation's Scripts folder, which is likely not on your path.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/docs/readme.rst	Wed Mar 11 16:10:30 2015 +0100
@@ -0,0 +1,3 @@
+.. _readme:
+
+.. include:: ./../README.rst
--- a/docs/setup.rst	Wed Mar 11 01:17:33 2015 +0100
+++ b/docs/setup.rst	Wed Mar 11 16:10:30 2015 +0100
@@ -11,22 +11,22 @@
 First, you will need to create a Kallithea configuration file. Run the
 following command to do this::
 
-    paster make-config Kallithea production.ini
+    paster make-config Kallithea my.ini
 
-- This will create the file `production.ini` in the current directory. This
+- This will create the file `my.ini` in the current directory. This
   configuration file contains the various settings for Kallithea, e.g proxy
   port, email settings, usage of static files, cache, celery settings and
   logging.
 
 
-Next, you need to create the databases used by Kallithea. I recommend that you
+Next, you need to create the databases used by Kallithea. It is recommended to
 use postgresql or sqlite (default). If you choose a database other than the
-default ensure you properly adjust the db url in your production.ini
+default ensure you properly adjust the db url in your my.ini
 configuration file to use this other database. Kallithea currently supports
 postgresql, sqlite and mysql databases. Create the database by running
 the following command::
 
-    paster setup-db production.ini
+    paster setup-db my.ini
 
 This will prompt you for a "root" path. This "root" path is the location where
 Kallithea will store all of its repositories on the current machine. After
@@ -36,7 +36,7 @@
 
 setup process can be fully automated, example for lazy::
 
-    paster setup-db production.ini --user=nn --password=secret --email=nn@your.kallithea.server --repos=/home/nn/my_repos
+    paster setup-db my.ini --user=nn --password=secret --email=nn@your.kallithea.server --repos=/srv/repos
 
 
 - The ``setup-db`` command will create all of the needed tables and an
@@ -52,22 +52,22 @@
 
 You are now ready to use Kallithea, to run it simply execute::
 
-    paster serve production.ini
+    paster serve my.ini
 
 - This command runs the Kallithea server. The web app should be available at the
-  127.0.0.1:5000. This ip and port is configurable via the production.ini
+  127.0.0.1:5000. This ip and port is configurable via the my.ini
   file created in previous step
 - Use the admin account you created above when running ``setup-db``
   to login to the web app.
 - The default permissions on each repository is read, and the owner is admin.
   Remember to update these if needed.
-- In the admin panel you can toggle ldap, anonymous, permissions settings. As
+- In the admin panel you can toggle LDAP, anonymous, permissions settings. As
   well as edit more advanced options on users and repositories
 
 Optionally users can create `rcextensions` package that extends Kallithea
 functionality. To do this simply execute::
 
-    paster make-rcext production.ini
+    paster make-rcext my.ini
 
 This will create `rcextensions` package in the same place that your `ini` file
 lives. With `rcextensions` it's possible to add additional mapping for whoosh,
@@ -96,10 +96,10 @@
 using the Kallithea web interface.)
 
 If your main directory (the same as set in Kallithea settings) is for example
-set to **/home/hg** and the repository you are using is named `kallithea`, then
+set to **/srv/repos** and the repository you are using is named `kallithea`, then
 to clone via ssh you should run::
 
-    hg clone ssh://user@server.com/home/hg/kallithea
+    hg clone ssh://user@server.com//srv/repos/kallithea
 
 Using other external tools such as mercurial-server_ or using ssh key based
 authentication is fully supported.
@@ -112,12 +112,12 @@
 Setting up Whoosh full text search
 ----------------------------------
 
-Starting from version 1.1 the whoosh index can be build by using the paster
+The whoosh index can be build by using the paster
 command ``make-index``. To use ``make-index`` you must specify the configuration
 file that stores the location of the index. You may specify the location of the
 repositories (`--repo-location`).  If not specified, this value is retrieved
-from the Kallithea database.  This was required prior to 1.2.  Starting from
-version 1.2 it is also possible to specify a comma separated list of
+from the Kallithea database.
+It is also possible to specify a comma separated list of
 repositories (`--index-only`) to build index only on chooses repositories
 skipping any other found in repos location
 
@@ -126,23 +126,23 @@
 
 For an incremental index build use::
 
-    paster make-index production.ini
+    paster make-index my.ini
 
 For a full index rebuild use::
 
-    paster make-index production.ini -f
+    paster make-index my.ini -f
 
 
 building index just for chosen repositories is possible with such command::
 
- paster make-index production.ini --index-only=vcs,kallithea
+    paster make-index my.ini --index-only=vcs,kallithea
 
 
 In order to do periodical index builds and keep your index always up to date.
 It's recommended to do a crontab entry for incremental indexing.
 An example entry might look like this::
 
-    /path/to/python/bin/paster make-index /path/to/kallithea/production.ini
+    /path/to/python/bin/paster make-index /path/to/kallithea/my.ini
 
 When using incremental mode (the default) whoosh will check the last
 modification date of each file and add it to be reindexed if a newer file is
@@ -156,25 +156,19 @@
 Setting up LDAP support
 -----------------------
 
-Kallithea starting from version 1.1 supports ldap authentication. In order
+Kallithea supports LDAP authentication. In order
 to use LDAP, you have to install the python-ldap_ package. This package is
 available via pypi, so you can install it by running
 
-using easy_install::
-
-    easy_install python-ldap
-
-using pip::
-
     pip install python-ldap
 
 .. note::
    python-ldap requires some certain libs on your system, so before installing
    it check that you have at least `openldap`, and `sasl` libraries.
 
-LDAP settings are located in admin->ldap section,
+LDAP settings are located in Admin->LDAP section.
 
-Here's a typical ldap setup::
+Here's a typical LDAP setup::
 
  Connection settings
  Enable LDAP          = checked
@@ -241,7 +235,7 @@
         Plain non encrypted connection
 
     LDAPS connection
-        Enable ldaps connection. It will likely require `Port`_ to be set to
+        Enable LDAPS connections. It will likely require `Port`_ to be set to
         a different value (standard LDAPS port is 636). When LDAPS is enabled
         then `Certificate Checks`_ is required.
 
@@ -338,7 +332,7 @@
     The LDAP record attribute which represents the user's email address.
 
 If all data are entered correctly, and python-ldap_ is properly installed
-users should be granted access to Kallithea with ldap accounts.  At this
+users should be granted access to Kallithea with LDAP accounts.  At this
 time user information is copied from LDAP into the Kallithea user database.
 This means that updates of an LDAP user object may not be reflected as a
 user update in Kallithea.
@@ -417,7 +411,7 @@
 
       AuthType Basic
       AuthName "Kallithea authentication"
-      AuthUserFile /home/web/kallithea/.htpasswd
+      AuthUserFile /srv/kallithea/.htpasswd
       require valid-user
 
       RequestHeader unset X-Forwarded-User
@@ -491,18 +485,18 @@
 Changing default encoding
 -------------------------
 
-By default Kallithea uses utf8 encoding, starting from 1.3 series this
-can be changed, simply edit default_encoding in .ini file to desired one.
-This affects many parts in Kallithea including committers names, filenames,
+By default, Kallithea uses utf8 encoding.
+It is configurable as `default_encoding` in the .ini file.
+This affects many parts in Kallithea including user names, filenames, and
 encoding of commit messages. In addition Kallithea can detect if `chardet`
 library is installed. If `chardet` is detected Kallithea will fallback to it
 when there are encode/decode errors.
 
 
-Setting Up Celery
------------------
+Celery configuration
+--------------------
 
-Since version 1.1 celery is configured by the Kallithea ini configuration files.
+Celery is configured in the Kallithea ini configuration files.
 Simply set use_celery=true in the ini file then add / change the configuration
 variables inside the ini file.
 
@@ -537,7 +531,7 @@
 
 Sample config for nginx using proxy::
 
-    upstream rc {
+    upstream kallithea {
         server 127.0.0.1:5000;
         # add more instances for load balancing
         #server 127.0.0.1:5001;
@@ -586,11 +580,11 @@
        #root /path/to/installation/kallithea/public;
        include         /etc/nginx/proxy.conf;
        location / {
-            try_files $uri @rhode;
+            try_files $uri @kallithea;
        }
 
-       location @rhode {
-            proxy_pass      http://rc;
+       location @kallithea {
+            proxy_pass      http://kallithea;
        }
 
     }
@@ -699,50 +693,66 @@
 
 Here is a sample excerpt from an Apache Virtual Host configuration file::
 
-    WSGIDaemonProcess pylons \
-        threads=4 \
-        python-path=/home/web/kallithea/pyenv/lib/python2.7/site-packages
-    WSGIScriptAlias / /home/web/kallithea/dispatch.wsgi
+    WSGIDaemonProcess kallithea \
+        processes=1 threads=4 \
+        python-path=/srv/kallithea/pyenv/lib/python2.7/site-packages
+    WSGIScriptAlias / /srv/kallithea/dispatch.wsgi
     WSGIPassAuthorization On
 
+Or if using a dispatcher wsgi script with proper virtualenv activation::
+
+    WSGIDaemonProcess kallithea processes=1 threads=4
+    WSGIScriptAlias / /srv/kallithea/dispatch.wsgi
+    WSGIPassAuthorization On
+
+
 .. note::
-   when running apache as root please add: `user=www-data group=www-data`
-   into above configuration
+   When running apache as root, please make sure it doesn't run Kallithea as
+   root, for examply by adding: `user=www-data group=www-data` to the configuration.
 
 .. note::
-   Running Kallithea in multiprocess mode in apache is not supported,
-   make sure you don't specify `processes=num` directive in the config
+   If running Kallithea in multiprocess mode,
+   make sure you set `instance_id = \*` in the configuration so each process
+   gets it's own cache invalidationkey.
 
 
 Example wsgi dispatch script::
 
     import os
     os.environ["HGENCODING"] = "UTF-8"
-    os.environ['PYTHON_EGG_CACHE'] = '/home/web/kallithea/.egg-cache'
+    os.environ['PYTHON_EGG_CACHE'] = '/srv/kallithea/.egg-cache'
 
     # sometimes it's needed to set the curent dir
-    os.chdir('/home/web/kallithea/')
+    os.chdir('/srv/kallithea/')
 
     import site
-    site.addsitedir("/home/web/kallithea/pyenv/lib/python2.7/site-packages")
+    site.addsitedir("/srv/kallithea/pyenv/lib/python2.7/site-packages")
 
     from paste.deploy import loadapp
     from paste.script.util.logging_config import fileConfig
 
-    fileConfig('/home/web/kallithea/production.ini')
-    application = loadapp('config:/home/web/kallithea/production.ini')
+    fileConfig('/srv/kallithea/my.ini')
+    application = loadapp('config:/srv/kallithea/my.ini')
+
+Or using proper virtualenv activation::
+
+    activate_this = '/srv/kallithea/venv/bin/activate_this.py'
+    execfile(activate_this,dict(__file__=activate_this))
 
-Note: when using mod_wsgi you'll need to install the same version of
-Mercurial that's inside Kallithea's virtualenv also on the system's Python
-environment.
+    import os
+    os.environ['HOME'] = '/srv/kallithea'
+
+    ini = '/srv/kallithea/kallithea.ini'
+    from paste.script.util.logging_config import fileConfig
+    fileConfig(ini)
+    from paste.deploy import loadapp
+    application = loadapp('config:' + ini)
 
 
 Other configuration files
 -------------------------
 
-Some example init.d scripts can be found in init.d directory::
-
-  https://kallithea-scm.org/repos/kallithea/files/tip/init.d/
+Some example init.d scripts can be found in init.d directory: https://kallithea-scm.org/repos/kallithea/files/tip/init.d/
 
 .. _virtualenv: http://pypi.python.org/pypi/virtualenv
 .. _python: http://www.python.org/
@@ -752,4 +762,3 @@
 .. _python-ldap: http://www.python-ldap.org/
 .. _mercurial-server: http://www.lshift.net/mercurial-server.html
 .. _PublishingRepositories: http://mercurial.selenic.com/wiki/PublishingRepositories
-.. _Issues tracker: https://bitbucket.org/conservancy/kallithea/issues
--- a/docs/theme/nature/layout.html	Wed Mar 11 01:17:33 2015 +0100
+++ b/docs/theme/nature/layout.html	Wed Mar 11 16:10:30 2015 +0100
@@ -1,6 +1,9 @@
 {% extends "basic/layout.html" %}
 
 {% block sidebarlogo %}
+<div style="text-align:center;margin:10px;padding:20px;background:white">
+  <img src="{{pathto('_static/kallithea-logo.svg',1)}}"/>
+</div>
 <h3>Support Kallithea development</h3>
 <div style="text-align:center">
 <form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/docs/theme/nature/static/kallithea-logo.svg	Wed Mar 11 16:10:30 2015 +0100
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<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">
+  <metadata>
+    <rdf:RDF>
+      <cc:Work rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+        <dc:title/>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g display="none">
+    <rect display="inline" height="163" width="256" y="-66.5" x="-24" fill="#404c2c"/>
+  </g>
+  <g transform="matrix(.83 0 0 1 5.6391 0)">
+      <g fill="#b1d579">
+        <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"/>
+        <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"/>
+        <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"/>
+        <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"/>
+        <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"/>
+        <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"/>
+        <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"/>
+        <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"/>
+        <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"/>
+      </g>
+  </g>
+  <g fill="#b1d579">
+      <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"/>
+      <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"/>
+      <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"/>
+  </g>
+  <g stroke="#b1d579" fill="none" stroke-miterlimit="10">
+      <circle cx="18.723" cy="17.973" r="1.698" stroke-width="1.4318"/>
+      <circle cx="7.454" cy="7.291" r="2.769" stroke-width="1.7898"/>
+  </g>
+</svg>
--- a/docs/upgrade.rst	Wed Mar 11 01:17:33 2015 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,107 +0,0 @@
-.. _upgrade:
-
-=======
-Upgrade
-=======
-
-Upgrading from PyPI (aka "Cheeseshop")
----------------------------------------
-
-.. note::
-   Firstly, it is recommended that you **always** perform a database and
-   configuration backup before doing an upgrade.
-
-   (These directions will use '{version}' to note that this is the version of
-   Kallithea that these files were used with.  If backing up your Kallithea
-   instance from version 1.3.6 to 1.4.0, the ``production.ini`` file would be
-   backed up to ``production.ini.1-3-6``.)
-
-
-If using a sqlite database, stop the Kallithea process/daemon/service, and
-then make a copy of the database file::
-
- service kallithea stop
- cp kallithea.db kallithea.db.{version}
-
-
-Back up your configuration file::
-
- cp production.ini production.ini.{version}
-
-
-Ensure that you are using the Python Virtual Environment that you'd originally
-installed Kallithea in::
-
- pip freeze
-
-will list all packages installed in the current environment.  If Kallithea
-isn't listed, change virtual environments to your venv location::
-
- source /opt/kallithea-venv/bin/activate
-
-
-Once you have verified the environment you can upgrade ``Kallithea`` with::
-
- easy_install -U kallithea
-
-Or::
-
- pip install --upgrade kallithea
-
-
-Then run the following command from the installation directory::
-
- paster make-config Kallithea production.ini
-
-This will display any changes made by the new version of Kallithea to your
-current configuration. It will try to perform an automerge. It's recommended
-that you re-check the content after the automerge.
-
-.. note::
-   Please always make sure your .ini files are up to date. Often errors are
-   caused by missing params added in new versions.
-
-
-It is also recommended that you rebuild the whoosh index after upgrading since
-the new whoosh version could introduce some incompatible index changes. Please
-Read the changelog to see if there were any changes to whoosh.
-
-
-The final step is to upgrade the database. To do this simply run::
-
- paster upgrade-db production.ini
-
-This will upgrade the schema and update some of the defaults in the database,
-and will always recheck the settings of the application, if there are no new
-options that need to be set.
-
-
-.. note::
-   DB schema upgrade library has some limitations and can sometimes fail if you try to
-   upgrade from older major releases. In such case simply run upgrades sequentially, eg.
-   upgrading from 1.2.X to 1.5.X should be done like that: 1.2.X. > 1.3.X > 1.4.X > 1.5.X
-   You can always specify what version of Kallithea you want to install for example in pip
-   `pip install Kallithea==1.3.6`
-
-You may find it helpful to clear out your log file so that new errors are
-readily apparent::
-
- echo > kallithea.log
-
-Once that is complete, you may now start your upgraded Kallithea Instance::
-
- service kallithea start
-
-Or::
-
- paster serve /var/www/kallithea/production.ini
-
-.. note::
-   If you're using Celery, make sure you restart all instances of it after
-   upgrade.
-
-.. _virtualenv: http://pypi.python.org/pypi/virtualenv
-.. _python: http://www.python.org/
-.. _mercurial: http://mercurial.selenic.com/
-.. _celery: http://celeryproject.org/
-.. _rabbitmq: http://www.rabbitmq.com/
--- a/docs/usage/debugging.rst	Wed Mar 11 01:17:33 2015 +0100
+++ b/docs/usage/debugging.rst	Wed Mar 11 16:10:30 2015 +0100
@@ -9,7 +9,7 @@
 
 ** First make sure you're using the latest version available.**
 
-enable detailed debug
+Enable detailed debug
 ---------------------
 
 Kallithea uses standard python logging modules to log it's output.
@@ -19,7 +19,7 @@
 console. This generally helps a lot to track issues.
 
 
-enable interactive debug mode
+Enable interactive debug mode
 -----------------------------
 
 To enable interactive debug mode simply comment out `set debug = false` in
--- a/docs/usage/general.rst	Wed Mar 11 01:17:33 2015 +0100
+++ b/docs/usage/general.rst	Wed Mar 11 16:10:30 2015 +0100
@@ -16,7 +16,7 @@
 from the repository name, and internal repository storage (.hg/.git). There
 is also a special command for cleaning such archived repos::
 
-    paster cleanup-repos --older-than=30d production.ini
+    paster cleanup-repos --older-than=30d my.ini
 
 This command will scan for archived repositories that are older than 30d,
 display them and ask if you want to delete them (there's a --dont-ask flag also)
--- a/docs/usage/git_support.rst	Wed Mar 11 01:17:33 2015 +0100
+++ b/docs/usage/git_support.rst	Wed Mar 11 16:10:30 2015 +0100
@@ -5,24 +5,18 @@
 ===========
 
 
-Git support in Kallithea 1.3 was enabled by default. You need to have a git
-client installed on the machine to make git fully work.
+Kallithea Git support is enabled by default. You just need a git
+command line client installed on the server to make Git work fully.
 
-Although There is one limitation on git usage.
-
-- large pushes requires a http server with chunked encoding support.
+Web server with chunked encoding
+--------------------------------
 
-if you plan to use git you need to run Kallithea with some
-http server that supports chunked encoding which git http protocol uses,
-i recommend using waitress_ or gunicorn_ (linux only) for `paste` wsgi app
-replacement. Starting from version 1.4 waitress_ is the default wsgi server
-used in Kallithea.
+Large Git pushes do however require a http server with support for chunked encoding for POST.
 
-To use, simply change change the following in the .ini file::
+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 server. 
 
-    use = egg:Paste#http
-
-to::
+The default paste server is controlled in the .ini file::
 
     use = egg:waitress#main
 
@@ -31,18 +25,18 @@
     use = egg:gunicorn#main
 
 
-And comment out bellow options::
+Also make sure to comment out the following options::
 
     threadpool_workers =
     threadpool_max_requests =
     use_threadpool =
 
 
-You can simply run `paster serve` as usual.
-
+Disabling Git
+-------------
 
 You can always disable git/hg support by editing a
-file **kallithea/__init__.py** and commenting out backends
+file **kallithea/__init__.py** and commenting out the backend.
 
 .. code-block:: python
 
--- a/docs/usage/locking.rst	Wed Mar 11 01:17:33 2015 +0100
+++ b/docs/usage/locking.rst	Wed Mar 11 16:10:30 2015 +0100
@@ -5,6 +5,12 @@
 ===================================
 
 
+The scenario for repos with `locking function` enabled is that
+every initial clone and every pull gives users (with write permission)
+the exclusive right to do a push.
+
+Each repo can be manually unlocked by admin from the repo settings menu.
+
 | Repos with **locking function=disabled** is the default, that's how repos work
   today.
 | Repos with **locking function=enabled** behaves like follows:
@@ -20,22 +26,13 @@
   user has write/admin permissions on this repo
 
 
-Kallithea will remember the user id who locked the repo
+Kallithea will remember the user id who locked the repo so
 only this specific user can unlock the repo (locked=false) by calling
 
 - `hg/git push <repo>`
 
-every other command on that repo from this user and
-every command from any other user will result in http return code 423 (locked)
-
-
-additionally the http error includes the <user> that locked the repo
-(e.g. “repository <repo> locked by user <user>”)
+Every other command on that repo from this user and
+every command from any other user will result in http return code 423 (locked).
 
-
-So the scenario of use for repos with `locking function` enabled is that
-every initial clone and every pull gives users (with write permission)
-the exclusive right to do a push.
-
-
-Each repo can be manually unlocked by admin from the repo settings menu.
+Additionally, the http error includes the <user> that locked the repo
+(e.g. “repository <repo> locked by user <user>”).
--- a/docs/usage/statistics.rst	Wed Mar 11 01:17:33 2015 +0100
+++ b/docs/usage/statistics.rst	Wed Mar 11 16:10:30 2015 +0100
@@ -6,7 +6,7 @@
 
 The Kallithea statistics system makes heavy demands of the server resources, so
 in order to keep a balance between usability and performance, the statistics are
-cached inside db and are gathered incrementally, this is how Kallithea does
+cached inside db and are gathered incrementally. This is how Kallithea does
 this:
 
 With Celery disabled
--- a/docs/usage/subrepos.rst	Wed Mar 11 01:17:33 2015 +0100
+++ b/docs/usage/subrepos.rst	Wed Mar 11 16:10:30 2015 +0100
@@ -1,10 +1,10 @@
 .. _subrepos:
 
 =============================================
-working with Kallithea and mercurial subrepos
+Working with Kallithea and Mercurial subrepos
 =============================================
 
-example usage of Subrepos with Kallithea::
+Example usage of Subrepos with Kallithea::
 
     ## init a simple repo
     hg init repo1
@@ -14,24 +14,23 @@
     hg ci --message "initial file 1"
 
     #clone subrepo we want to add
-    hg clone http://rc.local/subrepo
+    hg clone http://kallithea.local/subrepo
 
     ## use path like url to existing repo in Kallithea
-    echo "subrepo = http://rc.local/subrepo" > .hgsub
+    echo "subrepo = http://kallithea.local/subrepo" > .hgsub
 
     hg add .hgsub
     hg ci --message "added remote subrepo"
 
 
+In the file list of a clone of repo1 you will see a connected subrepo at
+revision it was during cloning.
+Clicking in subrepos link should send you to proper repository in Kallithea.
 
-In file list of repo1 you will see a connected subrepo at revision it was
-during cloning.
-Clicking in subrepos link should send you to proper repository in Kallithea
-
-cloning repo1 will also clone attached subrepository.
+Cloning repo1 will also clone attached subrepository.
 
 Next we can edit the subrepo data, and push back to Kallithea. This will update
 both of repositories.
 
-see http://mercurial.aragost.com/kick-start/en/subrepositories/ for more
-information about subrepositories
+See http://mercurial.aragost.com/kick-start/en/subrepositories/ for more
+information about subrepositories.
--- a/docs/usage/troubleshooting.rst	Wed Mar 11 01:17:33 2015 +0100
+++ b/docs/usage/troubleshooting.rst	Wed Mar 11 16:10:30 2015 +0100
@@ -39,11 +39,11 @@
 
 :Q: **Git fails on push/pull?**
 :A: Make sure you're using an wsgi http server that can handle chunked encoding
-    such as `waitress` or `gunicorn`
+    such as `waitress` or `gunicorn`.
 
 |
 
-:Q: **How i use hooks in Kallithea?**
+:Q: **How can I use hooks in Kallithea?**
 :A: It's easy if they are python hooks just use advanced link in hooks section
     in Admin panel, that works only for Mercurial. If you want to use githooks,
     just install proper one in repository eg. create file in
@@ -52,19 +52,19 @@
 
 |
 
-:Q: **Kallithea is slow for me, how can i make it faster?**
-:A: See the :ref:`performance` section
+:Q: **Kallithea is slow for me, how can I make it faster?**
+:A: See the :ref:`performance` section.
 
 |
 
 :Q: **UnicodeDecodeError on Apache mod_wsgi**
-:A: Please read: https://docs.djangoproject.com/en/dev/howto/deployment/wsgi/modwsgi/#if-you-get-a-unicodeencodeerror
+:A: Please read: https://docs.djangoproject.com/en/dev/howto/deployment/wsgi/modwsgi/#if-you-get-a-unicodeencodeerror.
 
 |
 
 :Q: **Requests hanging on Windows**
 :A: Please try out with disabled Antivirus software, there are some known problems with Eset Anitivirus. Make sure
-    you have installed latest windows patches (especially KB2789397)
+    you have installed latest windows patches (especially KB2789397).
 
 
 .. _virtualenv: http://pypi.python.org/pypi/virtualenv
@@ -73,6 +73,3 @@
 .. _celery: http://celeryproject.org/
 .. _rabbitmq: http://www.rabbitmq.com/
 .. _python-ldap: http://www.python-ldap.org/
-.. _mercurial-server: http://www.lshift.net/mercurial-server.html
-.. _PublishingRepositories: http://mercurial.selenic.com/wiki/PublishingRepositories
-.. _Issues tracker: https://bitbucket.org/conservancy/kallithea/issues
--- a/init.d/supervisord.conf	Wed Mar 11 01:17:33 2015 +0100
+++ b/init.d/supervisord.conf	Wed Mar 11 16:10:30 2015 +0100
@@ -23,7 +23,7 @@
 ;directory=/tmp              ; (default is not to cd during start)
 ;nocleanup=true              ; (don't clean up tempfiles at start;default false)
 ;childlogdir=/tmp            ; ('AUTO' child log dir, default $TEMP)
-environment=HOME=/home/username       ; (key value pairs to add to environment)
+environment=HOME=/srv/kallithea       ; (key value pairs to add to environment)
 ;strip_ansi=false            ; (strip ansi escape codes in logs; def. false)
 
 ; the below section must remain in the config file for RPC
@@ -44,8 +44,8 @@
 [program:kallithea]
 numprocs = 1
 numprocs_start = 5000 # possible should match ports
-directory=/home/username/kallithea-dir
-command = /home/username/v-env/bin/paster serve rc.ini
+directory=/srv/kallithea
+command = /srv/kallithea/venv/bin/paster serve my.ini
 process_name = %(program_name)s_%(process_num)04d
 redirect_stderr=true 
-stdout_logfile=/%(here)s/kallithea.log 
\ No newline at end of file
+stdout_logfile=/%(here)s/kallithea.log