Changeset - 8b8edfc25856
[Not reviewed]
README.rst
Show inline comments
 
@@ -5,18 +5,18 @@ RhodeCode
 
About
 
-----
 

	
 
``RhodeCode`` is a fast and powerful management tool for Mercurial_ and GIT_ 
 
``RhodeCode`` is a fast and powerful management tool for Mercurial_ and GIT_
 
with a built in push/pull server and full text search and code-review.
 
It works on http/https and has a built in permission/authentication system with 
 
It works on http/https and has a built in permission/authentication system with
 
the ability to authenticate via LDAP or ActiveDirectory. RhodeCode also provides
 
simple API so it's easy integrable with existing external systems.
 

	
 
RhodeCode is similar in some respects to github_ or bitbucket_, 
 
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 GIT_  repositories. 
 
RhodeCode works on \*nix systems and Windows it is powered by a vcs_ library 
 
that Lukasz Balcerzak and Marcin Kuzminski created to handle multiple 
 
It is open source and donation ware and focuses more on providing a customized,
 
self administered interface for Mercurial_ and GIT_  repositories.
 
RhodeCode works on \*nix systems and Windows it is powered by a vcs_ library
 
that Lukasz Balcerzak and Marcin Kuzminski created to handle multiple
 
different version control systems.
 

	
 
RhodeCode uses `PEP386 versioning <http://www.python.org/dev/peps/pep-0386/>`_
 
@@ -29,7 +29,7 @@ Stable releases of RhodeCode are best in
 

	
 
Or::
 

	
 
    pip install rhodecode 
 
    pip install rhodecode
 

	
 
Detailed instructions and links may be found on the Installation page.
 

	
 
@@ -51,7 +51,7 @@ Source code
 
-----------
 

	
 
The latest sources can be obtained from official RhodeCode instance
 
https://secure.rhodecode.org 
 
https://secure.rhodecode.org
 

	
 

	
 
MIRRORS:
 
@@ -68,7 +68,7 @@ https://github.com/marcinkuzminski/rhode
 
RhodeCode Features
 
------------------
 

	
 
- Has its own middleware to handle mercurial_ and git_ protocol requests. 
 
- Has its own middleware to handle mercurial_ and git_ protocol requests.
 
  Each request is authenticated and logged together with IP address.
 
- Build for speed and performance. You can make multiple pulls/pushes simultaneous.
 
  Proven to work with 1000s of repositories and users
 
@@ -86,41 +86,41 @@ RhodeCode Features
 
  changeset statuses, and notification system.
 
- Importing and syncing repositories from remote locations for GIT_, Mercurial_ and  SVN.
 
- Mako templates let's you customize the look and feel of the application.
 
- Beautiful diffs, annotations and source code browsing all colored by pygments. 
 
- 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
 
- Mercurial_ and Git_ DAG graphs and yui-flot powered graphs with zooming and statistics
 
  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 
 
- Server side forks. It is possible to fork a project and modify it freely
 
  without breaking the main repository.
 
- rst and markdown README support for repositories. 
 
- rst and markdown README support for repositories.
 
- Full text search powered by Whoosh on the source files, commit messages, and file names.
 
  Build in indexing daemons, with optional incremental index build
 
  (no external search servers required all in one application)
 
- Setup project descriptions/tags and info inside built in db for easy, non 
 
- Setup project descriptions/tags and info inside built in db for easy, non
 
  file-system operations.
 
- Intelligent cache with invalidation after push or project change, provides 
 
- 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_  
 
- Backup scripts can do backup of whole app and send it over scp to desired 
 
  location 
 
- 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
 
----------------
 

	
 
- Finer granular permissions per branch, or subrepo
 
- Web based merges for pull requests
 
- Tracking history for each lines in files
 
- Simple issue tracker 
 
- Simple issue tracker
 
- SSH based authentication with server side key management
 
- Commit based built in wiki system
 
- Gist server
 
- More statistics and graph (global annotation + some more statistics)
 
- Other advancements as development continues (or you can of course make 
 
- Other advancements as development continues (or you can of course make
 
  additions and or requests)
 

	
 
License
 
@@ -135,10 +135,10 @@ Getting help
 
Listed bellow are various support resources that should help.
 

	
 
.. note::
 
   
 

	
 
   Please try to read the documentation before posting any issues, especially
 
   the **troubleshooting section**
 
 
 

	
 
- Join the `Google group <http://groups.google.com/group/rhodecode>`_ and ask
 
  any questions.
 

	
 
@@ -163,9 +163,9 @@ You may also build the documentation for
 
   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: 
 
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/
 
.. _sphinx: http://sphinx.pocoo.org/
 
@@ -176,4 +176,4 @@ have sphinx_ installed you can install i
 
.. _git: http://git-scm.com/
 
.. _celery: http://celeryproject.org/
 
.. _Sphinx: http://sphinx.pocoo.org/
 
.. _vcs: http://pypi.python.org/pypi/vcs
 
\ No newline at end of file
 
.. _vcs: http://pypi.python.org/pypi/vcs
docs/api/api.rst
Show inline comments
 
@@ -13,10 +13,10 @@ with JSON protocol both ways. An url to 
 
API ACCESS FOR WEB VIEWS
 
++++++++++++++++++++++++
 

	
 
API access can also be turned on for each web view in RhodeCode that is 
 
decorated with `@LoginRequired` decorator. To enable API access simple change 
 
the standard login decorator to `@LoginRequired(api_access=True)`. 
 
After this change, a rhodecode view can be accessed without login by adding a 
 
API access can also be turned on for each web view in RhodeCode that is
 
decorated with `@LoginRequired` decorator. To enable API access simple change
 
the standard login decorator to `@LoginRequired(api_access=True)`.
 
After this change, a rhodecode view can be accessed without login by adding a
 
GET parameter `?api_key=<api_key>` to url. By default this is only
 
enabled on RSS/ATOM feed views.
 

	
 
@@ -26,7 +26,7 @@ API ACCESS
 

	
 
All clients are required to send JSON-RPC spec JSON data::
 

	
 
    {   
 
    {
 
        "id:"<id>",
 
        "api_key":"<api_key>",
 
        "method":"<method_name>",
 
@@ -49,7 +49,7 @@ Simply provide
 

	
 
RhodeCode API will return always a JSON-RPC response::
 

	
 
    {   
 
    {
 
        "id":<id>, # matching id sent by request
 
        "result": "<result>"|null, # JSON formatted result, null if any errors
 
        "error": "null"|<error_message> # JSON formatted error (if any)
 
@@ -70,14 +70,14 @@ will be available.
 
To get started quickly simply run::
 

	
 
  rhodecode-api _create_config --apikey=<youapikey> --apihost=<rhodecode host>
 
 
 

	
 
This will create a file named .config in the directory you executed it storing
 
json config file with credentials. You can skip this step and always provide
 
both of the arguments to be able to communicate with server
 

	
 

	
 
after that simply run any api command for example get_repo::
 
 
 

	
 
 rhodecode-api get_repo
 

	
 
 calling {"api_key": "<apikey>", "id": 75, "args": {}, "method": "get_repo"} to http://127.0.0.1:5000
 
@@ -90,8 +90,8 @@ Ups looks like we forgot to add an argum
 

	
 
Let's try again now giving the repoid as parameters::
 

	
 
    rhodecode-api get_repo repoid:rhodecode   
 
 
 
    rhodecode-api get_repo repoid:rhodecode
 

	
 
    calling {"api_key": "<apikey>", "id": 39, "args": {"repoid": "rhodecode"}, "method": "get_repo"} to http://127.0.0.1:5000
 
    rhodecode said:
 
    {'error': None,
 
@@ -132,7 +132,7 @@ rescan_repos
 

	
 
Dispatch rescan repositories action. If remove_obsolete is set
 
RhodeCode will delete repos that are in database but not in the filesystem.
 
This command can be executed only using api_key belonging to user with admin 
 
This command can be executed only using api_key belonging to user with admin
 
rights.
 

	
 
INPUT::
 
@@ -147,7 +147,7 @@ INPUT::
 
OUTPUT::
 

	
 
    id : <id_given_in_input>
 
    result : "{'added': [<list of names of added repos>], 
 
    result : "{'added': [<list of names of added repos>],
 
               'removed': [<list of names of removed repos>]}"
 
    error :  null
 

	
 
@@ -157,7 +157,7 @@ lock
 

	
 
Set locking state on given repository by given user. If userid param is skipped
 
, then it is set to id of user whos calling this method.
 
This command can be executed only using api_key belonging to user with admin 
 
This command can be executed only using api_key belonging to user with admin
 
rights or regular user that have admin or write access to repository.
 

	
 
INPUT::
 
@@ -183,7 +183,7 @@ show_ip
 

	
 
Shows IP address as seen from RhodeCode server, together with all
 
defined IP addresses for given user.
 
This command can be executed only using api_key belonging to user with admin 
 
This command can be executed only using api_key belonging to user with admin
 
rights.
 

	
 
INPUT::
 
@@ -208,7 +208,7 @@ OUTPUT::
 
                                ...
 
                             ]
 
             }
 
    
 

	
 
    error :  null
 

	
 

	
 
@@ -217,7 +217,7 @@ get_user
 

	
 
Get's an user by username or user_id, Returns empty result if user is not found.
 
If userid param is skipped it is set to id of user who is calling this method.
 
This command can be executed only using api_key belonging to user with admin 
 
This command can be executed only using api_key belonging to user with admin
 
rights, or regular users that cannot specify different userid than theirs
 

	
 

	
 
@@ -226,14 +226,14 @@ INPUT::
 
    id : <id_for_response>
 
    api_key : "<api_key>"
 
    method :  "get_user"
 
    args :    { 
 
    args :    {
 
                "userid" : "<username or user_id Optional(=apiuser)>"
 
              }
 

	
 
OUTPUT::
 

	
 
    id : <id_given_in_input>
 
    result: None if user does not exist or 
 
    result: None if user does not exist or
 
            {
 
                "user_id" :     "<user_id>",
 
                "api_key" :     "<api_key>",
 
@@ -298,7 +298,7 @@ OUTPUT::
 
create_user
 
-----------
 

	
 
Creates new user. This command can 
 
Creates new user. This command can
 
be executed only using api_key belonging to user with admin rights.
 

	
 

	
 
@@ -342,7 +342,7 @@ OUTPUT::
 
update_user
 
-----------
 

	
 
updates given user if such user exists. This command can 
 
updates given user if such user exists. This command can
 
be executed only using api_key belonging to user with admin rights.
 

	
 

	
 
@@ -379,7 +379,7 @@ OUTPUT::
 
                "admin" :    "<bool>",
 
                "ldap_dn" :  "<ldap_dn>",
 
                "last_login": "<last_login>",
 
              },              
 
              },
 
            }
 
    error:  null
 

	
 
@@ -388,7 +388,7 @@ delete_user
 
-----------
 

	
 

	
 
deletes givenuser if such user exists. This command can 
 
deletes givenuser if such user exists. This command can
 
be executed only using api_key belonging to user with admin rights.
 

	
 

	
 
@@ -436,7 +436,7 @@ OUTPUT::
 
               "group_name" :     "<groupname>",
 
               "active":          "<bool>",
 
               "members" :  [
 
                              { 
 
                              {
 
                                "user_id" :  "<user_id>",
 
                                "username" : "<username>",
 
                                "firstname": "<firstname>",
 
@@ -457,7 +457,7 @@ OUTPUT::
 
get_users_groups
 
----------------
 

	
 
Lists all existing users groups. This command can be executed only using 
 
Lists all existing users groups. This command can be executed only using
 
api_key belonging to user with admin rights.
 

	
 

	
 
@@ -516,7 +516,7 @@ OUTPUT::
 
add_user_to_users_group
 
-----------------------
 

	
 
Adds a user to a users group. If user exists in that group success will be 
 
Adds a user to a users group. If user exists in that group success will be
 
`false`. This command can be executed only using api_key
 
belonging to user with admin rights
 

	
 
@@ -536,7 +536,7 @@ OUTPUT::
 
    id : <id_given_in_input>
 
    result: {
 
              "success": True|False # depends on if member is in group
 
              "msg": "added member `<username>` to users group `<groupname>` | 
 
              "msg": "added member `<username>` to users group `<groupname>` |
 
                      User is already in that group"
 
            }
 
    error:  null
 
@@ -546,7 +546,7 @@ remove_user_from_users_group
 
----------------------------
 

	
 
Removes a user from a users group. If user is not in given group success will
 
be `false`. This command can be executed only 
 
be `false`. This command can be executed only
 
using api_key belonging to user with admin rights
 

	
 

	
 
@@ -565,7 +565,7 @@ OUTPUT::
 
    id : <id_given_in_input>
 
    result: {
 
              "success":  True|False,  # depends on if member is in group
 
              "msg": "removed member <username> from users group <groupname> | 
 
              "msg": "removed member <username> from users group <groupname> |
 
                      User wasn't in group"
 
            }
 
    error:  null
 
@@ -575,8 +575,8 @@ get_repo
 
--------
 

	
 
Gets an existing repository by it's name or repository_id. Members will return
 
either users_group or user associated to that repository. This command can be 
 
executed only using api_key belonging to user with admin 
 
either users_group or user associated to that repository. This command can be
 
executed only using api_key belonging to user with admin
 
rights or regular user that have at least read access to repository.
 

	
 

	
 
@@ -600,9 +600,9 @@ OUTPUT::
 
                "clone_uri" :        "<clone_uri>",
 
                "enable_downloads":  "<bool>",
 
                "enable_locking":    "<bool>",
 
                "enable_statistics": "<bool>",                
 
                "enable_statistics": "<bool>",
 
                "private":           "<bool>",
 
                "created_on" :       "<date_time_created>",                
 
                "created_on" :       "<date_time_created>",
 
                "description" :      "<description>",
 
                "landing_rev":       "<landing_rev>",
 
                "last_changeset":    {
 
@@ -616,7 +616,7 @@ OUTPUT::
 
                "owner":             "<repo_owner>",
 
                "fork_of":           "<name_of_fork_parent>",
 
                "members" :     [
 
                                  { 
 
                                  {
 
                                    "type":        "user",
 
                                    "user_id" :    "<user_id>",
 
                                    "username" :   "<username>",
 
@@ -631,7 +631,7 @@ OUTPUT::
 
                                    "permission" : "repository.(read|write|admin)"
 
                                  },
 
 
                                  { 
 
                                  {
 
                                    "type":      "users_group",
 
                                    "id" :       "<usersgroupid>",
 
                                    "name" :     "<usersgroupname>",
 
@@ -652,9 +652,9 @@ OUTPUT::
 
                                    "active" :      "<bool>",
 
                                    "admin" :       "<bool>",
 
                                    "ldap_dn" :     "<ldap_dn>",
 
                                    "last_login":   "<last_login>",                                    
 
                                    "last_login":   "<last_login>",
 
                                  },
 
           
 
 
                 ]
 
            }
 
    error:  null
 
@@ -663,8 +663,8 @@ OUTPUT::
 
get_repos
 
---------
 

	
 
Lists all existing repositories. This command can be executed only using 
 
api_key belonging to user with admin rights or regular user that have 
 
Lists all existing repositories. This command can be executed only using
 
api_key belonging to user with admin rights or regular user that have
 
admin, write or read access to repository.
 

	
 

	
 
@@ -685,14 +685,14 @@ OUTPUT::
 
                "repo_type" :        "<repo_type>",
 
                "clone_uri" :        "<clone_uri>",
 
                "private": :         "<bool>",
 
                "created_on" :       "<datetimecreated>",                
 
                "created_on" :       "<datetimecreated>",
 
                "description" :      "<description>",
 
                "landing_rev":       "<landing_rev>",
 
                "owner":             "<repo_owner>",
 
                "fork_of":           "<name_of_fork_parent>",
 
                "enable_downloads":  "<bool>",
 
                "enable_locking":    "<bool>",
 
                "enable_statistics": "<bool>",                   
 
                "enable_statistics": "<bool>",
 
              },
 
 
            ]
 
@@ -702,9 +702,9 @@ OUTPUT::
 
get_repo_nodes
 
--------------
 

	
 
returns a list of nodes and it's children in a flat list for a given path 
 
at given revision. It's possible to specify ret_type to show only `files` or 
 
`dirs`. This command can be executed only using api_key belonging to user 
 
returns a list of nodes and it's children in a flat list for a given path
 
at given revision. It's possible to specify ret_type to show only `files` or
 
`dirs`. This command can be executed only using api_key belonging to user
 
with admin rights
 

	
 

	
 
@@ -737,9 +737,9 @@ create_repo
 
-----------
 

	
 
Creates a repository. If repository name contains "/", all needed repository
 
groups will be created. For example "foo/bar/baz" will create groups 
 
"foo", "bar" (with "foo" as parent), and create "baz" repository with 
 
"bar" as group. This command can be executed only using api_key belonging to user with admin 
 
groups will be created. For example "foo/bar/baz" will create groups
 
"foo", "bar" (with "foo" as parent), and create "baz" repository with
 
"bar" as group. This command can be executed only using api_key belonging to user with admin
 
rights or regular user that have create repository permission. Regular users
 
cannot specify owner parameter
 

	
 
@@ -773,14 +773,14 @@ OUTPUT::
 
                "repo_type" :        "<repo_type>",
 
                "clone_uri" :        "<clone_uri>",
 
                "private": :         "<bool>",
 
                "created_on" :       "<datetimecreated>",                
 
                "created_on" :       "<datetimecreated>",
 
                "description" :      "<description>",
 
                "landing_rev":       "<landing_rev>",
 
                "owner":             "<username or user_id>",
 
                "fork_of":           "<name_of_fork_parent>",
 
                "enable_downloads":  "<bool>",
 
                "enable_locking":    "<bool>",
 
                "enable_statistics": "<bool>",                     
 
                "enable_statistics": "<bool>",
 
              },
 
            }
 
    error:  null
 
@@ -809,7 +809,7 @@ INPUT::
 
                "copy_permissions": "<bool>",
 
                "private":          "<bool>",
 
                "landing_rev":      "<landing_rev>"
 
                                
 

	
 
              }
 

	
 
OUTPUT::
 
@@ -825,7 +825,7 @@ OUTPUT::
 
delete_repo
 
-----------
 

	
 
Deletes a repository. This command can be executed only using api_key belonging to user with admin 
 
Deletes a repository. This command can be executed only using api_key belonging to user with admin
 
rights or regular user that have admin access to repository.
 

	
 

	
 
@@ -852,7 +852,7 @@ grant_user_permission
 
---------------------
 

	
 
Grant permission for user on given repository, or update existing one
 
if found. This command can be executed only using api_key belonging to user 
 
if found. This command can be executed only using api_key belonging to user
 
with admin rights.
 

	
 

	
 
@@ -880,7 +880,7 @@ OUTPUT::
 
revoke_user_permission
 
----------------------
 

	
 
Revoke permission for user on given repository. This command can be executed 
 
Revoke permission for user on given repository. This command can be executed
 
only using api_key belonging to user with admin rights.
 

	
 

	
 
@@ -908,7 +908,7 @@ grant_users_group_permission
 
----------------------------
 

	
 
Grant permission for users group on given repository, or update
 
existing one if found. This command can be executed only using 
 
existing one if found. This command can be executed only using
 
api_key belonging to user with admin rights.
 

	
 

	
 
@@ -931,12 +931,12 @@ OUTPUT::
 
              "success": true
 
            }
 
    error:  null
 
    
 
    
 

	
 

	
 
revoke_users_group_permission
 
-----------------------------
 

	
 
Revoke permission for users group on given repository.This command can be 
 
Revoke permission for users group on given repository.This command can be
 
executed only using api_key belonging to user with admin rights.
 

	
 
INPUT::
 
@@ -956,4 +956,4 @@ OUTPUT::
 
              "msg" : "Revoked perm for group: `<usersgroupname>` in repo: `<reponame>`",
 
              "success": true
 
            }
 
    error:  null
 
\ No newline at end of file
 
    error:  null
docs/api/models.rst
Show inline comments
 
@@ -6,30 +6,30 @@ The :mod:`models` Module
 

	
 
.. automodule:: rhodecode.model
 
   :members:
 
   
 

	
 
.. automodule:: rhodecode.model.comment
 
   :members:
 
  
 

	
 
.. automodule:: rhodecode.model.notification
 
   :members:   
 
   :members:
 

	
 
.. automodule:: rhodecode.model.permission
 
   :members:
 

	
 
.. automodule:: rhodecode.model.repo_permission
 
   :members:      
 
   :members:
 

	
 
.. automodule:: rhodecode.model.repo
 
   :members:   
 
   :members:
 

	
 
.. automodule:: rhodecode.model.repos_group
 
   :members:
 
   
 

	
 
.. automodule:: rhodecode.model.scm
 
   :members:
 
   
 

	
 
.. automodule:: rhodecode.model.user
 
   :members:      
 
   
 
   :members:
 

	
 
.. automodule:: rhodecode.model.users_group
 
   :members:   
 
\ No newline at end of file
 
   :members:
docs/changelog.rst
Show inline comments
 
@@ -56,7 +56,7 @@ fixes
 
news
 
++++
 

	
 
- implements #677: Don't allow to close pull requests when they are 
 
- implements #677: Don't allow to close pull requests when they are
 
  under-review status
 
- implemented #670 Implementation of Roles in Pull Request
 

	
 
@@ -93,7 +93,7 @@ news
 
- implemented #638 permissions overview to groups
 
- implements #636, lazy loading of history and authors to speed up source
 
  pages rendering
 
- implemented #647, option to pass list of default encoding used to 
 
- implemented #647, option to pass list of default encoding used to
 
  encode to/decode from unicode
 
- added caching layer into RSS/ATOM feeds.
 
- basic implementation of cherry picking changesets for pull request, ref #575
 
@@ -116,7 +116,7 @@ fixes
 
- fixes #612 Double quotes to Single quotes result in bad html in diff
 
- fixes #630 git statistics do too much work making them slow.
 
- fixes #625 Git-Tags are not displayed in Shortlog
 
- fix for issue #602, enforce str when setting mercurial UI object. 
 
- fix for issue #602, enforce str when setting mercurial UI object.
 
  When this is used together with mercurial internal translation system
 
  it can lead to UnicodeDecodeErrors
 
- fixes #645 Fix git handler when doing delete remote branch
 
@@ -126,7 +126,7 @@ fixes
 
  different summary page loads
 
- implemented #658 Changing username in LDAP-Mode should not be allowed.
 
- fixes #652 switch to generator approach when doing file annotation to prevent
 
  huge memory consumption 
 
  huge memory consumption
 
- fixes #666 move lockkey path location to cache_dir to ensure this path is
 
  always writable for rhodecode server
 
- many more small fixes and improvements
 
@@ -179,7 +179,7 @@ fixes
 

	
 
- fixed #570 explicit users group permissions can overwrite owner permissions
 
- fixed #578 set proper PATH with current Python for Git
 
  hooks to execute within same Python as RhodeCode 
 
  hooks to execute within same Python as RhodeCode
 
- fixed issue with Git bare repos that ends with .git in name
 

	
 
1.4.2 (**2012-09-12**)
 
@@ -194,7 +194,7 @@ news
 
  groups. Now only write access to group allows to create a repostiory
 
  within that group
 
- #565 Add support for {netloc} and {scheme} to alternative_gravatar_url
 
- updated translation for zh_CN 
 
- updated translation for zh_CN
 

	
 
fixes
 
+++++
 
@@ -213,7 +213,7 @@ news
 
++++
 

	
 
- always put a comment about code-review status change even if user send
 
  empty data 
 
  empty data
 
- modified_on column saves repository update and it's going to be used
 
  later for light version of main page ref #500
 
- pull request notifications send much nicer emails with details about pull
 
@@ -224,10 +224,10 @@ fixes
 
+++++
 

	
 
- fixed migrations of permissions that can lead to inconsistency.
 
  Some users sent feedback that after upgrading from older versions issues 
 
  Some users sent feedback that after upgrading from older versions issues
 
  with updating default permissions occurred. RhodeCode detects that now and
 
  resets default user permission to initial state if there is a need for that.
 
  Also forces users to set the default value for new forking permission. 
 
  Also forces users to set the default value for new forking permission.
 
- #535 improved apache wsgi example configuration in docs
 
- fixes #550 mercurial repositories comparision failed when origin repo had
 
  additional not-common changesets
 
@@ -246,7 +246,7 @@ fixes
 

	
 
news
 
++++
 
 
 

	
 
- new codereview system
 
- email map, allowing users to have multiple email addresses mapped into
 
  their accounts
 
@@ -257,11 +257,11 @@ news
 
- #464 added links to groups in permission box
 
- #465 mentions autocomplete inside comments boxes
 
- #469 added --update-only option to whoosh to re-index only given list
 
  of repos in index 
 
  of repos in index
 
- rhodecode-api CLI client
 
- new git http protocol replaced buggy dulwich implementation.
 
  Now based on pygrack & gitweb
 
- Improved RSS/ATOM feeds. Discoverable by browsers using proper headers, and 
 
- Improved RSS/ATOM feeds. Discoverable by browsers using proper headers, and
 
  reformated based on user suggestions. Additional rss/atom feeds for user
 
  journal
 
- various i18n improvements
 
@@ -269,21 +269,21 @@ news
 
- File view now displays small gravatars off all authors of given file
 
- Implemented landing revisions. Each repository will get landing_rev attribute
 
  that defines 'default' revision/branch for generating readme files
 
- Implemented #509, RhodeCode enforces SSL for push/pulling if requested at 
 
- Implemented #509, RhodeCode enforces SSL for push/pulling if requested at
 
  earliest possible call.
 
- Import remote svn repositories to mercurial using hgsubversion.
 
- Fixed #508 RhodeCode now has a option to explicitly set forking permissions
 
- RhodeCode can use alternative server for generating avatar icons
 
- implemented repositories locking. Pull locks, push unlocks. Also can be done
 
  via API calls
 
- #538 form for permissions can handle multiple users at once 
 
- #538 form for permissions can handle multiple users at once
 

	
 
fixes
 
+++++
 

	
 
- improved translations
 
- fixes issue #455 Creating an archive generates an exception on Windows
 
- fixes #448 Download ZIP archive keeps file in /tmp open and results 
 
- fixes #448 Download ZIP archive keeps file in /tmp open and results
 
  in out of disk space
 
- fixes issue #454 Search results under Windows include proceeding
 
  backslash
 
@@ -295,9 +295,9 @@ fixes
 
- fixed issue #459. Changed the way of obtaining logger in reindex task.
 
- fixed #453 added ID field in whoosh SCHEMA that solves the issue of
 
  reindexing modified files
 
- fixed #481 rhodecode emails are sent without Date header 
 
- fixed #481 rhodecode emails are sent without Date header
 
- fixed #458 wrong count when no repos are present
 
- fixed issue #492 missing `\ No newline at end of file` test at the end of 
 
- fixed issue #492 missing `\ No newline at end of file` test at the end of
 
  new chunk in html diff
 
- full text search now works also for commit messages
 

	
 
@@ -308,8 +308,8 @@ news
 
++++
 

	
 
- chinese traditional translation
 
- changed setup-app into setup-rhodecode and added arguments for auto-setup 
 
  mode that doesn't need user interaction 
 
- changed setup-app into setup-rhodecode and added arguments for auto-setup
 
  mode that doesn't need user interaction
 

	
 
fixes
 
+++++
 
@@ -329,11 +329,11 @@ news
 
- use ext_json for json module
 
- unified annotation view with file source view
 
- notification improvements, better inbox + css
 
- #419 don't strip passwords for login forms, make rhodecode 
 
- #419 don't strip passwords for login forms, make rhodecode
 
  more compatible with LDAP servers
 
- Added HTTP_X_FORWARDED_FOR as another method of extracting 
 
  IP for pull/push logs. - moved all to base controller  
 
- #415: Adding comment to changeset causes reload. 
 
- Added HTTP_X_FORWARDED_FOR as another method of extracting
 
  IP for pull/push logs. - moved all to base controller
 
- #415: Adding comment to changeset causes reload.
 
  Comments are now added via ajax and doesn't reload the page
 
- #374 LDAP config is discarded when LDAP can't be activated
 
- limited push/pull operations are now logged for git in the journal
 
@@ -349,7 +349,7 @@ fixes
 
- #418 cast to unicode fixes in notification objects
 
- #426 fixed mention extracting regex
 
- fixed remote-pulling for git remotes remopositories
 
- fixed #434: Error when accessing files or changesets of a git repository 
 
- fixed #434: Error when accessing files or changesets of a git repository
 
  with submodules
 
- fixed issue with empty APIKEYS for users after registration ref. #438
 
- fixed issue with getting README files from git repositories
 
@@ -367,14 +367,14 @@ news
 
  post push/pull/create repo hooks callbacks
 
- implemented #377 Users view for his own permissions on account page
 
- #399 added inheritance of permissions for users group on repos groups
 
- #401 repository group is automatically pre-selected when adding repos 
 
- #401 repository group is automatically pre-selected when adding repos
 
  inside a repository group
 
- added alternative HTTP 403 response when client failed to authenticate. Helps 
 
- added alternative HTTP 403 response when client failed to authenticate. Helps
 
  solving issues with Mercurial and LDAP
 
- #402 removed group prefix from repository name when listing repositories 
 
- #402 removed group prefix from repository name when listing repositories
 
  inside a group
 
- added gravatars into permission view and permissions autocomplete
 
- #347 when running multiple RhodeCode instances, properly invalidates cache 
 
- #347 when running multiple RhodeCode instances, properly invalidates cache
 
  for all registered servers
 

	
 
fixes
 
@@ -384,15 +384,15 @@ fixes
 
- fixed #385 clone by ID url was loosing proxy prefix in URL
 
- fixed some unicode problems with waitress
 
- fixed issue with escaping < and > in changeset commits
 
- fixed error occurring during recursive group creation in API 
 
- fixed error occurring during recursive group creation in API
 
  create_repo function
 
- fixed #393 py2.5 fixes for routes url generator
 
- fixed #397 Private repository groups shows up before login
 
- fixed #396 fixed problems with revoking users in nested groups
 
- fixed mysql unicode issues + specified InnoDB as default engine with 
 
- fixed mysql unicode issues + specified InnoDB as default engine with
 
  utf8 charset
 
- #406 trim long branch/tag names in changelog to not break UI
 
  
 

	
 
1.3.3 (**2012-03-02**)
 
----------------------
 

	
 
@@ -403,11 +403,11 @@ news
 
fixes
 
+++++
 

	
 
- fixed some python2.5 compatibility issues 
 
- fixed some python2.5 compatibility issues
 
- fixed issues with removed repos was accidentally added as groups, after
 
  full rescan of paths
 
- fixes #376 Cannot edit user (using container auth)
 
- fixes #378 Invalid image urls on changeset screen with proxy-prefix 
 
- fixes #378 Invalid image urls on changeset screen with proxy-prefix
 
  configuration
 
- fixed initial sorting of repos inside repo group
 
- fixes issue when user tried to resubmit same permission into user/user_groups
 
@@ -415,7 +415,7 @@ fixes
 
- fixed raw_changeset for git. It was generated with hg patch headers
 
- fixed vcs issue with last_changeset for filenodes
 
- fixed missing commit after hook delete
 
- fixed #372 issues with git operation detection that caused a security issue 
 
- fixed #372 issues with git operation detection that caused a security issue
 
  for git repos
 

	
 
1.3.2 (**2012-02-28**)
 
@@ -432,9 +432,9 @@ fixes
 
- fixed git remote repos validator that prevented from cloning remote git repos
 
- fixes #370 ending slashes fixes for repo and groups
 
- fixes #368 improved git-protocol detection to handle other clients
 
- fixes #366 When Setting Repository Group To Blank Repo Group Wont Be 
 
- fixes #366 When Setting Repository Group To Blank Repo Group Wont Be
 
  Moved To Root
 
- fixes #371 fixed issues with beaker/sqlalchemy and non-ascii cache keys 
 
- fixes #371 fixed issues with beaker/sqlalchemy and non-ascii cache keys
 
- fixed #373 missing cascade drop on user_group_to_perm table
 

	
 
1.3.1 (**2012-02-27**)
 
@@ -448,7 +448,7 @@ fixes
 
+++++
 

	
 
- redirection loop occurs when remember-me wasn't checked during login
 
- fixes issues with git blob history generation 
 
- fixes issues with git blob history generation
 
- don't fetch branch for git in file history dropdown. Causes unneeded slowness
 

	
 
1.3.0 (**2012-02-26**)
 
@@ -457,19 +457,19 @@ fixes
 
news
 
++++
 

	
 
- code review, inspired by github code-comments 
 
- code review, inspired by github code-comments
 
- #215 rst and markdown README files support
 
- #252 Container-based and proxy pass-through authentication support
 
- #44 branch browser. Filtering of changelog by branches
 
- mercurial bookmarks support
 
- new hover top menu, optimized to add maximum size for important views
 
- configurable clone url template with possibility to specify  protocol like 
 
- configurable clone url template with possibility to specify  protocol like
 
  ssh:// or http:// and also manually alter other parts of clone_url.
 
- enabled largefiles extension by default
 
- optimized summary file pages and saved a lot of unused space in them
 
- #239 option to manually mark repository as fork
 
- #320 mapping of commit authors to RhodeCode users
 
- #304 hashes are displayed using monospace font    
 
- #304 hashes are displayed using monospace font
 
- diff configuration, toggle white lines and context lines
 
- #307 configurable diffs, whitespace toggle, increasing context lines
 
- sorting on branches, tags and bookmarks using YUI datatable
 
@@ -477,17 +477,17 @@ news
 
- implements #330 api method for listing nodes ar particular revision
 
- #73 added linking issues in commit messages to chosen issue tracker url
 
  based on user defined regular expression
 
- added linking of changesets in commit messages  
 
- added linking of changesets in commit messages
 
- new compact changelog with expandable commit messages
 
- firstname and lastname are optional in user creation
 
- #348 added post-create repository hook
 
- #212 global encoding settings is now configurable from .ini files 
 
- #212 global encoding settings is now configurable from .ini files
 
- #227 added repository groups permissions
 
- markdown gets codehilite extensions
 
- new API methods, delete_repositories, grante/revoke permissions for groups 
 
- new API methods, delete_repositories, grante/revoke permissions for groups
 
  and repos
 
  
 
    
 

	
 

	
 
fixes
 
+++++
 

	
 
@@ -495,15 +495,15 @@ fixes
 
- fixed sorting of repo tables
 
- #326 escape of special html entities in diffs
 
- normalized user_name => username in api attributes
 
- fixes #298 ldap created users with mixed case emails created conflicts 
 
- fixes #298 ldap created users with mixed case emails created conflicts
 
  on saving a form
 
- fixes issue when owner of a repo couldn't revoke permissions for users 
 
- fixes issue when owner of a repo couldn't revoke permissions for users
 
  and groups
 
- fixes #271 rare JSON serialization problem with statistics
 
- fixes #337 missing validation check for conflicting names of a group with a
 
  repositories group
 
- #340 fixed session problem for mysql and celery tasks
 
- fixed #331 RhodeCode mangles repository names if the a repository group 
 
- fixed #331 RhodeCode mangles repository names if the a repository group
 
  contains the "full path" to the repositories
 
- #355 RhodeCode doesn't store encrypted LDAP passwords
 

	
 
@@ -524,7 +524,7 @@ fixes
 
  operation leading to crash.
 
- fixed missing email in account page.
 
- Reverted Mercurial to 2.0.1 for windows due to bug in Mercurial that makes
 
  forking on windows impossible 
 
  forking on windows impossible
 

	
 
1.2.4 (**2012-01-19**)
 
----------------------
 
@@ -536,23 +536,23 @@ news
 
  full support to largefiles extension. Enabled by default in new installations
 
- #329 Ability to Add/Remove Groups to/from a Repository via AP
 
- added requires.txt file with requirements
 
     
 

	
 
fixes
 
+++++
 

	
 
- fixes db session issues with celery when emailing admins
 
- #331 RhodeCode mangles repository names if the a repository group 
 
- #331 RhodeCode mangles repository names if the a repository group
 
  contains the "full path" to the repositories
 
- #298 Conflicting e-mail addresses for LDAP and RhodeCode users
 
- DB session cleanup after hg protocol operations, fixes issues with
 
  `mysql has gone away` errors
 
- #333 doc fixes for get_repo api function
 
- #271 rare JSON serialization problem with statistics enabled
 
- #337 Fixes issues with validation of repository name conflicting with 
 
- #337 Fixes issues with validation of repository name conflicting with
 
  a group name. A proper message is now displayed.
 
- #292 made ldap_dn in user edit readonly, to get rid of confusion that field
 
  doesn't work   
 
- #316 fixes issues with web description in hgrc files 
 
  doesn't work
 
- #316 fixes issues with web description in hgrc files
 

	
 
1.2.3 (**2011-11-02**)
 
----------------------
 
@@ -561,20 +561,20 @@ news
 
++++
 

	
 
- added option to manage repos group for non admin users
 
- added following API methods for get_users, create_user, get_users_groups, 
 
  get_users_group, create_users_group, add_user_to_users_groups, get_repos, 
 
- added following API methods for get_users, create_user, get_users_groups,
 
  get_users_group, create_users_group, add_user_to_users_groups, get_repos,
 
  get_repo, create_repo, add_user_to_repo
 
- implements #237 added password confirmation for my account 
 
- implements #237 added password confirmation for my account
 
  and admin edit user.
 
- implements #291 email notification for global events are now sent to all
 
  administrator users, and global config email.
 
     
 

	
 
fixes
 
+++++
 

	
 
- added option for passing auth method for smtp mailer
 
- #276 issue with adding a single user with id>10 to usergroups
 
- #277 fixes windows LDAP settings in which missing values breaks the ldap auth 
 
- #277 fixes windows LDAP settings in which missing values breaks the ldap auth
 
- #288 fixes managing of repos in a group for non admin user
 

	
 
1.2.2 (**2011-10-17**)
 
@@ -584,17 +584,17 @@ news
 
++++
 

	
 
- #226 repo groups are available by path instead of numerical id
 
 
 

	
 
fixes
 
+++++
 

	
 
- #259 Groups with the same name but with different parent group
 
- #260 Put repo in group, then move group to another group -> repo becomes unavailable
 
- #258 RhodeCode 1.2 assumes egg folder is writable (lockfiles problems)
 
- #265 ldap save fails sometimes on converting attributes to booleans, 
 
- #265 ldap save fails sometimes on converting attributes to booleans,
 
  added getter and setter into model that will prevent from this on db model level
 
- fixed problems with timestamps issues #251 and #213
 
- fixes #266 RhodeCode allows to create repo with the same name and in 
 
- fixes #266 RhodeCode allows to create repo with the same name and in
 
  the same parent as group
 
- fixes #245 Rescan of the repositories on Windows
 
- fixes #248 cannot edit repos inside a group on windows
 
@@ -610,7 +610,7 @@ news
 
fixes
 
+++++
 

	
 
- fixed problems with basic auth and push problems 
 
- fixed problems with basic auth and push problems
 
- gui fixes
 
- fixed logger
 

	
 
@@ -628,12 +628,12 @@ news
 
- implemented #84 downloads can be enabled/disabled for each repository
 
- anonymous repository can be cloned without having to pass default:default
 
  into clone url
 
- fixed #90 whoosh indexer can index chooses repositories passed in command 
 
- fixed #90 whoosh indexer can index chooses repositories passed in command
 
  line
 
- extended journal with day aggregates and paging
 
- implemented #107 source code lines highlight ranges
 
- implemented #93 customizable changelog on combined revision ranges - 
 
  equivalent of githubs compare view 
 
- implemented #93 customizable changelog on combined revision ranges -
 
  equivalent of githubs compare view
 
- implemented #108 extended and more powerful LDAP configuration
 
- implemented #56 users groups
 
- major code rewrites optimized codes for speed and memory usage
 
@@ -642,16 +642,16 @@ news
 
- fixed many issues with international characters and unicode. It uses utf8
 
  decode with replace to provide less errors even with non utf8 encoded strings
 
- #125 added API KEY access to feeds
 
- #109 Repository can be created from external Mercurial link (aka. remote 
 
- #109 Repository can be created from external Mercurial link (aka. remote
 
  repository, and manually updated (via pull) from admin panel
 
- beta git support - push/pull server + basic view for git repos
 
- added followers page and forks page
 
- server side file creation (with binary file upload interface) 
 
  and edition with commits powered by codemirror 
 
- #111 file browser file finder, quick lookup files on whole file tree 
 
- server side file creation (with binary file upload interface)
 
  and edition with commits powered by codemirror
 
- #111 file browser file finder, quick lookup files on whole file tree
 
- added quick login sliding menu into main page
 
- changelog uses lazy loading of affected files details, in some scenarios 
 
  this can improve speed of changelog page dramatically especially for 
 
- changelog uses lazy loading of affected files details, in some scenarios
 
  this can improve speed of changelog page dramatically especially for
 
  larger repositories.
 
- implements #214 added support for downloading subrepos in download menu.
 
- Added basic API for direct operations on rhodecode via JSON
 
@@ -660,7 +660,7 @@ news
 
fixes
 
+++++
 

	
 
- fixed file browser bug, when switching into given form revision the url was 
 
- fixed file browser bug, when switching into given form revision the url was
 
  not changing
 
- fixed propagation to error controller on simplehg and simplegit middlewares
 
- fixed error when trying to make a download on empty repository
 
@@ -669,8 +669,8 @@ fixes
 
- journal fork fixes
 
- removed issue with space inside renamed repository after deletion
 
- fixed strange issue on formencode imports
 
- fixed #126 Deleting repository on Windows, rename used incompatible chars. 
 
- #150 fixes for errors on repositories mapped in db but corrupted in 
 
- fixed #126 Deleting repository on Windows, rename used incompatible chars.
 
- #150 fixes for errors on repositories mapped in db but corrupted in
 
  filesystem
 
- fixed problem with ascendant characters in realm #181
 
- fixed problem with sqlite file based database connection pool
 
@@ -680,12 +680,12 @@ fixes
 
- fixes issue #197 Relative paths for pidlocks
 
- fixes issue #198 password will require only 3 chars now for login form
 
- fixes issue #199 wrong redirection for non admin users after creating a repository
 
- fixes issues #202, bad db constraint made impossible to attach same group 
 
- fixes issues #202, bad db constraint made impossible to attach same group
 
  more than one time. Affects only mysql/postgres
 
- fixes #218 os.kill patch for windows was missing sig param
 
- improved rendering of dag (they are not trimmed anymore when number of 
 
- improved rendering of dag (they are not trimmed anymore when number of
 
  heads exceeds 5)
 
    
 

	
 
1.1.8 (**2011-04-12**)
 
----------------------
 

	
 
@@ -712,7 +712,7 @@ fixes
 
- fixed problems with displaying binary files, thanks to Thomas Waldmann
 
- removed name from archive files since it's breaking ui for long repo names
 
- fixed issue with archive headers sent to browser, thanks to Thomas Waldmann
 
- fixed compatibility for 1024px displays, and larger dpi settings, thanks to 
 
- fixed compatibility for 1024px displays, and larger dpi settings, thanks to
 
  Thomas Waldmann
 
- fixed issue #166 summary pager was skipping 10 revisions on second page
 

	
 
@@ -756,8 +756,8 @@ fixes
 
- fixed sorting by author in main page
 
- fixed crashes with diffs on binary files
 
- fixed #131 problem with boolean values for LDAP
 
- fixed #122 mysql problems thanks to striker69 
 
- fixed problem with errors on calling raw/raw_files/annotate functions 
 
- fixed #122 mysql problems thanks to striker69
 
- fixed problem with errors on calling raw/raw_files/annotate functions
 
  with unknown revisions
 
- fixed returned rawfiles attachment names with international character
 
- cleaned out docs, big thanks to Jason Harris
 
@@ -774,7 +774,7 @@ fixes
 
- fixed formencode import problem on settings page, that caused server crash
 
  when that page was accessed as first after server start
 
- journal fixes
 
- fixed option to access repository just by entering http://server/<repo_name> 
 
- fixed option to access repository just by entering http://server/<repo_name>
 

	
 
1.1.3 (**2011-02-16**)
 
----------------------
 
@@ -789,11 +789,11 @@ news
 
fixes
 
+++++
 

	
 
- fixed ehlo command and non auth mail servers on smtp_lib. Thanks to 
 
- fixed ehlo command and non auth mail servers on smtp_lib. Thanks to
 
  apollo13 and Johan Walles
 
- small fixes in journal
 
- fixed problems with getting setting for celery from .ini files
 
- registration, password reset and login boxes share the same title as main 
 
- registration, password reset and login boxes share the same title as main
 
  application now
 
- fixed #113: to high permissions to fork repository
 
- fixed problem with '[' chars in commit messages in journal
 
@@ -814,11 +814,11 @@ fixes
 

	
 
- fixes #98 protection against float division of percentage stats
 
- fixed graph bug
 
- forced webhelpers version since it was making troubles during installation 
 
- forced webhelpers version since it was making troubles during installation
 

	
 
1.1.1 (**2011-01-06**)
 
----------------------
 
 
 

	
 
news
 
++++
 

	
 
@@ -842,10 +842,10 @@ news
 
++++
 

	
 
- rewrite of internals for vcs >=0.1.10
 
- uses mercurial 1.7 with dotencode disabled for maintaining compatibility 
 
- uses mercurial 1.7 with dotencode disabled for maintaining compatibility
 
  with older clients
 
- anonymous access, authentication via ldap
 
- performance upgrade for cached repos list - each repository has its own 
 
- performance upgrade for cached repos list - each repository has its own
 
  cache that's invalidated when needed.
 
- performance upgrades on repositories with large amount of commits (20K+)
 
- main page quick filter for filtering repositories
 
@@ -855,7 +855,7 @@ news
 
- more detailed action logger (based on hooks) with pushed changesets lists
 
  and options to disable those hooks from admin panel
 
- introduced new enhanced changelog for merges that shows more accurate results
 
- new improved and faster code stats (based on pygments lexers mapping tables, 
 
- new improved and faster code stats (based on pygments lexers mapping tables,
 
  showing up to 10 trending sources for each repository. Additionally stats
 
  can be disabled in repository settings.
 
- gui optimizations, fixed application width to 1024px
 
@@ -876,10 +876,10 @@ fixes
 
- a lot of fixes and tweaks for file browser
 
- fixed detached session issues
 
- fixed when user had no repos he would see all repos listed in my account
 
- fixed ui() instance bug when global hgrc settings was loaded for server 
 
- fixed ui() instance bug when global hgrc settings was loaded for server
 
  instance and all hgrc options were merged with our db ui() object
 
- numerous small bugfixes
 
 
 

	
 
(special thanks for TkSoh for detailed feedback)
 

	
 

	
 
@@ -944,6 +944,6 @@ fixes
 
1.0.0rc2 (**2010-10-11**)
 
-------------------------
 

	
 
- Disabled dirsize in file browser, it's causing nasty bug when dir renames 
 
- Disabled dirsize in file browser, it's causing nasty bug when dir renames
 
  occure. After vcs is fixed it'll be put back again.
 
- templating/css rewrites, optimized css.
docs/contributing.rst
Show inline comments
 
@@ -10,9 +10,9 @@ greatly appreciated!
 
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. Please post all fixes into **BETA** branch since your 
 
your forked repository. Please post all fixes into **BETA** branch since your
 
fix might be already fixed there and i try to merge all fixes from beta into
 
stable, and not the other way. Finally, when you are finished making a change, 
 
stable, and not the other way. 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 the latest
 
@@ -22,7 +22,7 @@ after downloading/pulling RhodeCode make
 

	
 
    python setup.py develop
 

	
 
command to install/verify all required packages, and prepare development 
 
command to install/verify all required packages, and prepare development
 
enviroment.
 

	
 

	
docs/index.rst
Show inline comments
 
@@ -13,7 +13,7 @@ Users Guide
 
   installation
 
   setup
 
   upgrade
 
   
 

	
 
**Usage**
 

	
 
.. toctree::
 
@@ -33,7 +33,7 @@ Users Guide
 

	
 
.. toctree::
 
   :maxdepth: 1
 
   
 

	
 
   contributing
 
   changelog
 

	
 
@@ -44,7 +44,7 @@ Users Guide
 

	
 
   api/api
 
   api/models
 
   
 

	
 

	
 
Other topics
 
------------
 
@@ -61,4 +61,4 @@ Other topics
 
.. _git: http://git-scm.com/
 
.. _celery: http://celeryproject.org/
 
.. _Sphinx: http://sphinx.pocoo.org/
 
.. _vcs: http://pypi.python.org/pypi/vcs
 
\ No newline at end of file
 
.. _vcs: http://pypi.python.org/pypi/vcs
docs/installation.rst
Show inline comments
 
@@ -4,8 +4,8 @@
 
Installation
 
============
 

	
 
``RhodeCode`` is written entirely in Python. Before posting any issues make 
 
sure, your not missing any system libraries and using right version of 
 
``RhodeCode`` 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 RhodeCode. There's also restriction in terms of mercurial
 
clients. Minimal version of hg client known working fine with RhodeCode is
 
**1.6**. If you're using older client, please upgrade.
 
@@ -41,14 +41,14 @@ Step by step installation example for Li
 

	
 
For installing RhodeCode i highly recommend using separate virtualenv_. This
 
way many required by RhodeCode libraries will remain sandboxed from your main
 
python and making things less problematic when doing system python updates. 
 
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 
 
  using virtualenv command:: 
 
- Assuming you have installed virtualenv_ create a new virtual environment
 
  using virtualenv command::
 

	
 
    virtualenv --no-site-packages /opt/rhodecode-venv
 

	
 
@@ -63,7 +63,7 @@ celery, indexer and daemon scripts: http
 
   Python's "main" site-packages dir.
 

	
 

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

	
 
    source /opt/rhodecode-venv/bin/activate
 
@@ -71,52 +71,52 @@ celery, indexer and daemon scripts: http
 
.. 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 data files, and configuration somewhere on the 
 

	
 
- Make a folder for rhodecode data files, and configuration somewhere on the
 
  filesystem. For example::
 

	
 
    mkdir /opt/rhodecode
 
  
 
    
 

	
 

	
 
- Go into the created directory run this command to install rhodecode::
 

	
 
    easy_install rhodecode
 
  
 

	
 
  or::
 
 
 
    pip install rhodecode 
 

	
 
- This will install rhodecode together with pylons and all other required 
 
    pip install rhodecode
 

	
 
- This will install rhodecode together with pylons and all other required
 
  python libraries into activated virtualenv
 

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

	
 
In order to gain maximum performance
 
there are some third-party you must install. When RhodeCode is used 
 
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 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 repositories, RhodeCode will perform perfectly well 
 
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 repositories, RhodeCode will perform perfectly well
 
without celery running.
 
   
 
If you make the decision to run RhodeCode with celery make sure you run 
 
celeryd using paster and message broker together with the application. 
 

	
 
If you make the decision to run RhodeCode with celery make sure you run
 
celeryd using paster and message broker together with the application.
 

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

	
 

	
 
**Message Broker** 
 
**Message Broker**
 

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

	
 
For installation instructions you can visit: 
 
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_
 

	
 
@@ -126,7 +126,7 @@ You can now proceed to :ref:`setup`
 

	
 

	
 

	
 
.. _virtualenv: http://pypi.python.org/pypi/virtualenv  
 
.. _virtualenv: http://pypi.python.org/pypi/virtualenv
 
.. _python: http://www.python.org/
 
.. _mercurial: http://mercurial.selenic.com/
 
.. _celery: http://celeryproject.org/
docs/installation_win.rst
Show inline comments
 
@@ -5,13 +5,13 @@ Step by step Installation for Windows
 
=====================================
 

	
 

	
 
RhodeCode step-by-step install Guide for Windows  
 
RhodeCode step-by-step install Guide for Windows
 

	
 
Target OS: Windows XP SP3 32bit English (Clean installation) 
 
+ All Windows Updates until 24-may-2012 
 
Target OS: Windows XP SP3 32bit English (Clean installation)
 
+ All Windows Updates until 24-may-2012
 

	
 
.. note::
 
    
 

	
 
   This installation is for 32bit systems, for 64bit windows you might need
 
   to download proper 64bit version of "Windows Installer" and Win32py
 
   extensions
 
@@ -19,140 +19,140 @@ Target OS: Windows XP SP3 32bit English 
 
Step1 - Install Visual Studio 2008 Express
 
------------------------------------------
 

	
 
 
 
Optional: You can also install MingW, but VS2008 installation is easier 
 

	
 
Optional: You can also install MingW, but VS2008 installation is easier
 

	
 
Download "Visual C++ 2008 Express Edition with SP1" from: 
 
http://www.microsoft.com/visualstudio/en-us/products/2008-editions/express 
 
(if not found or relocated, google for "visual studio 2008 express" for 
 
updated link) 
 
Download "Visual C++ 2008 Express Edition with SP1" from:
 
http://www.microsoft.com/visualstudio/en-us/products/2008-editions/express
 
(if not found or relocated, google for "visual studio 2008 express" for
 
updated link)
 

	
 
You can also download full ISO file for offline installation, just 
 
choose "All - Offline Install ISO image file" in the previous page and 
 
choose "Visual C++ 2008 Express" when installing. 
 
You can also download full ISO file for offline installation, just
 
choose "All - Offline Install ISO image file" in the previous page and
 
choose "Visual C++ 2008 Express" when installing.
 

	
 

	
 
.. note::
 

	
 
  Silverlight Runtime and SQL Server 2008 Express Edition are not 
 
  required, you can uncheck them 
 
  Silverlight Runtime and SQL Server 2008 Express Edition are not
 
  required, you can uncheck them
 

	
 

	
 
Step2 - Install Python
 
----------------------
 

	
 
Install Python 2.x.y (x >= 5) x86 version (32bit). DO NOT USE A 3.x version.
 
Download Python 2.x.y from: 
 
http://www.python.org/download/ 
 
Download Python 2.x.y from:
 
http://www.python.org/download/
 

	
 
Choose "Windows Installer" (32bit version) not "Windows X86-64 
 
Installer". While writing this guide, the latest version was v2.7.3. 
 
Remember the specific major and minor version installed, because it will 
 
be needed in the next step. In this case, it is "2.7". 
 
Choose "Windows Installer" (32bit version) not "Windows X86-64
 
Installer". While writing this guide, the latest version was v2.7.3.
 
Remember the specific major and minor version installed, because it will
 
be needed in the next step. In this case, it is "2.7".
 

	
 

	
 
Step3 - Install Win32py extensions
 
----------------------------------
 
 
 
Download pywin32 from: 
 
http://sourceforge.net/projects/pywin32/files/ 
 

	
 
Download pywin32 from:
 
http://sourceforge.net/projects/pywin32/files/
 

	
 
- Click on "pywin32" folder 
 
- Click on the first folder (in this case, Build 217, maybe newer when you try) 
 
- Choose the file ending with ".win32-py2.x.exe" -> x being the minor 
 
  version of Python you installed (in this case, 7) 
 
  When writing this guide, the file was: 
 
  http://sourceforge.net/projects/pywin32/files/pywin32/Build%20217/pywin32-217.win32-py2.7.exe/download 
 
- Click on "pywin32" folder
 
- Click on the first folder (in this case, Build 217, maybe newer when you try)
 
- Choose the file ending with ".win32-py2.x.exe" -> x being the minor
 
  version of Python you installed (in this case, 7)
 
  When writing this guide, the file was:
 
  http://sourceforge.net/projects/pywin32/files/pywin32/Build%20217/pywin32-217.win32-py2.7.exe/download
 

	
 

	
 
Step4 - Python BIN
 
------------------
 

	
 
Add Python BIN folder to the path 
 
Add Python BIN folder to the path
 

	
 
You have to add the Python folder to the path, you can do it manually 
 
(editing "PATH" environment variable) or using Windows Support Tools 
 
that came preinstalled in Vista/7 and can be installed in Windows XP. 
 
You have to add the Python folder to the path, you can do it manually
 
(editing "PATH" environment variable) or using Windows Support Tools
 
that came preinstalled in Vista/7 and can be installed in Windows XP.
 

	
 
- Using support tools on WINDOWS XP: 
 
  If you use Windows XP you can install them using Windows XP CD and 
 
  navigating to \SUPPORT\TOOLS. There, execute Setup.EXE (not MSI). 
 
- Using support tools on WINDOWS XP:
 
  If you use Windows XP you can install them using Windows XP CD and
 
  navigating to \SUPPORT\TOOLS. There, execute Setup.EXE (not MSI).
 
  Afterwards, open a CMD and type::
 
 
 
    SETX PATH "%PATH%;[your-python-path]" -M 
 

	
 
    SETX PATH "%PATH%;[your-python-path]" -M
 

	
 
  Close CMD (the path variable will be updated then) 
 
  Close CMD (the path variable will be updated then)
 

	
 
- Using support tools on WINDOWS Vista/7: 
 
- Using support tools on WINDOWS Vista/7:
 

	
 
  Open a CMD and type::
 

	
 
    SETX PATH "%PATH%;[your-python-path]" /M 
 
    SETX PATH "%PATH%;[your-python-path]" /M
 

	
 
  Please substitute [your-python-path] with your Python installation path. 
 
  Typically: C:\\Python27 
 
  Please substitute [your-python-path] with your Python installation path.
 
  Typically: C:\\Python27
 

	
 

	
 
Step5 - RhodeCode folder structure
 
----------------------------------
 

	
 
Create a RhodeCode folder structure 
 
Create a RhodeCode folder structure
 

	
 
This is only a example to install RhodeCode, you can of course change 
 
it. However, this guide will follow the proposed structure, so please 
 
later adapt the paths if you change them. My recommendation is to use 
 
folders with NO SPACES. But you can try if you are brave... 
 
This is only a example to install RhodeCode, you can of course change
 
it. However, this guide will follow the proposed structure, so please
 
later adapt the paths if you change them. My recommendation is to use
 
folders with NO SPACES. But you can try if you are brave...
 

	
 
Create the following folder structure::
 

	
 
  C:\RhodeCode 
 
  C:\RhodeCode\Bin 
 
  C:\RhodeCode\Env 
 
  C:\RhodeCode\Repos 
 
  C:\RhodeCode
 
  C:\RhodeCode\Bin
 
  C:\RhodeCode\Env
 
  C:\RhodeCode\Repos
 

	
 

	
 
Step6 - Install virtualenv
 
---------------------------
 

	
 
Install Virtual Env for Python 
 
Install Virtual Env for Python
 

	
 
Navigate to: http://www.virtualenv.org/en/latest/index.html#installation 
 
Right click on "virtualenv.py" file and choose "Save link as...". 
 
Download to C:\\RhodeCode (or whatever you want) 
 
(the file is located at 
 
https://raw.github.com/pypa/virtualenv/master/virtualenv.py) 
 
Navigate to: http://www.virtualenv.org/en/latest/index.html#installation
 
Right click on "virtualenv.py" file and choose "Save link as...".
 
Download to C:\\RhodeCode (or whatever you want)
 
(the file is located at
 
https://raw.github.com/pypa/virtualenv/master/virtualenv.py)
 

	
 
Create a virtual Python environment in C:\\RhodeCode\\Env (or similar). To 
 
do so, open a CMD (Python Path should be included in Step3), navigate 
 
where you downloaded "virtualenv.py", and write:: 
 
Create a virtual Python environment in C:\\RhodeCode\\Env (or similar). To
 
do so, open a CMD (Python Path should be included in Step3), navigate
 
where you downloaded "virtualenv.py", and write::
 

	
 
 python virtualenv.py C:\RhodeCode\Env 
 
 python virtualenv.py C:\RhodeCode\Env
 

	
 
(--no-site-packages is now the default behaviour of virtualenv, no need 
 
to include it) 
 
(--no-site-packages is now the default behaviour of virtualenv, no need
 
to include it)
 

	
 

	
 
Step7 - Install RhodeCode
 
-------------------------
 

	
 
Finally, install RhodeCode 
 
Finally, install RhodeCode
 

	
 
Close previously opened command prompt/s, and open a Visual Studio 2008 
 
Command Prompt (**IMPORTANT!!**). To do so, go to Start Menu, and then open 
 
"Microsoft Visual C++ 2008 Express Edition" -> "Visual Studio Tools" -> 
 
"Visual Studio 2008 Command Prompt" 
 
Close previously opened command prompt/s, and open a Visual Studio 2008
 
Command Prompt (**IMPORTANT!!**). To do so, go to Start Menu, and then open
 
"Microsoft Visual C++ 2008 Express Edition" -> "Visual Studio Tools" ->
 
"Visual Studio 2008 Command Prompt"
 

	
 
In that CMD (loaded with VS2008 PATHs) type::
 
 
 
  cd C:\RhodeCode\Env\Scripts (or similar) 
 
  activate 
 

	
 
  cd C:\RhodeCode\Env\Scripts (or similar)
 
  activate
 

	
 
The prompt will change into "(Env) C:\\RhodeCode\\Env\\Scripts" or similar 
 
(depending of your folder structure). Then type:: 
 
The prompt will change into "(Env) C:\\RhodeCode\\Env\\Scripts" or similar
 
(depending of your folder structure). Then type::
 

	
 
 pip install rhodecode 
 
 pip install rhodecode
 

	
 
(long step, please wait until fully complete) 
 
(long step, please wait until fully complete)
 

	
 
Some warnings will appear, don't worry as they are normal.
 

	
 
@@ -161,90 +161,90 @@ Step8 - Configuring RhodeCode
 
-----------------------------
 

	
 

	
 
steps taken from http://packages.python.org/RhodeCode/setup.html 
 
steps taken from http://packages.python.org/RhodeCode/setup.html
 

	
 
You have to use the same Visual Studio 2008 command prompt as Step7, so 
 
if you closed it reopen it following the same commands (including the 
 
You have to use the same Visual Studio 2008 command prompt as Step7, so
 
if you closed it reopen it following the same commands (including the
 
"activate" one). When ready, just type::
 
 
 
  cd C:\RhodeCode\Bin 
 
  paster make-config RhodeCode production.ini 
 

	
 
  cd C:\RhodeCode\Bin
 
  paster make-config RhodeCode production.ini
 

	
 
Then, you must edit production.ini to fit your needs (ip address, ip 
 
port, mail settings, database, whatever). I recommend using NotePad++ 
 
(free) or similar text editor, as it handles well the EndOfLine 
 
character differences between Unix and Windows 
 
(http://notepad-plus-plus.org/) 
 
Then, you must edit production.ini to fit your needs (ip address, ip
 
port, mail settings, database, whatever). I recommend using NotePad++
 
(free) or similar text editor, as it handles well the EndOfLine
 
character differences between Unix and Windows
 
(http://notepad-plus-plus.org/)
 

	
 
For the sake of simplicity lets run it with the default settings. After 
 
your edits (if any), in the previous Command Prompt, type:: 
 
 
 
 paster setup-rhodecode production.ini 
 
For the sake of simplicity lets run it with the default settings. After
 
your edits (if any), in the previous Command Prompt, type::
 

	
 
(this time a NEW database will be installed, you must follow a different 
 
step to later UPGRADE to a newer RhodeCode version) 
 
 paster setup-rhodecode production.ini
 

	
 
(this time a NEW database will be installed, you must follow a different
 
step to later UPGRADE to a newer RhodeCode version)
 

	
 
The script will ask you for confirmation about creating a NEW database, 
 
answer yes (y) 
 
The script will ask you for repository path, answer C:\\RhodeCode\\Repos 
 
(or similar) 
 
The script will ask you for admin username and password, answer "admin" 
 
+ "123456" (or whatever you want) 
 
The script will ask you for admin mail, answer "admin@xxxx.com" (or 
 
whatever you want) 
 
The script will ask you for confirmation about creating a NEW database,
 
answer yes (y)
 
The script will ask you for repository path, answer C:\\RhodeCode\\Repos
 
(or similar)
 
The script will ask you for admin username and password, answer "admin"
 
+ "123456" (or whatever you want)
 
The script will ask you for admin mail, answer "admin@xxxx.com" (or
 
whatever you want)
 

	
 
If you make some mistake and the script does not end, don't worry, start 
 
it again. 
 
If you make some mistake and the script does not end, don't worry, start
 
it again.
 

	
 

	
 
Step9 - Running RhodeCode
 
-------------------------
 

	
 

	
 
In the previous command prompt, being in the C:\\RhodeCode\\Bin folder, 
 
In the previous command prompt, being in the C:\\RhodeCode\\Bin folder,
 
just type::
 
 
 
 paster serve production.ini 
 

	
 
 paster serve production.ini
 

	
 
Open yout web server, and go to http://127.0.0.1:5000 
 
Open yout web server, and go to http://127.0.0.1:5000
 

	
 
It works!! :-) 
 
It works!! :-)
 

	
 
Remark: 
 
If it does not work first time, just Ctrl-C the CMD process and start it 
 
again. Don't forget the "http://" in Internet Explorer 
 
Remark:
 
If it does not work first time, just Ctrl-C the CMD process and start it
 
again. Don't forget the "http://" in Internet Explorer
 

	
 

	
 

	
 
What this Guide does not cover:
 

	
 
- Installing Celery 
 
- Installing Celery
 
- Running RhodeCode as Windows Service. You can investigate here:
 
 
 
  - http://pypi.python.org/pypi/wsgisvc 
 
  - http://ryrobes.com/python/running-python-scripts-as-a-windows-service/     
 
  - http://wiki.pylonshq.com/display/pylonscookbook/How+to+run+Pylons+as+a+Windows+service 
 

	
 
  - http://pypi.python.org/pypi/wsgisvc
 
  - http://ryrobes.com/python/running-python-scripts-as-a-windows-service/
 
  - http://wiki.pylonshq.com/display/pylonscookbook/How+to+run+Pylons+as+a+Windows+service
 

	
 
- Using Apache. You can investigate here:
 

	
 
  - https://groups.google.com/group/rhodecode/msg/c433074e813ffdc4 
 
  - https://groups.google.com/group/rhodecode/msg/c433074e813ffdc4
 

	
 

	
 
Upgrading
 
=========
 
 
 
Stop running RhodeCode 
 

	
 
Stop running RhodeCode
 
Open a CommandPrompt like in Step7 (VS2008 path + activate) and type::
 
 
 
 easy_install -U rhodecode 
 
 cd \RhodeCode\Bin 
 

	
 
 easy_install -U rhodecode
 
 cd \RhodeCode\Bin
 

	
 
{ backup your production.ini file now} :: 
 
{ backup your production.ini file now} ::
 

	
 
 paster make-config RhodeCode production.ini 
 
 paster make-config RhodeCode production.ini
 

	
 
(check changes and update your production.ini accordingly) ::
 
 
 

	
 
 paster upgrade-db production.ini (update database)
 

	
 
Full steps in http://packages.python.org/RhodeCode/upgrade.html 
 
\ No newline at end of file
 
Full steps in http://packages.python.org/RhodeCode/upgrade.html
docs/setup.rst
Show inline comments
 
@@ -8,14 +8,14 @@ Setup
 
Setting up RhodeCode
 
--------------------
 

	
 
First, you will need to create a RhodeCode configuration file. Run the 
 
First, you will need to create a RhodeCode configuration file. Run the
 
following command to do this::
 
 
 

	
 
    paster make-config RhodeCode production.ini
 

	
 
- This will create the file `production.ini` in the current directory. This
 
  configuration file contains the various settings for RhodeCode, e.g proxy 
 
  port, email settings, usage of static files, cache, celery settings and 
 
  configuration file contains the various settings for RhodeCode, e.g proxy
 
  port, email settings, usage of static files, cache, celery settings and
 
  logging.
 

	
 

	
 
@@ -30,36 +30,36 @@ the following command::
 

	
 
This will prompt you for a "root" path. This "root" path is the location where
 
RhodeCode will store all of its repositories on the current machine. After
 
entering this "root" path ``setup-rhodecode`` will also prompt you for a username 
 
and password for the initial admin account which ``setup-rhodecode`` sets 
 
entering this "root" path ``setup-rhodecode`` will also prompt you for a username
 
and password for the initial admin account which ``setup-rhodecode`` sets
 
up for you.
 

	
 
setup process can be fully automated, example for lazy::
 

	
 
    paster setup-rhodecode production.ini --user=marcink --password=secret --email=marcin@rhodecode.org --repos=/home/marcink/my_repos
 
    
 

	
 

	
 
- The ``setup-rhodecode`` command will create all of the needed tables and an 
 
  admin account. When choosing a root path you can either use a new empty 
 
- The ``setup-rhodecode`` 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 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. 
 
  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 specify the correct path to the root).
 
- Note: the given path for mercurial_ repositories **must** be write accessible
 
  for the application. It's very important since the RhodeCode web interface 
 
  will work without write access, but when trying to do a push it will 
 
  for the application. It's very important since the RhodeCode web interface
 
  will work without write access, but when trying to do a push it will
 
  eventually fail with permission denied errors unless it has write access.
 

	
 
You are now ready to use RhodeCode, to run it simply execute::
 
 
 

	
 
    paster serve production.ini
 
 
 
- This command runs the RhodeCode server. The web app should be available at the 
 
  127.0.0.1:5000. This ip and port is configurable via the production.ini 
 

	
 
- This command runs the RhodeCode server. The web app should be available at the
 
  127.0.0.1:5000. This ip and port is configurable via the production.ini
 
  file created in previous step
 
- Use the admin account you created above when running ``setup-rhodecode`` 
 
- Use the admin account you created above when running ``setup-rhodecode``
 
  to login to the web app.
 
- The default permissions on each repository is read, and the owner is admin. 
 
- 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
 
  well as edit more advanced options on users and repositories
 
@@ -70,10 +70,10 @@ functionality. To do this simply execute
 
    paster make-rcext production.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, 
 
lives. With `rcextensions` it's possible to add additional mapping for whoosh,
 
stats and add additional code into the push/pull/create/delete repo hooks.
 
For example for sending signals to build-bots such as jenkins.
 
Please see the `__init__.py` file inside `rcextensions` package 
 
Please see the `__init__.py` file inside `rcextensions` package
 
for more details.
 

	
 

	
 
@@ -86,11 +86,11 @@ parallel with RhodeCode. (Repository acc
 
the box" feature of mercurial_ and you can use this to access any of the
 
repositories that RhodeCode is hosting. See PublishingRepositories_)
 

	
 
RhodeCode repository structures are kept in directories with the same name 
 
RhodeCode repository structures are kept in directories with the same name
 
as the project. When using repository groups, each group is a subdirectory.
 
This allows you to easily use ssh for accessing repositories.
 

	
 
In order to use ssh you need to make sure that your web-server and the users 
 
In order to use ssh you need to make sure that your web-server and the users
 
login accounts have the correct permissions set on the appropriate directories.
 
(Note that these permissions are independent of any permissions you have set up
 
using the RhodeCode web interface.)
 
@@ -108,17 +108,17 @@ Note: In an advanced setup, in order for
 
permissions as set up via the RhodeCode web interface, you can create an
 
authentication hook to connect to the rhodecode db and runs check functions for
 
permissions against that.
 
    
 

	
 
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
 
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 RhodeCode database.  This was required prior to 1.2.  Starting from 
 
version 1.2 it is also possible to specify a comma separated list of 
 
repositories (`--index-only`) to build index only on chooses repositories 
 
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 RhodeCode database.  This was required prior to 1.2.  Starting from
 
version 1.2 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
 

	
 
You may optionally pass the option `-f` to enable a full index rebuild. Without
 
@@ -126,24 +126,24 @@ the `-f` option, indexing will run alway
 

	
 
For an incremental index build use::
 

	
 
	paster make-index production.ini 
 
	paster make-index production.ini
 

	
 
For a full index rebuild use::
 

	
 
	paster make-index production.ini -f 
 
	paster make-index production.ini -f
 

	
 

	
 
building index just for chosen repositories is possible with such command::
 
 
 

	
 
 paster make-index production.ini --index-only=vcs,rhodecode
 

	
 

	
 
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. 
 
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/rhodecode/production.ini 
 
  
 

	
 
    /path/to/python/bin/paster make-index /path/to/rhodecode/production.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
 
available. The indexing daemon checks for any removed files and removes them
 
@@ -157,19 +157,19 @@ Setting up LDAP support
 
-----------------------
 

	
 
RhodeCode starting from version 1.1 supports ldap authentication. In order
 
to use LDAP, you have to install the python-ldap_ package. This package is 
 
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 
 
   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,
 
@@ -232,12 +232,12 @@ Connection Security : required
 

	
 
    No encryption
 
        Plain non encrypted connection
 
        
 

	
 
    LDAPS connection
 
        Enable ldaps connection. It will likely require `Port`_ to be set to 
 
        a different value (standard LDAPS port is 636). When LDAPS is enabled 
 
        Enable ldaps connection. 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.
 
        
 

	
 
    START_TLS on LDAP connection
 
        START TLS connection
 

	
 
@@ -245,7 +245,7 @@ Connection Security : required
 

	
 
Certificate Checks : optional
 
    How SSL certificates verification is handled - this is only useful when
 
    `Enable LDAPS`_ is enabled.  Only DEMAND or HARD offer full SSL security 
 
    `Enable LDAPS`_ is enabled.  Only DEMAND or HARD offer full SSL security
 
    while the other options are susceptible to man-in-the-middle attacks.  SSL
 
    certificates can be installed to /etc/openldap/cacerts so that the
 
    DEMAND or HARD options can be used with self-signed certificates or
 
@@ -305,7 +305,7 @@ LDAP Search Scope : required
 

	
 
.. _Login Attribute:
 

	
 
Login Attribute : required        
 
Login Attribute : required
 
    The LDAP record attribute that will be matched as the USERNAME or
 
    ACCOUNT used to connect to RhodeCode.  This will be added to `LDAP
 
    Filter`_ for locating the User object.  If `LDAP Filter`_ is specified as
 
@@ -423,7 +423,7 @@ reverse-proxy setup with basic auth::
 
      RewriteCond %{LA-U:REMOTE_USER} (.+)
 
      RewriteRule .* - [E=RU:%1]
 
      RequestHeader set X-Forwarded-User %{RU}e
 
    </Location> 
 
    </Location>
 

	
 
In order for RhodeCode to start using the forwarded username, you should set
 
the following in the [app:main] section of your .ini file::
 
@@ -450,27 +450,27 @@ uncomment following variables in the ini
 

	
 
`url_pat` is the regular expression that will fetch issues from commit messages.
 
Default regex will match issues in format of #<number> eg. #300.
 
 
 
Matched issues will be replace with the link specified as `issue_server_link` 
 

	
 
Matched issues will be replace with the link specified as `issue_server_link`
 
{id} will be replaced with issue id, and {repo} with repository name.
 
Since the # is striped `issue_prefix` is added as a prefix to url. 
 
`issue_prefix` can be something different than # if you pass 
 
Since the # is striped `issue_prefix` is added as a prefix to url.
 
`issue_prefix` can be something different than # if you pass
 
ISSUE- as issue prefix this will generate an url in format::
 
 
 
  <a href="https://myissueserver.com/example_repo/issue/300">ISSUE-300</a>  
 

	
 
  <a href="https://myissueserver.com/example_repo/issue/300">ISSUE-300</a>
 

	
 
Hook management
 
---------------
 

	
 
Hooks can be managed in similar way to this used in .hgrc files.
 
To access hooks setting click `advanced setup` on Hooks section of Mercurial
 
Settings in Admin. 
 
Settings in Admin.
 

	
 
There are 4 built in hooks that cannot be changed (only enable/disable by
 
checkboxes on previos section).
 
To add another custom hook simply fill in first section with 
 
To add another custom hook simply fill in first section with
 
<name>.<hook_type> and the second one with hook path. Example hooks
 
can be found at *rhodecode.lib.hooks*. 
 
can be found at *rhodecode.lib.hooks*.
 

	
 

	
 
Changing default encoding
 
@@ -488,7 +488,7 @@ Setting Up Celery
 
-----------------
 

	
 
Since version 1.1 celery is configured by the rhodecode ini configuration files.
 
Simply set use_celery=true in the ini file then add / change the configuration 
 
Simply set use_celery=true in the ini file then add / change the configuration
 
variables inside the ini file.
 

	
 
Remember that the ini files use the format with '.' not with '_' like celery.
 
@@ -501,9 +501,9 @@ In order to start using celery run::
 

	
 

	
 
.. note::
 
   Make sure you run this command from the same virtualenv, and with the same 
 
   Make sure you run this command from the same virtualenv, and with the same
 
   user that rhodecode runs.
 
   
 

	
 
HTTPS support
 
-------------
 

	
 
@@ -511,7 +511,7 @@ There are two ways to enable https:
 

	
 
- Set HTTP_X_URL_SCHEME in your http server headers, than rhodecode will
 
  recognize this headers and make proper https redirections
 
- Alternatively, change the `force_https = true` flag in the ini configuration 
 
- Alternatively, change the `force_https = true` flag in the ini configuration
 
  to force using https, no headers are needed than to enable https
 

	
 

	
 
@@ -526,7 +526,7 @@ Sample config for nginx using proxy::
 
        #server 127.0.0.1:5001;
 
        #server 127.0.0.1:5002;
 
    }
 
    
 

	
 
    server {
 
       listen          80;
 
       server_name     hg.myserver.com;
 
@@ -535,30 +535,30 @@ Sample config for nginx using proxy::
 

	
 
       # uncomment if you have nginx with chunking module compiled
 
       # fixes the issues of having to put postBuffer data for large git
 
       # pushes       
 
       # pushes
 
       #chunkin on;
 
       #error_page 411 = @my_411_error;
 
       #location @my_411_error {
 
       #    chunkin_resume;
 
       #}
 
       
 

	
 
       # uncomment if you want to serve static files by nginx
 
       #root /path/to/installation/rhodecode/public;
 
       
 

	
 
       location / {
 
            try_files $uri @rhode;
 
       }
 
    
 

	
 
       location @rhode {
 
            proxy_pass      http://rc;
 
            include         /etc/nginx/proxy.conf;
 
       }
 

	
 
    }  
 
  
 
    }
 

	
 
Here's the proxy.conf. It's tuned so it will not timeout on long
 
pushes or large pushes::
 
    
 

	
 
    proxy_redirect              off;
 
    proxy_set_header            Host $host;
 
    proxy_set_header            X-Url-Scheme $scheme;
 
@@ -573,7 +573,7 @@ pushes or large pushes::
 
    proxy_send_timeout          7200;
 
    proxy_read_timeout          7200;
 
    proxy_buffers               8 32k;
 
 
 

	
 
Also, when using root path with nginx you might set the static files to false
 
in the production.ini file::
 

	
 
@@ -595,24 +595,24 @@ Here is a sample configuration file for 
 
    <VirtualHost *:80>
 
            ServerName hg.myserver.com
 
            ServerAlias hg.myserver.com
 
    
 

	
 
            <Proxy *>
 
              Order allow,deny
 
              Allow from all
 
            </Proxy>
 
    
 

	
 
            #important !
 
            #Directive to properly generate url (clone url) for pylons
 
            ProxyPreserveHost On
 
    
 

	
 
            #rhodecode instance
 
            ProxyPass / http://127.0.0.1:5000/
 
            ProxyPassReverse / http://127.0.0.1:5000/
 
            
 

	
 
            #to enable https use line below
 
            #SetEnvIf X-Url-Scheme https HTTPS=1
 
            
 
    </VirtualHost> 
 

	
 
    </VirtualHost>
 

	
 

	
 
Additional tutorial
 
@@ -628,7 +628,7 @@ Apache subdirectory part::
 
      ProxyPass http://127.0.0.1:5000/<someprefix>
 
      ProxyPassReverse http://127.0.0.1:5000/<someprefix>
 
      SetEnvIf X-Url-Scheme https HTTPS=1
 
    </Location> 
 
    </Location>
 

	
 
Besides the regular apache setup you will need to add the following line
 
into [app:main] section of your .ini file::
 
@@ -639,7 +639,7 @@ Add the following at the end of the .ini
 

	
 
    [filter:proxy-prefix]
 
    use = egg:PasteDeploy#prefix
 
    prefix = /<someprefix> 
 
    prefix = /<someprefix>
 

	
 

	
 
then change <someprefix> into your choosen prefix
 
@@ -675,7 +675,7 @@ Here is a sample excerpt from an Apache 
 
    WSGIPassAuthorization On
 

	
 
.. note::
 
   when running apache as root please add: `user=www-data group=www-data` 
 
   when running apache as root please add: `user=www-data group=www-data`
 
   into above configuration
 

	
 
.. note::
 
@@ -688,13 +688,13 @@ Example wsgi dispatch script::
 
    import os
 
    os.environ["HGENCODING"] = "UTF-8"
 
    os.environ['PYTHON_EGG_CACHE'] = '/home/web/rhodecode/.egg-cache'
 
    
 

	
 
    # sometimes it's needed to set the curent dir
 
    os.chdir('/home/web/rhodecode/') 
 
    os.chdir('/home/web/rhodecode/')
 

	
 
    import site
 
    site.addsitedir("/home/web/rhodecode/pyenv/lib/python2.6/site-packages")
 
    
 

	
 
    from paste.deploy import loadapp
 
    from paste.script.util.logging_config import fileConfig
 

	
 
@@ -722,4 +722,4 @@ Some example init.d scripts can be found
 
.. _mercurial-server: http://www.lshift.net/mercurial-server.html
 
.. _PublishingRepositories: http://mercurial.selenic.com/wiki/PublishingRepositories
 
.. _Issues tracker: https://bitbucket.org/marcinkuzminski/rhodecode/issues
 
.. _google group rhodecode: http://groups.google.com/group/rhodecode
 
\ No newline at end of file
 
.. _google group rhodecode: http://groups.google.com/group/rhodecode
docs/upgrade.rst
Show inline comments
 
@@ -8,12 +8,12 @@ Upgrading from PyPI (aka "Cheeseshop")
 
---------------------------------------
 

	
 
.. note::
 
   Firstly, it is recommended that you **always** perform a database and 
 
   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 
 
   Rhodecode that these files were used with.  If backing up your RhodeCode 
 
   instance from version 1.3.6 to 1.4.0, the ``production.ini`` file would be 
 

	
 
   (These directions will use '{version}' to note that this is the version of
 
   Rhodecode that these files were used with.  If backing up your RhodeCode
 
   instance from version 1.3.6 to 1.4.0, the ``production.ini`` file would be
 
   backed up to ``production.ini.1-3-6``.)
 

	
 

	
 
@@ -34,7 +34,7 @@ installed Rhodecode in::
 

	
 
 pip freeze
 

	
 
will list all packages installed in the current environment.  If Rhodecode 
 
will list all packages installed in the current environment.  If Rhodecode
 
isn't listed, change virtual environments to your venv location::
 

	
 
 source /opt/rhodecode-venv/bin/activate
 
@@ -50,11 +50,11 @@ Or::
 

	
 

	
 
Then run the following command from the installation directory::
 
 
 

	
 
 paster make-config RhodeCode production.ini
 
 
 

	
 
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 recommended 
 
current configuration. It will try to perform an automerge. It's recommended
 
that you re-check the content after the automerge.
 

	
 
.. note::
 
@@ -62,7 +62,7 @@ that you re-check the content after the 
 
   caused by missing params added in new versions.
 

	
 

	
 
It is also recommended that you rebuild the whoosh index after upgrading since 
 
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.
 

	
 
@@ -70,12 +70,12 @@ Read the changelog to see if there were 
 
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 
 
and will always recheck the settings of the application, if there are no new
 
options that need to be set.
 

	
 
You may find it helpful to clear out your log file so that new errors are 
 
You may find it helpful to clear out your log file so that new errors are
 
readily apparent::
 

	
 
 echo > rhodecode.log
 
@@ -92,7 +92,7 @@ Or::
 
   If you're using Celery, make sure you restart all instances of it after
 
   upgrade.
 

	
 
.. _virtualenv: http://pypi.python.org/pypi/virtualenv  
 
.. _virtualenv: http://pypi.python.org/pypi/virtualenv
 
.. _python: http://www.python.org/
 
.. _mercurial: http://mercurial.selenic.com/
 
.. _celery: http://celeryproject.org/
docs/usage/backup.rst
Show inline comments
 
@@ -23,4 +23,4 @@ Database
 
When using sqlite just copy rhodecode.db.
 
Any other database engine requires a manual backup operation.
 

	
 
Database backup will contain all gathered statistics
 
\ No newline at end of file
 
Database backup will contain all gathered statistics
docs/usage/debugging.rst
Show inline comments
 
@@ -14,7 +14,7 @@ enable detailed debug
 

	
 
RhodeCode uses standard python logging modules to log it's output.
 
By default only loggers with INFO level are displayed. To enable full output
 
change `level = DEBUG` for all logging handlers in currently used .ini file. 
 
change `level = DEBUG` for all logging handlers in currently used .ini file.
 
This change will allow to see much more detailed output in the logfile or
 
console. This generally helps a lot to track issues.
 

	
docs/usage/general.rst
Show inline comments
 
@@ -11,7 +11,7 @@ Repository deleting
 
Currently when admin/owner deletes a repository, RhodeCode does not physically
 
delete a repository from filesystem, it renames it in a special way so it's
 
not possible to push,clone or access repository. It's worth a notice that,
 
even if someone will be given administrative access to RhodeCode and will 
 
even if someone will be given administrative access to RhodeCode and will
 
delete a repository You can easy restore such action by restoring `rm__<date>`
 
from the repository name, and internal repository storage (.hg/.git)
 

	
 
@@ -44,21 +44,21 @@ Due to complicated nature of repository 
 
can change.
 

	
 
example::
 
  
 

	
 
  #before
 
  http://server.com/repo_name
 
  # after insertion to test_group group the url will be
 
  http://server.com/test_group/repo_name
 
  
 

	
 
This can be an issue for build systems and any other hardcoded scripts, moving
 
repository to a group leads to a need for changing external systems. To 
 
overcome this RhodeCode introduces a non changable replacement url. It's 
 
repository to a group leads to a need for changing external systems. To
 
overcome this RhodeCode introduces a non changable replacement url. It's
 
simply an repository ID prefixed with `_` above urls are also accessible as::
 

	
 
  http://server.com/_<ID>
 
  
 

	
 
Since ID are always the same moving the repository will not affect such url.
 
the _<ID> syntax can be used anywhere in the system so urls with repo_name 
 
the _<ID> syntax can be used anywhere in the system so urls with repo_name
 
for changelogs, files and other can be exchanged with _<ID> syntax.
 

	
 

	
 
@@ -71,7 +71,7 @@ on errors the mails will have a detailed
 

	
 

	
 
Mails are also sent for code comments. If someone comments on a changeset
 
mail is sent to all participants, the person who commited the changeset 
 
mail is sent to all participants, the person who commited the changeset
 
(if present in RhodeCode), and to all people mentioned with @mention system.
 

	
 

	
 
@@ -96,12 +96,12 @@ Currently it support following options:
 

	
 

	
 
.. note::
 
    
 

	
 
    - *`svn -> hg` cloning requires `hgsubversion` library to be installed.*
 

	
 
If you need to clone repositories that are protected via basic auth, you
 
might pass the url with stored credentials inside eg. 
 
might pass the url with stored credentials inside eg.
 
`http://user:passw@remote.server/repo, RhodeCode will try to login and clone
 
using given credentials. Please take a note that they will be stored as
 
plaintext inside the database. RhodeCode will remove auth info when showing the 
 
plaintext inside the database. RhodeCode will remove auth info when showing the
 
clone url in summary page.
docs/usage/git_support.rst
Show inline comments
 
@@ -11,10 +11,10 @@ client installed on the machine to make 
 
Although There is one limitation on git usage.
 

	
 
- large pushes requires a http server with chunked encoding support.
 
 
 

	
 
if you plan to use git you need to run RhodeCode 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 
 
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 RhodeCode.
 

	
 
@@ -23,33 +23,33 @@ To use, simply change change the followi
 
    use = egg:Paste#http
 

	
 
to::
 
    
 

	
 
    use = egg:waitress#main
 

	
 
or::
 

	
 
    use = egg:gunicorn#main
 
    
 
    
 

	
 

	
 
And comment out bellow options::
 

	
 
    threadpool_workers = 
 
    threadpool_max_requests = 
 
    use_threadpool = 
 
    
 
    threadpool_workers =
 
    threadpool_max_requests =
 
    use_threadpool =
 

	
 

	
 
You can simply run `paster serve` as usual.
 

	
 
  
 
You can always disable git/hg support by editing a 
 

	
 
You can always disable git/hg support by editing a
 
file **rhodecode/__init__.py** and commenting out backends
 

	
 
.. code-block:: python
 
 
 

	
 
   BACKENDS = {
 
       'hg': 'Mercurial repository',
 
       #'git': 'Git repository',
 
   }
 

	
 
.. _waitress: http://pypi.python.org/pypi/waitress
 
.. _gunicorn: http://pypi.python.org/pypi/gunicorn
 
\ No newline at end of file
 
.. _gunicorn: http://pypi.python.org/pypi/gunicorn
docs/usage/locking.rst
Show inline comments
 
@@ -5,37 +5,37 @@ RhodeCode repository locking system
 
===================================
 

	
 

	
 
| Repos with **locking function=disabled** is the default, that's how repos work 
 
| Repos with **locking function=disabled** is the default, that's how repos work
 
  today.
 
| Repos with **locking function=enabled** behaves like follows:
 

	
 
Repos have a state called `locked` that can be true or false.
 
The hg/git commands `hg/git clone`, `hg/git pull`, and `hg/git push` 
 
The hg/git commands `hg/git clone`, `hg/git pull`, and `hg/git push`
 
influence this state:
 

	
 
- The command `hg/git pull <repo>` will lock that repo (locked=true) 
 
- The command `hg/git pull <repo>` will lock that repo (locked=true)
 
  if the user has write/admin permissions on this repo
 

	
 
- The command `hg/git clone <repo>` will lock that repo (locked=true) if the 
 
- The command `hg/git clone <repo>` will lock that repo (locked=true) if the
 
  user has write/admin permissions on this repo
 

	
 

	
 
RhodeCode will remember the user id who locked the repo
 
only this specific user can unlock the repo (locked=false) by calling 
 
only this specific user can unlock the repo (locked=false) by calling
 

	
 
- `hg/git push <repo>` 
 
- `hg/git push <repo>`
 

	
 
every other command on that repo from this user and 
 
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 
 
additionally the http error includes the <user> that locked the repo
 
(e.g. “repository <repo> locked by user <user>”)
 

	
 

	
 
So the scenario of use for repos with `locking function` enabled is that 
 
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.
 
\ No newline at end of file
 
Each repo can be manually unlocked by admin from the repo settings menu.
docs/usage/performance.rst
Show inline comments
 
@@ -22,7 +22,7 @@ Follow these few steps to improve perfor
 
1. Increase cache
 

	
 
    in the .ini file::
 
       
 

	
 
     beaker.cache.sql_cache_long.expire=3600 <-- set this to higher number
 

	
 
    This option affects the cache expiration time for main page. Having
 
@@ -33,18 +33,18 @@ Follow these few steps to improve perfor
 
    system and it will expire cache for repositories that had been changed.
 

	
 
2. Switch from sqlite to postgres or mysql
 
    
 

	
 
    sqlite is a good option when having small load on the system. But due to
 
    locking issues with sqlite, it's not recommended to use it for larger
 
    setup. Switching to mysql or postgres will result in a immediate
 
    performance increase.
 
    
 

	
 
3. Scale RhodeCode horizontally
 

	
 
    - running two or more instances on the same server can speed up things a lot
 
    - load balance using round robin or ip hash
 
    - you need to handle consistent user session storage by switching to 
 
      db sessions, client side sessions or sharing session data folder across 
 
    - you need to handle consistent user session storage by switching to
 
      db sessions, client side sessions or sharing session data folder across
 
      instances. See http://beaker.readthedocs.org/ docs for details.
 
    - remember that each instance needs it's own .ini file and unique
 
      `instance_id` set in them
 
\ No newline at end of file
 
      `instance_id` set in them
docs/usage/subrepos.rst
Show inline comments
 
@@ -5,14 +5,14 @@ working with RhodeCode and mercurial sub
 
=============================================
 

	
 
example usage of Subrepos with RhodeCode::
 
    
 

	
 
    ## init a simple repo
 
    hg init repo1                                                                                                                                                                                         
 
    hg init repo1
 
    cd repo1
 
    echo "file1" > file1
 
    hg add file1 
 
    hg add file1
 
    hg ci --message "initial file 1"
 
        
 

	
 
    #clone subrepo we want to add
 
    hg clone http://rc.local/subrepo
 

	
 
@@ -22,7 +22,7 @@ example usage of Subrepos with RhodeCode
 
    hg add .hgsub
 
    hg ci --message "added remote subrepo"
 

	
 
    
 

	
 

	
 
In file list of repo1 you will see a connected subrepo at revision it was
 
during cloning.
 
@@ -34,4 +34,4 @@ Next we can edit the subrepo data, and p
 
both of repositories.
 

	
 
see http://mercurial.aragost.com/kick-start/en/subrepositories/ for more
 
information about subrepositories   
 
\ No newline at end of file
 
information about subrepositories
docs/usage/troubleshooting.rst
Show inline comments
 
@@ -7,23 +7,23 @@ Troubleshooting
 

	
 
:Q: **Missing static files?**
 
:A: Make sure either to set the `static_files = true` in the .ini file or
 
   double check the root path for your http setup. It should point to 
 
   double check the root path for your http setup. It should point to
 
   for example:
 
   /home/my-virtual-python/lib/python2.6/site-packages/rhodecode/public
 
   
 
| 
 

	
 
|
 

	
 
:Q: **Can't install celery/rabbitmq?**
 
:A: Don't worry RhodeCode works without them too. No extra setup is required.
 
    Try out great celery docs for further help.
 

	
 
|
 
 
 

	
 
:Q: **Long lasting push timeouts?**
 
:A: Make sure you set a longer timeouts in your proxy/fcgi settings, timeouts
 
    are caused by https server and not RhodeCode.
 
    
 
| 
 

	
 
|
 

	
 
:Q: **Large pushes timeouts?**
 
:A: Make sure you set a proper max_body_size for the http server. Very often
 
@@ -46,7 +46,7 @@ Troubleshooting
 
:Q: **How i use hooks in RhodeCode?**
 
: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 
 
    just install proper one in repository eg. create file in
 
    `/gitrepo/hooks/pre-receive`. You can also use RhodeCode-extensions to
 
    connect to callback hooks, for both Git and Mercurial.
 

	
 
@@ -55,7 +55,7 @@ Troubleshooting
 
:Q: **RhodeCode is slow for me, how can i make it faster?**
 
:A: See the :ref:`performance` section
 

	
 
For further questions search the `Issues tracker`_, or post a message in the 
 
For further questions search the `Issues tracker`_, or post a message in the
 
`google group rhodecode`_
 

	
 
.. _virtualenv: http://pypi.python.org/pypi/virtualenv
 
@@ -67,4 +67,4 @@ For further questions search the `Issues
 
.. _mercurial-server: http://www.lshift.net/mercurial-server.html
 
.. _PublishingRepositories: http://mercurial.selenic.com/wiki/PublishingRepositories
 
.. _Issues tracker: https://bitbucket.org/marcinkuzminski/rhodecode/issues
 
.. _google group rhodecode: http://groups.google.com/group/rhodecode
 
\ No newline at end of file
 
.. _google group rhodecode: http://groups.google.com/group/rhodecode
rhodecode/templates/index_base.html
Show inline comments
 
@@ -12,7 +12,7 @@
 
                  %if c.group:
 
                    <span>${h.link_to(_('Add repository'),h.url('admin_settings_create_repository',parent_group=c.group.group_id))}</span>
 
                  %else:
 
                    <span>${h.link_to(_('Add repository'),h.url('admin_settings_create_repository'))}</span>                        
 
                    <span>${h.link_to(_('Add repository'),h.url('admin_settings_create_repository'))}</span>
 
                  %endif
 
                  </li>
 
                %endif
rhodecode/tests/functional/test_settings.py
Show inline comments
 
@@ -58,4 +58,3 @@ class TestSettingsController(TestControl
 
        perm[0].permission = Permission.get_by_key('repository.read')
 
        Session().add(perm[0])
 
        Session().commit()
 
        
 
\ No newline at end of file
0 comments (0 inline, 0 general)