Mercurial > public > src > rhodecode
changeset 1126:053983a464e4 beta
docs and readme update
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Thu, 17 Feb 2011 00:44:45 +0100 |
parents | 9bb609d164e4 |
children | bbddef1e9ef2 |
files | README.rst docs/contributing.rst docs/installation.rst docs/setup.rst docs/upgrade.rst |
diffstat | 5 files changed, 82 insertions(+), 28 deletions(-) [+] |
line wrap: on
line diff
--- a/README.rst Thu Feb 17 00:43:39 2011 +0100 +++ b/README.rst Thu Feb 17 00:44:45 2011 +0100 @@ -4,12 +4,14 @@ ================================================= ``RhodeCode`` (formerly hg-app) is Pylons framework based Mercurial repository -browser/management with build in push/pull server and full text search. -It works on http/https, has build in permission/authentication(+ldap) features -It's similar to github or bitbucket, but it's suppose to run as standalone -hosted application, it's open source and focuses more on restricted access to -repositories. It's powered by vcs_ library that me and Lukasz Balcerzak created -to handle many various version control systems. +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 +control systems. RhodeCode uses `Semantic Versioning <http://semver.org/>`_ @@ -45,23 +47,28 @@ - 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 - and ldap + and LDAP - Full permissions (private/read/write/admin) and authentication per project. One account for web interface and mercurial_ push/pull/clone operations. +- Have built in users groups for easier permission management +- Users can fork other users repo. RhodeCode have also compare view to see + combined changeset for all changeset made within single push. - Mako templates let's you customize look and feel of application. -- Beautiful diffs, annotations and source codes all colored by pygments. +- Beautiful diffs, annotations and source codes all colored by pygments. Raw + diffs are made in git-diff format, including git binary-patches - 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 - breaking the main repository. + breaking the main repository. You can even write Your own hooks and install + them - Full text search powered by Whoosh on source codes, and file names. Build 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 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. +- Intelligent cache with invalidation after push or project change, provides + high 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 @@ -76,7 +83,6 @@ ---------------- - project grouping -- User groups/teams - code review (probably based on hg-review) - full git_ support, with push/pull server (currently in beta tests) - redmine integration
--- a/docs/contributing.rst Thu Feb 17 00:43:39 2011 +0100 +++ b/docs/contributing.rst Thu Feb 17 00:44:45 2011 +0100 @@ -6,4 +6,12 @@ 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. + +To run RhodeCode in a development version You always need to install tip +version of RhodeCode and VCS library. + + Thank You.
--- a/docs/installation.rst Thu Feb 17 00:43:39 2011 +0100 +++ b/docs/installation.rst Thu Feb 17 00:44:45 2011 +0100 @@ -22,16 +22,16 @@ Easiest way to install ``rhodecode`` is to run:: - easy_install rhodecode + easy_install rhodecode Or:: - pip install rhodecode + pip install rhodecode If you prefer to install manually simply grab latest release from http://pypi.python.org/pypi/rhodecode, decompres archive and run:: - python setup.py install + python setup.py install Step by step installation example @@ -44,27 +44,27 @@ :: - virtualenv --no-site-packages /var/www/rhodecode-venv + virtualenv --no-site-packages /var/www/rhodecode-venv - this will install new virtualenv_ into `/var/www/rhodecode-venv`. - Activate the virtualenv_ by running :: - source /var/www/rhodecode-venv/bin/activate + source /var/www/rhodecode-venv/bin/activate - Make a folder for rhodecode somewhere on the filesystem for example :: - mkdir /var/www/rhodecode + mkdir /var/www/rhodecode - Run this command to install rhodecode :: - easy_install rhodecode + easy_install rhodecode - this will install rhodecode together with pylons and all other required python libraries
--- a/docs/setup.rst Thu Feb 17 00:43:39 2011 +0100 +++ b/docs/setup.rst Thu Feb 17 00:44:45 2011 +0100 @@ -7,7 +7,7 @@ Setting up the application -------------------------- -First You'll ned to create RhodeCode config file. Run the following command +First You'll need to create RhodeCode config file. Run the following command to do this :: @@ -19,8 +19,10 @@ email settings, usage of static files, cache, celery settings and logging. +Next we need to create the database. I'll recommend to use sqlite (default) +or postgresql. Make sure You properly adjust the db url in the .ini file to use +other than the default sqlite database -Next we need to create the database. :: @@ -35,7 +37,7 @@ interface will work even without such an access but, when trying to do a push it'll eventually fail with permission denied errors. -You are ready to use rhodecode, to run it simply execute +You are ready to use RhodeCode, to run it simply execute :: @@ -92,13 +94,13 @@ incremental mode:: - paster make-index production.ini --repo-location=<location for repos> + paster make-index production.ini --repo-location=<location for repos> for full index rebuild You can use:: - paster make-index production.ini -f --repo-location=<location for repos> + paster make-index production.ini -f --repo-location=<location for repos> building index just for chosen repositories is possible with such command:: @@ -334,10 +336,18 @@ paster celeryd <configfile.ini> - .. note:: Make sure You run this command from same virtualenv, and with the same user that rhodecode runs. + +HTTPS support +------------- + +There are two ways to enable https, first is to set HTTP_X_URL_SCHEME in +Your http server headers, than rhodecode will recognise this headers and make +proper https redirections, another way is to set `force_https = true` +in the ini cofiguration to force using https, no headers are needed than to +enable https Nginx virtual host example @@ -426,6 +436,29 @@ http://wiki.pylonshq.com/display/pylonscookbook/Apache+as+a+reverse+proxy+for+Pylons +Apache as subdirectory +---------------------- + + +Apache subdirectory part:: + + <Location /rhodecode> + ProxyPass http://127.0.0.1:59542/rhodecode + ProxyPassReverse http://127.0.0.1:59542/rhodecode + SetEnvIf X-Url-Scheme https HTTPS=1 + </Location> + +Besides the regular apache setup You'll need to add such part to .ini file:: + + filter-with = proxy-prefix + +Add the following at the end of the .ini file:: + + [filter:proxy-prefix] + use = egg:PasteDeploy#prefix + prefix = /<someprefix> + + Apache's example FCGI config ---------------------------- @@ -462,7 +495,9 @@ - make sure You set a proper max_body_size for the http server +- Apache doesn't pass basicAuth on pull/push ? + - Make sure You added `WSGIPassAuthorization true` .. _virtualenv: http://pypi.python.org/pypi/virtualenv .. _python: http://www.python.org/
--- a/docs/upgrade.rst Thu Feb 17 00:43:39 2011 +0100 +++ b/docs/upgrade.rst Thu Feb 17 00:44:45 2011 +0100 @@ -25,15 +25,20 @@ 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. +.. note:: + The next steps only apply to upgrading from non bugfix releases eg. from + 1.1 to 1.2. Bugfix releases (eg. 1.1.2->1.1.3) will 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. +version there could be introduced incompatible index changes. The last step is to upgrade the database. To do this simply run :: - paster upgrade-db production.ini + 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