Changeset - e67786cb2afa
[Not reviewed]
default
0 7 0
jfh - 15 years ago 2011-02-26 20:44:32
jason@jasonfharris.com
- Further corrections.
7 files changed with 123 insertions and 127 deletions:
0 comments (0 inline, 0 general)
README.rst
Show inline comments
 
@@ -3,14 +3,16 @@
 
Welcome to RhodeCode (RhodiumCode) documentation!
 
=================================================
 

	
 
``RhodeCode`` (formerly hg-app) is Pylons framework based Mercurial repository 
 
browser/management tool with build in push/pull server and full text search.
 
It works on http/https, has build in permission/authentication system with 
 
ability to auth via LDAP. It's similar in some parts to github or bitbucket, 
 
but it's suppose to run as standalone hosted application, it's open source 
 
and donation ware and focuses more on providing customized, self administered 
 
interface for Mercurial(and soon GIT) repositories. It's powered by vcs_ 
 
library that me and Lukasz Balcerzak created to handle many various version 
 
``RhodeCode`` (formerly hg-app) is a Pylons framework based Mercurial repository 
 
browser/management tool with a built in push/pull server and full text search.
 
It works on http/https and has a built in permission/authentication system with 
 
the ability to authenticate via LDAP.
 

	
 
RhodeCode is similar in some respects to github or bitbucket, 
 
however RhodeCode can be run as standalone hosted application on your own server.  It is open source 
 
and donation ware and focuses more on providing a customized, self administered 
 
interface for Mercurial(and soon GIT) repositories. RhodeCode is powered by a vcs_ 
 
library that Lukasz Balcerzak and I created to handle multiple different version 
 
control systems.
 

	
 
RhodeCode uses `Semantic Versioning <http://semver.org/>`_
 
@@ -20,8 +22,8 @@ RhodeCode demo
 

	
 
http://hg.python-works.com
 

	
 
The default access is anonymous but You can login to administrative account
 
using those credentials
 
The default access is anonymous but you can login to an administrative account
 
using the following credentials:
 

	
 
- username: demo
 
- password: demo
 
@@ -29,7 +31,7 @@ using those credentials
 
Source code
 
-----------
 

	
 
The most up to date sources can be obtained from my own RhodeCode instance
 
The latest source for RhodeCode can be obtained from my own RhodeCode instance
 
https://rhodecode.org 
 

	
 
Rarely updated source code and issue tracker is available at bitbcuket
 
@@ -38,32 +40,32 @@ http://bitbucket.org/marcinkuzminski/rho
 
Installation
 
------------
 

	
 
 Please visit http://packages.python.org/RhodeCode/installation.html
 
Please visit http://packages.python.org/RhodeCode/installation.html
 

	
 

	
 
Features
 
--------
 
RhodeCode Features
 
------------------
 

	
 
- Has it's own middleware to handle mercurial_ protocol request. 
 
  Each request can be logged and authenticated. Runs on threads unlikely to 
 
  hgweb. You can make multiple pulls/pushes simultaneous. Supports http/https 
 
- Has it's own middleware to handle mercurial_ protocol requests. 
 
  Each request can be logged and authenticated.
 
- Runs on threads unlike hgweb. You can make multiple pulls/pushes simultaneous. Supports http/https 
 
  and LDAP
 
- Full permissions (private/read/write/admin) and authentication per project. 
 
  One account for web interface and mercurial_ push/pull/clone operations.
 
- Mako templates let's you customize look and feel of application.
 
- Beautiful diffs, annotations and source codes all colored by pygments.
 
- Mako templates let's you customize the look and feel of the application.
 
- Beautiful diffs, annotations and source code browsing all colored by pygments.
 
- Mercurial_ branch graph and yui-flot powered graphs with zooming and statistics
 
- 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's possible to fork a project and hack it free without
 
- Server side forks. It is possible to fork a project and modify it freely without
 
  breaking the main repository.
 
- Full text search powered by Whoosh on source codes, and file names.
 
- Full text search powered by Whoosh on the source files, and file names.
 
  Build in indexing daemons, with optional incremental index build
 
  (no external search servers required all in one application)
 
- Setup project descriptions and info inside built in db for easy, non 
 
  file-system operations
 
- Intelligent cache with invalidation after push or project change, provides high 
 
  performance and always up to date data.    
 
  performance and always up to date data.
 
- Rss / atom feeds, gravatar support, download sources as zip/tar/gz
 
- Async tasks for speed and performance using celery_ (works without them too)  
 
- Backup scripts can do backup of whole app and send it over scp to desired 
 
@@ -77,43 +79,46 @@ Features
 
Incoming / Plans
 
----------------
 

	
 
- project grouping
 
- Project grouping
 
- User groups/teams
 
- ssh based authentication with server side key management
 
- code review (probably based on hg-review)
 
- full git_ support, with push/pull server (currently in beta tests)
 
- redmine integration
 
- public accessible activity feeds
 
- commit based build in wiki system
 
- clone points and cloning from remote repositories into RhodeCode
 
- more statistics and graph (global annotation + some more statistics)
 
- other cools stuff that i can figure out (or You can help me figure out)
 
- SSH based authentication with server side key management
 
- Code review (probably based on hg-review)
 
- Full git_ support, with push/pull server (currently in beta tests)
 
- Redmine integration
 
- Public accessible activity feeds
 
- Commit based built in wiki system
 
- Clone points and cloning from remote repositories into RhodeCode
 
- 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
 
-------
 

	
 
``RhodeCode`` is released under GPL_ license.
 
``RhodeCode`` is released under the GPL_ license.
 

	
 

	
 
Mailing group Q&A
 
-----------------
 

	
 
join the `Google group <http://groups.google.com/group/rhodecode>`_
 
Join the `Google group <http://groups.google.com/group/rhodecode>`_
 

	
 
open an issue at `issue tracker <http://bitbucket.org/marcinkuzminski/rhodecode/issues>`_
 
Open an issue at `issue tracker <http://bitbucket.org/marcinkuzminski/rhodecode/issues>`_
 

	
 
join #rhodecode on FreeNode (irc.freenode.net)
 
Join #rhodecode on FreeNode (irc.freenode.net)
 
or use http://webchat.freenode.net/?channels=rhodecode for web access to irc.
 

	
 
Online documentation
 
--------------------
 

	
 
 Online documentation for current version is available at
 
 http://packages.python.org/RhodeCode/.
 
 You may also build documentation for yourself - go into ``docs/`` and run::
 
Online documentation for the current version of RhodeCode is available at
 
http://packages.python.org/RhodeCode/.
 
You may also build the documentation for yourself - go into ``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``)
 
 
 
.. _virtualenv: http://pypi.python.org/pypi/virtualenv
 
.. _python: http://www.python.org/
 
.. _django: http://www.djangoproject.com/
docs/contributing.rst
Show inline comments
 
.. _contributing:
 

	
 
Contributing in RhodeCode
 
Contributing to RhodeCode
 
=========================
 

	
 
If You would like to contribute to RhodeCode, please contact me, any help is
 
greatly appreciated.
 
If you would like to contribute to RhodeCode, please contact me, any help is
 
greatly appreciated!
 

	
 
Preferable method Would be to fork RhodeCode repository from bitbucket
 
https://bitbucket.org/marcinkuzminski/rhodecode and then open a pull request.
 
This way it's easier for me to merge.
 
Could I request that you make your source contributions by first forking the
 
RhodeCode repository on bitbucket
 
https://bitbucket.org/marcinkuzminski/rhodecode and then make your changes to
 
your forked repository. Finally, when you are finished making a change, please
 
send me a pull request.
 

	
 
To run RhodeCode in a development version You always need to install tip
 
version of RhodeCode and VCS library.
 
To run RhodeCode in a development version you always need to install the tip
 
version of RhodeCode and the VCS library.
 

	
 

	
 
Thank You.
 
| Thank you for any contributions!
 
|  Marcin
 
\ No newline at end of file
docs/enable_git.rst
Show inline comments
 
@@ -4,9 +4,9 @@ Enabling GIT support (beta)
 
===========================
 

	
 

	
 
Git support in RhodeCode 1.1 was disabled due to some instability issues, but
 
If You would like to test it fell free to re-enable it. To enable GIT just
 
uncomment git line in rhodecode/__init__.py file
 
Git support in RhodeCode 1.1 was disabled due to current instability issues. However,
 
if you would like to test git support please feel free to re-enable it. To re-enable GIT support just
 
uncomment the git line in the file rhodecode/__init__.py
 

	
 
.. code-block:: python
 
 
 
@@ -16,6 +16,7 @@ uncomment git line in rhodecode/__init__
 
   }
 

	
 
.. note::
 
   Please note that it's not fully stable and it might crash (that's why it 
 
   was disabled), so be careful about enabling git support. Don't use it in 
 
   production !
 
\ No newline at end of file
 
   Please note that the git support provided by RhodeCode is not yet fully
 
   stable and RhodeCode might crash while using git repositories. (That is why
 
   it is currently disabled.) Thus be careful about enabling git support, and
 
   certainly don't use it in a production setting!
 
\ No newline at end of file
docs/installation.rst
Show inline comments
 
@@ -3,24 +3,24 @@
 
Installation
 
============
 

	
 
``RhodeCode`` is written entirely in Python, but in order to use it's full
 
potential there are some third-party requirements. When RhodeCode is used 
 
together with celery You have to install some kind of message broker,
 
``RhodeCode`` is written entirely in Python. In order to gain maximum performance
 
there are some third-party you must install. When RhodeCode is used 
 
together with celery you have to install some kind of message broker,
 
recommended one is rabbitmq_ to make the async tasks work.
 

	
 
Of course RhodeCode works in sync mode also, then You don't have to install
 
any third party apps. Celery_ will give You large speed improvement when using
 
many big repositories. If You plan to use it for 7 or 10 small repositories, it
 
will work just fine without celery running.
 
Of course RhodeCode works in sync mode also and then you do not have to install
 
any third party applications. However, using Celery_ will give you a large speed improvement when using
 
many big repositories. If you plan to use RhodeCode for say 7 to 10 small repositories, RhodeCode
 
will perform perfectly well without celery running.
 
   
 
After You decide to Run it with celery make sure You run celeryd using paster
 
If you make the decision to run RhodeCode with celery make sure you run celeryd using paster
 
and message broker together with the application.   
 

	
 
Install from Cheese Shop
 
Installing RhodeCode from Cheese Shop
 
------------------------
 
Rhodecode requires python 2.x greater than version 2.5
 
Rhodecode requires python version 2.5 or higher.
 

	
 
Easiest way to install ``rhodecode`` is to run::
 
The easiest way to install ``rhodecode`` is to run::
 

	
 
    easy_install rhodecode
 

	
 
@@ -28,8 +28,8 @@ Or::
 

	
 
    pip install rhodecode
 

	
 
If you prefer to install manually simply grab latest release from
 
http://pypi.python.org/pypi/rhodecode, decompress archive and run::
 
If you prefer to install RhodeCode manually simply grab latest release from
 
http://pypi.python.org/pypi/rhodecode, decompress the archive and run::
 

	
 
    python setup.py install
 

	
 
@@ -38,15 +38,13 @@ Step by step installation example
 
---------------------------------
 

	
 

	
 
- Assuming You have installed virtualenv_ create one using. 
 

	
 
::
 
- Assuming you have installed virtualenv_ create a new virtual environment using virtualenv:: 
 

	
 
    virtualenv --no-site-packages /var/www/rhodecode-venv
 

	
 

	
 
.. note:: Using ``--no-site-packages`` when generating your
 
   virtualenv is *very important*. This flag provides the necessary
 
   virtualenv is **very important**. This flag provides the necessary
 
   isolation for running the set of packages required by
 
   RhodeCode.  If you do not specify ``--no-site-packages``,
 
   it's possible that RhodeCode will not install properly into
 
@@ -56,48 +54,42 @@ Step by step installation example
 

	
 

	
 
- this will install new virtualenv_ into `/var/www/rhodecode-venv`. 
 
- Activate the virtualenv_ by running 
 

	
 
::
 
- Activate the virtualenv_ by running::
 

	
 
    source /var/www/rhodecode-venv/bin/activate
 

	
 
.. note:: If you're on UNIX, *do not* use ``sudo`` to run the
 
.. note:: If you're using UNIX, *do not* use ``sudo`` to run the
 
   ``virtualenv`` script.  It's perfectly acceptable (and desirable)
 
   to create a virtualenv as a normal user.
 
     
 
- Make a folder for rhodecode somewhere on the filesystem for example 
 

	
 
::
 
- Make a folder for rhodecode somewhere on the filesystem for example::
 

	
 
    mkdir /var/www/rhodecode
 
  
 
    
 
- Run this command to install rhodecode
 

	
 
::
 
- Run this command to install rhodecode::
 

	
 
    easy_install rhodecode 
 

	
 
- this will install rhodecode together with pylons
 
  and all other required python libraries
 
- This will install rhodecode together with pylons and all other required python
 
  libraries
 

	
 
Requirements for Celery (optional)
 
----------------------------------
 

	
 
.. note::
 
   Installing message broker and using celery is optional, RhodeCode will
 
   work without them perfectly fine.
 
   work perfectly fine without them.
 

	
 

	
 
**Message Broker** 
 

	
 
- preferred is `RabbitMq <http://www.rabbitmq.com/>`_
 
- possible other is `Redis <http://code.google.com/p/redis/>`_
 
- A possible alternative is `Redis <http://code.google.com/p/redis/>`_
 

	
 
For installation instructions You can visit: 
 
http://ask.github.com/celery/getting-started/index.html
 
It's very nice tutorial how to start celery_ with rabbitmq_
 
For installation instructions you can visit: 
 
http://ask.github.com/celery/getting-started/index.html.
 
This is a very nice tutorial on how to start using celery_ with rabbitmq_
 

	
 

	
 
You can now proceed to :ref:`setup`
docs/setup.rst
Show inline comments
 
@@ -31,7 +31,7 @@ entering this "root" path ``setup-app`` 
 
for the initial admin account which ``setup-app`` sets up for you.
 

	
 
- The ``setup-app`` command will create all of the needed tables and an admin
 
  account. When choosing a root path You can either use a new empty location, or a
 
  account. When choosing a root path you can either use a new empty location, or a
 
  location which already contains existing repositories. If you choose a location
 
  which contains existing repositories RhodeCode will simply add all of the
 
  repositories at the chosen location to it's database. (Note: make sure you
 
@@ -51,7 +51,7 @@ You are now ready to use RhodeCode, to r
 
- Use the admin account you created above when running ``setup-app`` 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
 

	
 
Try copying your own mercurial repository into the "root" directory you are
 
@@ -102,7 +102,7 @@ Setting up Whoosh full text search
 
----------------------------------
 

	
 
Starting from version 1.1 the whoosh index can be build by using the paster
 
command ``make-index``. To use ``make-index`` You must specify the configuration
 
command ``make-index``. To use ``make-index`` you must specify the configuration
 
file that stores the location of the index, and the location of the repositories
 
(`--repo-location`).
 

	
docs/statistics.rst
Show inline comments
 
@@ -4,29 +4,30 @@
 
Statistics
 
==========
 

	
 
RhodeCode statistics system is heavy on resources, so in order to keep a 
 
balance between the usability and performance statistics are cached inside db
 
and are gathered incrementally, this is how RhodeCode does this:
 
The RhodeCode 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 RhodeCode does
 
this:
 

	
 
With Celery disabled
 
++++++++++++++++++++
 

	
 
- on each first visit on summary page a set of 250 commits are parsed and
 
  updates statistics cache
 
- this happens on each single visit of statistics page until all commits are
 
  fetched. Statistics are kept cached until some more commits are added to
 
  repository, in such case RhodeCode will fetch only the ones added and will
 
  update it's cache.
 
- On each first visit to the summary page a set of 250 commits are parsed and
 
  updates statistics cache.
 
- This happens on each single visit to the statistics page until all commits are
 
  fetched. Statistics are kept cached until additional commits are added to the
 
  repository. In such a case RhodeCode will only fetch the new commits when
 
  updating it's cache.
 

	
 

	
 
With Celery enabled
 
+++++++++++++++++++
 

	
 
- on first visit on summary page RhodeCode will create task that will execute
 
  on celery workers, that will gather all stats until all commits are parsed,
 
  each task will parse 250 commits, and run next task to parse next 250 
 
  commits, until all are parsed.
 
- On the first visit to the summary page RhodeCode will create tasks that will
 
  execute on celery workers. This task will gather all of the stats until all
 
  commits are parsed, each task will parse 250 commits, and run the next task to
 
  parse next 250 commits, until all of the commits are parsed.
 

	
 
.. note::
 
   In any time You can disable statistics on each repository in repository edit
 
   form in admin panel, just uncheck the statistics checkbox.
 
\ No newline at end of file
 
   At any time you can disable statistics on each repository via the repository
 
   edit form in the admin panel. To do this just uncheck the statistics checkbox.
 
\ No newline at end of file
docs/upgrade.rst
Show inline comments
 
@@ -3,10 +3,13 @@
 
Upgrade
 
=======
 

	
 
Upgrade from Cheese Shop
 
Upgrading from Cheese Shop
 
------------------------
 

	
 
Easiest way to upgrade ``rhodecode`` is to run::
 
.. note::
 
   Firstly, it is recommended that you **always** perform a database backup before doing an upgrade.
 

	
 
The easiest way to upgrade ``rhodecode`` is to run::
 

	
 
 easy_install -U rhodecode
 

	
 
@@ -15,39 +18,31 @@ Or::
 
 pip install --upgrade rhodecode
 

	
 

	
 
Then make sure You run from the installation directory
 

	
 
::
 
Then make sure you run the following command from the installation directory::
 
 
 
 paster make-config RhodeCode production.ini
 
 
 
This will display any changes made from new version of RhodeCode To your
 
current config. And tries to do an automerge. It's always better to do a backup
 
of config file and recheck the content after merge.
 
This will display any changes made by the new version of RhodeCode to your
 
current configuration. It will try to perform an automerge. It's always better
 
to make a backup of your configuration file before hand and recheck the content after the automerge.
 

	
 
.. note::
 
   The next steps only apply to upgrading from non bugfix releases eg. from
 
   any minor or major releases. Bugfix releases (eg. 1.1.2->1.1.3) will 
 
   not have any database schema changes or whoosh library updates
 
   not have any database schema changes or whoosh library updates.
 

	
 
It's also good to rebuild the whoosh index since after upgrading the whoosh 
 
version there could be introduced incompatible index changes.
 
It is also recommended that you rebuild the whoosh index after upgrading since the new whoosh 
 
version could introduce some incompatible index changes.
 

	
 

	
 
The last step is to upgrade the database. To do this simply run
 

	
 
::
 
The final step is to upgrade the database. To do this simply run::
 

	
 
    paster upgrade-db production.ini
 
 
 
This will upgrade schema, as well as update some default on the database,
 
always recheck the settings of the application, if there are no new options
 
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::
 
   Always perform a database backup before doing upgrade.
 

	
 

	
 

	
 
.. _virtualenv: http://pypi.python.org/pypi/virtualenv  
 
.. _python: http://www.python.org/
0 comments (0 inline, 0 general)