changeset 1062: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