##// END OF EJS Templates
whitespace cleanup
marcink -
r3224:8b8edfc2 beta
parent child Browse files
Show More
@@ -5,18 +5,18 b' RhodeCode'
5 About
5 About
6 -----
6 -----
7
7
8 ``RhodeCode`` is a fast and powerful management tool for Mercurial_ and GIT_
8 ``RhodeCode`` is a fast and powerful management tool for Mercurial_ and GIT_
9 with a built in push/pull server and full text search and code-review.
9 with a built in push/pull server and full text search and code-review.
10 It works on http/https and has a built in permission/authentication system with
10 It works on http/https and has a built in permission/authentication system with
11 the ability to authenticate via LDAP or ActiveDirectory. RhodeCode also provides
11 the ability to authenticate via LDAP or ActiveDirectory. RhodeCode also provides
12 simple API so it's easy integrable with existing external systems.
12 simple API so it's easy integrable with existing external systems.
13
13
14 RhodeCode is similar in some respects to github_ or bitbucket_,
14 RhodeCode is similar in some respects to github_ or bitbucket_,
15 however RhodeCode can be run as standalone hosted application on your own server.
15 however RhodeCode can be run as standalone hosted application on your own server.
16 It is open source and donation ware and focuses more on providing a customized,
16 It is open source and donation ware and focuses more on providing a customized,
17 self administered interface for Mercurial_ and GIT_ repositories.
17 self administered interface for Mercurial_ and GIT_ repositories.
18 RhodeCode works on \*nix systems and Windows it is powered by a vcs_ library
18 RhodeCode works on \*nix systems and Windows it is powered by a vcs_ library
19 that Lukasz Balcerzak and Marcin Kuzminski created to handle multiple
19 that Lukasz Balcerzak and Marcin Kuzminski created to handle multiple
20 different version control systems.
20 different version control systems.
21
21
22 RhodeCode uses `PEP386 versioning <http://www.python.org/dev/peps/pep-0386/>`_
22 RhodeCode uses `PEP386 versioning <http://www.python.org/dev/peps/pep-0386/>`_
@@ -29,7 +29,7 b' Stable releases of RhodeCode are best in'
29
29
30 Or::
30 Or::
31
31
32 pip install rhodecode
32 pip install rhodecode
33
33
34 Detailed instructions and links may be found on the Installation page.
34 Detailed instructions and links may be found on the Installation page.
35
35
@@ -51,7 +51,7 b' Source code'
51 -----------
51 -----------
52
52
53 The latest sources can be obtained from official RhodeCode instance
53 The latest sources can be obtained from official RhodeCode instance
54 https://secure.rhodecode.org
54 https://secure.rhodecode.org
55
55
56
56
57 MIRRORS:
57 MIRRORS:
@@ -68,7 +68,7 b' https://github.com/marcinkuzminski/rhode'
68 RhodeCode Features
68 RhodeCode Features
69 ------------------
69 ------------------
70
70
71 - Has its own middleware to handle mercurial_ and git_ protocol requests.
71 - Has its own middleware to handle mercurial_ and git_ protocol requests.
72 Each request is authenticated and logged together with IP address.
72 Each request is authenticated and logged together with IP address.
73 - Build for speed and performance. You can make multiple pulls/pushes simultaneous.
73 - Build for speed and performance. You can make multiple pulls/pushes simultaneous.
74 Proven to work with 1000s of repositories and users
74 Proven to work with 1000s of repositories and users
@@ -86,41 +86,41 b' RhodeCode Features'
86 changeset statuses, and notification system.
86 changeset statuses, and notification system.
87 - Importing and syncing repositories from remote locations for GIT_, Mercurial_ and SVN.
87 - Importing and syncing repositories from remote locations for GIT_, Mercurial_ and SVN.
88 - Mako templates let's you customize the look and feel of the application.
88 - Mako templates let's you customize the look and feel of the application.
89 - Beautiful diffs, annotations and source code browsing all colored by pygments.
89 - Beautiful diffs, annotations and source code browsing all colored by pygments.
90 Raw diffs are made in git-diff format for both VCS systems, including GIT_ binary-patches
90 Raw diffs are made in git-diff format for both VCS systems, including GIT_ binary-patches
91 - Mercurial_ and Git_ DAG graphs and yui-flot powered graphs with zooming and statistics
91 - Mercurial_ and Git_ DAG graphs and yui-flot powered graphs with zooming and statistics
92 to track activity for repositories
92 to track activity for repositories
93 - Admin interface with user/permission management. Admin activity journal, logs
93 - Admin interface with user/permission management. Admin activity journal, logs
94 pulls, pushes, forks, registrations and other actions made by all users.
94 pulls, pushes, forks, registrations and other actions made by all users.
95 - Server side forks. It is possible to fork a project and modify it freely
95 - Server side forks. It is possible to fork a project and modify it freely
96 without breaking the main repository.
96 without breaking the main repository.
97 - rst and markdown README support for repositories.
97 - rst and markdown README support for repositories.
98 - Full text search powered by Whoosh on the source files, commit messages, and file names.
98 - Full text search powered by Whoosh on the source files, commit messages, and file names.
99 Build in indexing daemons, with optional incremental index build
99 Build in indexing daemons, with optional incremental index build
100 (no external search servers required all in one application)
100 (no external search servers required all in one application)
101 - Setup project descriptions/tags and info inside built in db for easy, non
101 - Setup project descriptions/tags and info inside built in db for easy, non
102 file-system operations.
102 file-system operations.
103 - Intelligent cache with invalidation after push or project change, provides
103 - Intelligent cache with invalidation after push or project change, provides
104 high performance and always up to date data.
104 high performance and always up to date data.
105 - RSS / Atom feeds, gravatar support, downloadable sources as zip/tar/gz
105 - RSS / Atom feeds, gravatar support, downloadable sources as zip/tar/gz
106 - Optional async tasks for speed and performance using celery_
106 - Optional async tasks for speed and performance using celery_
107 - Backup scripts can do backup of whole app and send it over scp to desired
107 - Backup scripts can do backup of whole app and send it over scp to desired
108 location
108 location
109 - Based on pylons / sqlalchemy / sqlite / whoosh / vcs
109 - Based on pylons / sqlalchemy / sqlite / whoosh / vcs
110
110
111
111
112 Incoming / Plans
112 Incoming / Plans
113 ----------------
113 ----------------
114
114
115 - Finer granular permissions per branch, or subrepo
115 - Finer granular permissions per branch, or subrepo
116 - Web based merges for pull requests
116 - Web based merges for pull requests
117 - Tracking history for each lines in files
117 - Tracking history for each lines in files
118 - Simple issue tracker
118 - Simple issue tracker
119 - SSH based authentication with server side key management
119 - SSH based authentication with server side key management
120 - Commit based built in wiki system
120 - Commit based built in wiki system
121 - Gist server
121 - Gist server
122 - More statistics and graph (global annotation + some more statistics)
122 - More statistics and graph (global annotation + some more statistics)
123 - Other advancements as development continues (or you can of course make
123 - Other advancements as development continues (or you can of course make
124 additions and or requests)
124 additions and or requests)
125
125
126 License
126 License
@@ -135,10 +135,10 b' Getting help'
135 Listed bellow are various support resources that should help.
135 Listed bellow are various support resources that should help.
136
136
137 .. note::
137 .. note::
138
138
139 Please try to read the documentation before posting any issues, especially
139 Please try to read the documentation before posting any issues, especially
140 the **troubleshooting section**
140 the **troubleshooting section**
141
141
142 - Join the `Google group <http://groups.google.com/group/rhodecode>`_ and ask
142 - Join the `Google group <http://groups.google.com/group/rhodecode>`_ and ask
143 any questions.
143 any questions.
144
144
@@ -163,9 +163,9 b' You may also build the documentation for'
163 make html
163 make html
164
164
165 (You need to have sphinx_ installed to build the documentation. If you don't
165 (You need to have sphinx_ installed to build the documentation. If you don't
166 have sphinx_ installed you can install it via the command:
166 have sphinx_ installed you can install it via the command:
167 ``easy_install sphinx``)
167 ``easy_install sphinx``)
168
168
169 .. _virtualenv: http://pypi.python.org/pypi/virtualenv
169 .. _virtualenv: http://pypi.python.org/pypi/virtualenv
170 .. _python: http://www.python.org/
170 .. _python: http://www.python.org/
171 .. _sphinx: http://sphinx.pocoo.org/
171 .. _sphinx: http://sphinx.pocoo.org/
@@ -176,4 +176,4 b' have sphinx_ installed you can install i'
176 .. _git: http://git-scm.com/
176 .. _git: http://git-scm.com/
177 .. _celery: http://celeryproject.org/
177 .. _celery: http://celeryproject.org/
178 .. _Sphinx: http://sphinx.pocoo.org/
178 .. _Sphinx: http://sphinx.pocoo.org/
179 .. _vcs: http://pypi.python.org/pypi/vcs No newline at end of file
179 .. _vcs: http://pypi.python.org/pypi/vcs
@@ -13,10 +13,10 b' with JSON protocol both ways. An url to '
13 API ACCESS FOR WEB VIEWS
13 API ACCESS FOR WEB VIEWS
14 ++++++++++++++++++++++++
14 ++++++++++++++++++++++++
15
15
16 API access can also be turned on for each web view in RhodeCode that is
16 API access can also be turned on for each web view in RhodeCode that is
17 decorated with `@LoginRequired` decorator. To enable API access simple change
17 decorated with `@LoginRequired` decorator. To enable API access simple change
18 the standard login decorator to `@LoginRequired(api_access=True)`.
18 the standard login decorator to `@LoginRequired(api_access=True)`.
19 After this change, a rhodecode view can be accessed without login by adding a
19 After this change, a rhodecode view can be accessed without login by adding a
20 GET parameter `?api_key=<api_key>` to url. By default this is only
20 GET parameter `?api_key=<api_key>` to url. By default this is only
21 enabled on RSS/ATOM feed views.
21 enabled on RSS/ATOM feed views.
22
22
@@ -26,7 +26,7 b' API ACCESS'
26
26
27 All clients are required to send JSON-RPC spec JSON data::
27 All clients are required to send JSON-RPC spec JSON data::
28
28
29 {
29 {
30 "id:"<id>",
30 "id:"<id>",
31 "api_key":"<api_key>",
31 "api_key":"<api_key>",
32 "method":"<method_name>",
32 "method":"<method_name>",
@@ -49,7 +49,7 b' Simply provide'
49
49
50 RhodeCode API will return always a JSON-RPC response::
50 RhodeCode API will return always a JSON-RPC response::
51
51
52 {
52 {
53 "id":<id>, # matching id sent by request
53 "id":<id>, # matching id sent by request
54 "result": "<result>"|null, # JSON formatted result, null if any errors
54 "result": "<result>"|null, # JSON formatted result, null if any errors
55 "error": "null"|<error_message> # JSON formatted error (if any)
55 "error": "null"|<error_message> # JSON formatted error (if any)
@@ -70,14 +70,14 b' will be available.'
70 To get started quickly simply run::
70 To get started quickly simply run::
71
71
72 rhodecode-api _create_config --apikey=<youapikey> --apihost=<rhodecode host>
72 rhodecode-api _create_config --apikey=<youapikey> --apihost=<rhodecode host>
73
73
74 This will create a file named .config in the directory you executed it storing
74 This will create a file named .config in the directory you executed it storing
75 json config file with credentials. You can skip this step and always provide
75 json config file with credentials. You can skip this step and always provide
76 both of the arguments to be able to communicate with server
76 both of the arguments to be able to communicate with server
77
77
78
78
79 after that simply run any api command for example get_repo::
79 after that simply run any api command for example get_repo::
80
80
81 rhodecode-api get_repo
81 rhodecode-api get_repo
82
82
83 calling {"api_key": "<apikey>", "id": 75, "args": {}, "method": "get_repo"} to http://127.0.0.1:5000
83 calling {"api_key": "<apikey>", "id": 75, "args": {}, "method": "get_repo"} to http://127.0.0.1:5000
@@ -90,8 +90,8 b' Ups looks like we forgot to add an argum'
90
90
91 Let's try again now giving the repoid as parameters::
91 Let's try again now giving the repoid as parameters::
92
92
93 rhodecode-api get_repo repoid:rhodecode
93 rhodecode-api get_repo repoid:rhodecode
94
94
95 calling {"api_key": "<apikey>", "id": 39, "args": {"repoid": "rhodecode"}, "method": "get_repo"} to http://127.0.0.1:5000
95 calling {"api_key": "<apikey>", "id": 39, "args": {"repoid": "rhodecode"}, "method": "get_repo"} to http://127.0.0.1:5000
96 rhodecode said:
96 rhodecode said:
97 {'error': None,
97 {'error': None,
@@ -132,7 +132,7 b' rescan_repos'
132
132
133 Dispatch rescan repositories action. If remove_obsolete is set
133 Dispatch rescan repositories action. If remove_obsolete is set
134 RhodeCode will delete repos that are in database but not in the filesystem.
134 RhodeCode will delete repos that are in database but not in the filesystem.
135 This command can be executed only using api_key belonging to user with admin
135 This command can be executed only using api_key belonging to user with admin
136 rights.
136 rights.
137
137
138 INPUT::
138 INPUT::
@@ -147,7 +147,7 b' INPUT::'
147 OUTPUT::
147 OUTPUT::
148
148
149 id : <id_given_in_input>
149 id : <id_given_in_input>
150 result : "{'added': [<list of names of added repos>],
150 result : "{'added': [<list of names of added repos>],
151 'removed': [<list of names of removed repos>]}"
151 'removed': [<list of names of removed repos>]}"
152 error : null
152 error : null
153
153
@@ -157,7 +157,7 b' lock'
157
157
158 Set locking state on given repository by given user. If userid param is skipped
158 Set locking state on given repository by given user. If userid param is skipped
159 , then it is set to id of user whos calling this method.
159 , then it is set to id of user whos calling this method.
160 This command can be executed only using api_key belonging to user with admin
160 This command can be executed only using api_key belonging to user with admin
161 rights or regular user that have admin or write access to repository.
161 rights or regular user that have admin or write access to repository.
162
162
163 INPUT::
163 INPUT::
@@ -183,7 +183,7 b' show_ip'
183
183
184 Shows IP address as seen from RhodeCode server, together with all
184 Shows IP address as seen from RhodeCode server, together with all
185 defined IP addresses for given user.
185 defined IP addresses for given user.
186 This command can be executed only using api_key belonging to user with admin
186 This command can be executed only using api_key belonging to user with admin
187 rights.
187 rights.
188
188
189 INPUT::
189 INPUT::
@@ -208,7 +208,7 b' OUTPUT::'
208 ...
208 ...
209 ]
209 ]
210 }
210 }
211
211
212 error : null
212 error : null
213
213
214
214
@@ -217,7 +217,7 b' get_user'
217
217
218 Get's an user by username or user_id, Returns empty result if user is not found.
218 Get's an user by username or user_id, Returns empty result if user is not found.
219 If userid param is skipped it is set to id of user who is calling this method.
219 If userid param is skipped it is set to id of user who is calling this method.
220 This command can be executed only using api_key belonging to user with admin
220 This command can be executed only using api_key belonging to user with admin
221 rights, or regular users that cannot specify different userid than theirs
221 rights, or regular users that cannot specify different userid than theirs
222
222
223
223
@@ -226,14 +226,14 b' INPUT::'
226 id : <id_for_response>
226 id : <id_for_response>
227 api_key : "<api_key>"
227 api_key : "<api_key>"
228 method : "get_user"
228 method : "get_user"
229 args : {
229 args : {
230 "userid" : "<username or user_id Optional(=apiuser)>"
230 "userid" : "<username or user_id Optional(=apiuser)>"
231 }
231 }
232
232
233 OUTPUT::
233 OUTPUT::
234
234
235 id : <id_given_in_input>
235 id : <id_given_in_input>
236 result: None if user does not exist or
236 result: None if user does not exist or
237 {
237 {
238 "user_id" : "<user_id>",
238 "user_id" : "<user_id>",
239 "api_key" : "<api_key>",
239 "api_key" : "<api_key>",
@@ -298,7 +298,7 b' OUTPUT::'
298 create_user
298 create_user
299 -----------
299 -----------
300
300
301 Creates new user. This command can
301 Creates new user. This command can
302 be executed only using api_key belonging to user with admin rights.
302 be executed only using api_key belonging to user with admin rights.
303
303
304
304
@@ -342,7 +342,7 b' OUTPUT::'
342 update_user
342 update_user
343 -----------
343 -----------
344
344
345 updates given user if such user exists. This command can
345 updates given user if such user exists. This command can
346 be executed only using api_key belonging to user with admin rights.
346 be executed only using api_key belonging to user with admin rights.
347
347
348
348
@@ -379,7 +379,7 b' OUTPUT::'
379 "admin" :  "<bool>",
379 "admin" :  "<bool>",
380 "ldap_dn" : "<ldap_dn>",
380 "ldap_dn" : "<ldap_dn>",
381 "last_login": "<last_login>",
381 "last_login": "<last_login>",
382 },
382 },
383 }
383 }
384 error: null
384 error: null
385
385
@@ -388,7 +388,7 b' delete_user'
388 -----------
388 -----------
389
389
390
390
391 deletes givenuser if such user exists. This command can
391 deletes givenuser if such user exists. This command can
392 be executed only using api_key belonging to user with admin rights.
392 be executed only using api_key belonging to user with admin rights.
393
393
394
394
@@ -436,7 +436,7 b' OUTPUT::'
436 "group_name" : "<groupname>",
436 "group_name" : "<groupname>",
437 "active": "<bool>",
437 "active": "<bool>",
438 "members" : [
438 "members" : [
439 {
439 {
440 "user_id" : "<user_id>",
440 "user_id" : "<user_id>",
441 "username" : "<username>",
441 "username" : "<username>",
442 "firstname": "<firstname>",
442 "firstname": "<firstname>",
@@ -457,7 +457,7 b' OUTPUT::'
457 get_users_groups
457 get_users_groups
458 ----------------
458 ----------------
459
459
460 Lists all existing users groups. This command can be executed only using
460 Lists all existing users groups. This command can be executed only using
461 api_key belonging to user with admin rights.
461 api_key belonging to user with admin rights.
462
462
463
463
@@ -516,7 +516,7 b' OUTPUT::'
516 add_user_to_users_group
516 add_user_to_users_group
517 -----------------------
517 -----------------------
518
518
519 Adds a user to a users group. If user exists in that group success will be
519 Adds a user to a users group. If user exists in that group success will be
520 `false`. This command can be executed only using api_key
520 `false`. This command can be executed only using api_key
521 belonging to user with admin rights
521 belonging to user with admin rights
522
522
@@ -536,7 +536,7 b' OUTPUT::'
536 id : <id_given_in_input>
536 id : <id_given_in_input>
537 result: {
537 result: {
538 "success": True|False # depends on if member is in group
538 "success": True|False # depends on if member is in group
539 "msg": "added member `<username>` to users group `<groupname>` |
539 "msg": "added member `<username>` to users group `<groupname>` |
540 User is already in that group"
540 User is already in that group"
541 }
541 }
542 error: null
542 error: null
@@ -546,7 +546,7 b' remove_user_from_users_group'
546 ----------------------------
546 ----------------------------
547
547
548 Removes a user from a users group. If user is not in given group success will
548 Removes a user from a users group. If user is not in given group success will
549 be `false`. This command can be executed only
549 be `false`. This command can be executed only
550 using api_key belonging to user with admin rights
550 using api_key belonging to user with admin rights
551
551
552
552
@@ -565,7 +565,7 b' OUTPUT::'
565 id : <id_given_in_input>
565 id : <id_given_in_input>
566 result: {
566 result: {
567 "success": True|False, # depends on if member is in group
567 "success": True|False, # depends on if member is in group
568 "msg": "removed member <username> from users group <groupname> |
568 "msg": "removed member <username> from users group <groupname> |
569 User wasn't in group"
569 User wasn't in group"
570 }
570 }
571 error: null
571 error: null
@@ -575,8 +575,8 b' get_repo'
575 --------
575 --------
576
576
577 Gets an existing repository by it's name or repository_id. Members will return
577 Gets an existing repository by it's name or repository_id. Members will return
578 either users_group or user associated to that repository. This command can be
578 either users_group or user associated to that repository. This command can be
579 executed only using api_key belonging to user with admin
579 executed only using api_key belonging to user with admin
580 rights or regular user that have at least read access to repository.
580 rights or regular user that have at least read access to repository.
581
581
582
582
@@ -600,9 +600,9 b' OUTPUT::'
600 "clone_uri" : "<clone_uri>",
600 "clone_uri" : "<clone_uri>",
601 "enable_downloads": "<bool>",
601 "enable_downloads": "<bool>",
602 "enable_locking": "<bool>",
602 "enable_locking": "<bool>",
603 "enable_statistics": "<bool>",
603 "enable_statistics": "<bool>",
604 "private": "<bool>",
604 "private": "<bool>",
605 "created_on" : "<date_time_created>",
605 "created_on" : "<date_time_created>",
606 "description" : "<description>",
606 "description" : "<description>",
607 "landing_rev": "<landing_rev>",
607 "landing_rev": "<landing_rev>",
608 "last_changeset": {
608 "last_changeset": {
@@ -616,7 +616,7 b' OUTPUT::'
616 "owner": "<repo_owner>",
616 "owner": "<repo_owner>",
617 "fork_of": "<name_of_fork_parent>",
617 "fork_of": "<name_of_fork_parent>",
618 "members" : [
618 "members" : [
619 {
619 {
620 "type": "user",
620 "type": "user",
621 "user_id" : "<user_id>",
621 "user_id" : "<user_id>",
622 "username" : "<username>",
622 "username" : "<username>",
@@ -631,7 +631,7 b' OUTPUT::'
631 "permission" : "repository.(read|write|admin)"
631 "permission" : "repository.(read|write|admin)"
632 },
632 },
633
633
634 {
634 {
635 "type": "users_group",
635 "type": "users_group",
636 "id" : "<usersgroupid>",
636 "id" : "<usersgroupid>",
637 "name" : "<usersgroupname>",
637 "name" : "<usersgroupname>",
@@ -652,9 +652,9 b' OUTPUT::'
652 "active" : "<bool>",
652 "active" : "<bool>",
653 "admin" :  "<bool>",
653 "admin" :  "<bool>",
654 "ldap_dn" : "<ldap_dn>",
654 "ldap_dn" : "<ldap_dn>",
655 "last_login": "<last_login>",
655 "last_login": "<last_login>",
656 },
656 },
657
657
658 ]
658 ]
659 }
659 }
660 error: null
660 error: null
@@ -663,8 +663,8 b' OUTPUT::'
663 get_repos
663 get_repos
664 ---------
664 ---------
665
665
666 Lists all existing repositories. This command can be executed only using
666 Lists all existing repositories. This command can be executed only using
667 api_key belonging to user with admin rights or regular user that have
667 api_key belonging to user with admin rights or regular user that have
668 admin, write or read access to repository.
668 admin, write or read access to repository.
669
669
670
670
@@ -685,14 +685,14 b' OUTPUT::'
685 "repo_type" : "<repo_type>",
685 "repo_type" : "<repo_type>",
686 "clone_uri" : "<clone_uri>",
686 "clone_uri" : "<clone_uri>",
687 "private": : "<bool>",
687 "private": : "<bool>",
688 "created_on" : "<datetimecreated>",
688 "created_on" : "<datetimecreated>",
689 "description" : "<description>",
689 "description" : "<description>",
690 "landing_rev": "<landing_rev>",
690 "landing_rev": "<landing_rev>",
691 "owner": "<repo_owner>",
691 "owner": "<repo_owner>",
692 "fork_of": "<name_of_fork_parent>",
692 "fork_of": "<name_of_fork_parent>",
693 "enable_downloads": "<bool>",
693 "enable_downloads": "<bool>",
694 "enable_locking": "<bool>",
694 "enable_locking": "<bool>",
695 "enable_statistics": "<bool>",
695 "enable_statistics": "<bool>",
696 },
696 },
697
697
698 ]
698 ]
@@ -702,9 +702,9 b' OUTPUT::'
702 get_repo_nodes
702 get_repo_nodes
703 --------------
703 --------------
704
704
705 returns a list of nodes and it's children in a flat list for a given path
705 returns a list of nodes and it's children in a flat list for a given path
706 at given revision. It's possible to specify ret_type to show only `files` or
706 at given revision. It's possible to specify ret_type to show only `files` or
707 `dirs`. This command can be executed only using api_key belonging to user
707 `dirs`. This command can be executed only using api_key belonging to user
708 with admin rights
708 with admin rights
709
709
710
710
@@ -737,9 +737,9 b' create_repo'
737 -----------
737 -----------
738
738
739 Creates a repository. If repository name contains "/", all needed repository
739 Creates a repository. If repository name contains "/", all needed repository
740 groups will be created. For example "foo/bar/baz" will create groups
740 groups will be created. For example "foo/bar/baz" will create groups
741 "foo", "bar" (with "foo" as parent), and create "baz" repository with
741 "foo", "bar" (with "foo" as parent), and create "baz" repository with
742 "bar" as group. This command can be executed only using api_key belonging to user with admin
742 "bar" as group. This command can be executed only using api_key belonging to user with admin
743 rights or regular user that have create repository permission. Regular users
743 rights or regular user that have create repository permission. Regular users
744 cannot specify owner parameter
744 cannot specify owner parameter
745
745
@@ -773,14 +773,14 b' OUTPUT::'
773 "repo_type" : "<repo_type>",
773 "repo_type" : "<repo_type>",
774 "clone_uri" : "<clone_uri>",
774 "clone_uri" : "<clone_uri>",
775 "private": : "<bool>",
775 "private": : "<bool>",
776 "created_on" : "<datetimecreated>",
776 "created_on" : "<datetimecreated>",
777 "description" : "<description>",
777 "description" : "<description>",
778 "landing_rev": "<landing_rev>",
778 "landing_rev": "<landing_rev>",
779 "owner": "<username or user_id>",
779 "owner": "<username or user_id>",
780 "fork_of": "<name_of_fork_parent>",
780 "fork_of": "<name_of_fork_parent>",
781 "enable_downloads": "<bool>",
781 "enable_downloads": "<bool>",
782 "enable_locking": "<bool>",
782 "enable_locking": "<bool>",
783 "enable_statistics": "<bool>",
783 "enable_statistics": "<bool>",
784 },
784 },
785 }
785 }
786 error: null
786 error: null
@@ -809,7 +809,7 b' INPUT::'
809 "copy_permissions": "<bool>",
809 "copy_permissions": "<bool>",
810 "private": "<bool>",
810 "private": "<bool>",
811 "landing_rev": "<landing_rev>"
811 "landing_rev": "<landing_rev>"
812
812
813 }
813 }
814
814
815 OUTPUT::
815 OUTPUT::
@@ -825,7 +825,7 b' OUTPUT::'
825 delete_repo
825 delete_repo
826 -----------
826 -----------
827
827
828 Deletes a repository. This command can be executed only using api_key belonging to user with admin
828 Deletes a repository. This command can be executed only using api_key belonging to user with admin
829 rights or regular user that have admin access to repository.
829 rights or regular user that have admin access to repository.
830
830
831
831
@@ -852,7 +852,7 b' grant_user_permission'
852 ---------------------
852 ---------------------
853
853
854 Grant permission for user on given repository, or update existing one
854 Grant permission for user on given repository, or update existing one
855 if found. This command can be executed only using api_key belonging to user
855 if found. This command can be executed only using api_key belonging to user
856 with admin rights.
856 with admin rights.
857
857
858
858
@@ -880,7 +880,7 b' OUTPUT::'
880 revoke_user_permission
880 revoke_user_permission
881 ----------------------
881 ----------------------
882
882
883 Revoke permission for user on given repository. This command can be executed
883 Revoke permission for user on given repository. This command can be executed
884 only using api_key belonging to user with admin rights.
884 only using api_key belonging to user with admin rights.
885
885
886
886
@@ -908,7 +908,7 b' grant_users_group_permission'
908 ----------------------------
908 ----------------------------
909
909
910 Grant permission for users group on given repository, or update
910 Grant permission for users group on given repository, or update
911 existing one if found. This command can be executed only using
911 existing one if found. This command can be executed only using
912 api_key belonging to user with admin rights.
912 api_key belonging to user with admin rights.
913
913
914
914
@@ -931,12 +931,12 b' OUTPUT::'
931 "success": true
931 "success": true
932 }
932 }
933 error: null
933 error: null
934
934
935
935
936 revoke_users_group_permission
936 revoke_users_group_permission
937 -----------------------------
937 -----------------------------
938
938
939 Revoke permission for users group on given repository.This command can be
939 Revoke permission for users group on given repository.This command can be
940 executed only using api_key belonging to user with admin rights.
940 executed only using api_key belonging to user with admin rights.
941
941
942 INPUT::
942 INPUT::
@@ -956,4 +956,4 b' OUTPUT::'
956 "msg" : "Revoked perm for group: `<usersgroupname>` in repo: `<reponame>`",
956 "msg" : "Revoked perm for group: `<usersgroupname>` in repo: `<reponame>`",
957 "success": true
957 "success": true
958 }
958 }
959 error: null No newline at end of file
959 error: null
@@ -6,30 +6,30 b' The :mod:`models` Module'
6
6
7 .. automodule:: rhodecode.model
7 .. automodule:: rhodecode.model
8 :members:
8 :members:
9
9
10 .. automodule:: rhodecode.model.comment
10 .. automodule:: rhodecode.model.comment
11 :members:
11 :members:
12
12
13 .. automodule:: rhodecode.model.notification
13 .. automodule:: rhodecode.model.notification
14 :members:
14 :members:
15
15
16 .. automodule:: rhodecode.model.permission
16 .. automodule:: rhodecode.model.permission
17 :members:
17 :members:
18
18
19 .. automodule:: rhodecode.model.repo_permission
19 .. automodule:: rhodecode.model.repo_permission
20 :members:
20 :members:
21
21
22 .. automodule:: rhodecode.model.repo
22 .. automodule:: rhodecode.model.repo
23 :members:
23 :members:
24
24
25 .. automodule:: rhodecode.model.repos_group
25 .. automodule:: rhodecode.model.repos_group
26 :members:
26 :members:
27
27
28 .. automodule:: rhodecode.model.scm
28 .. automodule:: rhodecode.model.scm
29 :members:
29 :members:
30
30
31 .. automodule:: rhodecode.model.user
31 .. automodule:: rhodecode.model.user
32 :members:
32 :members:
33
33
34 .. automodule:: rhodecode.model.users_group
34 .. automodule:: rhodecode.model.users_group
35 :members: No newline at end of file
35 :members:
@@ -56,7 +56,7 b' 1.5.1 (**2012-12-13**)'
56 news
56 news
57 ++++
57 ++++
58
58
59 - implements #677: Don't allow to close pull requests when they are
59 - implements #677: Don't allow to close pull requests when they are
60 under-review status
60 under-review status
61 - implemented #670 Implementation of Roles in Pull Request
61 - implemented #670 Implementation of Roles in Pull Request
62
62
@@ -93,7 +93,7 b' news'
93 - implemented #638 permissions overview to groups
93 - implemented #638 permissions overview to groups
94 - implements #636, lazy loading of history and authors to speed up source
94 - implements #636, lazy loading of history and authors to speed up source
95 pages rendering
95 pages rendering
96 - implemented #647, option to pass list of default encoding used to
96 - implemented #647, option to pass list of default encoding used to
97 encode to/decode from unicode
97 encode to/decode from unicode
98 - added caching layer into RSS/ATOM feeds.
98 - added caching layer into RSS/ATOM feeds.
99 - basic implementation of cherry picking changesets for pull request, ref #575
99 - basic implementation of cherry picking changesets for pull request, ref #575
@@ -116,7 +116,7 b' fixes'
116 - fixes #612 Double quotes to Single quotes result in bad html in diff
116 - fixes #612 Double quotes to Single quotes result in bad html in diff
117 - fixes #630 git statistics do too much work making them slow.
117 - fixes #630 git statistics do too much work making them slow.
118 - fixes #625 Git-Tags are not displayed in Shortlog
118 - fixes #625 Git-Tags are not displayed in Shortlog
119 - fix for issue #602, enforce str when setting mercurial UI object.
119 - fix for issue #602, enforce str when setting mercurial UI object.
120 When this is used together with mercurial internal translation system
120 When this is used together with mercurial internal translation system
121 it can lead to UnicodeDecodeErrors
121 it can lead to UnicodeDecodeErrors
122 - fixes #645 Fix git handler when doing delete remote branch
122 - fixes #645 Fix git handler when doing delete remote branch
@@ -126,7 +126,7 b' fixes'
126 different summary page loads
126 different summary page loads
127 - implemented #658 Changing username in LDAP-Mode should not be allowed.
127 - implemented #658 Changing username in LDAP-Mode should not be allowed.
128 - fixes #652 switch to generator approach when doing file annotation to prevent
128 - fixes #652 switch to generator approach when doing file annotation to prevent
129 huge memory consumption
129 huge memory consumption
130 - fixes #666 move lockkey path location to cache_dir to ensure this path is
130 - fixes #666 move lockkey path location to cache_dir to ensure this path is
131 always writable for rhodecode server
131 always writable for rhodecode server
132 - many more small fixes and improvements
132 - many more small fixes and improvements
@@ -179,7 +179,7 b' fixes'
179
179
180 - fixed #570 explicit users group permissions can overwrite owner permissions
180 - fixed #570 explicit users group permissions can overwrite owner permissions
181 - fixed #578 set proper PATH with current Python for Git
181 - fixed #578 set proper PATH with current Python for Git
182 hooks to execute within same Python as RhodeCode
182 hooks to execute within same Python as RhodeCode
183 - fixed issue with Git bare repos that ends with .git in name
183 - fixed issue with Git bare repos that ends with .git in name
184
184
185 1.4.2 (**2012-09-12**)
185 1.4.2 (**2012-09-12**)
@@ -194,7 +194,7 b' news'
194 groups. Now only write access to group allows to create a repostiory
194 groups. Now only write access to group allows to create a repostiory
195 within that group
195 within that group
196 - #565 Add support for {netloc} and {scheme} to alternative_gravatar_url
196 - #565 Add support for {netloc} and {scheme} to alternative_gravatar_url
197 - updated translation for zh_CN
197 - updated translation for zh_CN
198
198
199 fixes
199 fixes
200 +++++
200 +++++
@@ -213,7 +213,7 b' news'
213 ++++
213 ++++
214
214
215 - always put a comment about code-review status change even if user send
215 - always put a comment about code-review status change even if user send
216 empty data
216 empty data
217 - modified_on column saves repository update and it's going to be used
217 - modified_on column saves repository update and it's going to be used
218 later for light version of main page ref #500
218 later for light version of main page ref #500
219 - pull request notifications send much nicer emails with details about pull
219 - pull request notifications send much nicer emails with details about pull
@@ -224,10 +224,10 b' fixes'
224 +++++
224 +++++
225
225
226 - fixed migrations of permissions that can lead to inconsistency.
226 - fixed migrations of permissions that can lead to inconsistency.
227 Some users sent feedback that after upgrading from older versions issues
227 Some users sent feedback that after upgrading from older versions issues
228 with updating default permissions occurred. RhodeCode detects that now and
228 with updating default permissions occurred. RhodeCode detects that now and
229 resets default user permission to initial state if there is a need for that.
229 resets default user permission to initial state if there is a need for that.
230 Also forces users to set the default value for new forking permission.
230 Also forces users to set the default value for new forking permission.
231 - #535 improved apache wsgi example configuration in docs
231 - #535 improved apache wsgi example configuration in docs
232 - fixes #550 mercurial repositories comparision failed when origin repo had
232 - fixes #550 mercurial repositories comparision failed when origin repo had
233 additional not-common changesets
233 additional not-common changesets
@@ -246,7 +246,7 b' 1.4.0 (**2012-09-03**)'
246
246
247 news
247 news
248 ++++
248 ++++
249
249
250 - new codereview system
250 - new codereview system
251 - email map, allowing users to have multiple email addresses mapped into
251 - email map, allowing users to have multiple email addresses mapped into
252 their accounts
252 their accounts
@@ -257,11 +257,11 b' news'
257 - #464 added links to groups in permission box
257 - #464 added links to groups in permission box
258 - #465 mentions autocomplete inside comments boxes
258 - #465 mentions autocomplete inside comments boxes
259 - #469 added --update-only option to whoosh to re-index only given list
259 - #469 added --update-only option to whoosh to re-index only given list
260 of repos in index
260 of repos in index
261 - rhodecode-api CLI client
261 - rhodecode-api CLI client
262 - new git http protocol replaced buggy dulwich implementation.
262 - new git http protocol replaced buggy dulwich implementation.
263 Now based on pygrack & gitweb
263 Now based on pygrack & gitweb
264 - Improved RSS/ATOM feeds. Discoverable by browsers using proper headers, and
264 - Improved RSS/ATOM feeds. Discoverable by browsers using proper headers, and
265 reformated based on user suggestions. Additional rss/atom feeds for user
265 reformated based on user suggestions. Additional rss/atom feeds for user
266 journal
266 journal
267 - various i18n improvements
267 - various i18n improvements
@@ -269,21 +269,21 b' news'
269 - File view now displays small gravatars off all authors of given file
269 - File view now displays small gravatars off all authors of given file
270 - Implemented landing revisions. Each repository will get landing_rev attribute
270 - Implemented landing revisions. Each repository will get landing_rev attribute
271 that defines 'default' revision/branch for generating readme files
271 that defines 'default' revision/branch for generating readme files
272 - Implemented #509, RhodeCode enforces SSL for push/pulling if requested at
272 - Implemented #509, RhodeCode enforces SSL for push/pulling if requested at
273 earliest possible call.
273 earliest possible call.
274 - Import remote svn repositories to mercurial using hgsubversion.
274 - Import remote svn repositories to mercurial using hgsubversion.
275 - Fixed #508 RhodeCode now has a option to explicitly set forking permissions
275 - Fixed #508 RhodeCode now has a option to explicitly set forking permissions
276 - RhodeCode can use alternative server for generating avatar icons
276 - RhodeCode can use alternative server for generating avatar icons
277 - implemented repositories locking. Pull locks, push unlocks. Also can be done
277 - implemented repositories locking. Pull locks, push unlocks. Also can be done
278 via API calls
278 via API calls
279 - #538 form for permissions can handle multiple users at once
279 - #538 form for permissions can handle multiple users at once
280
280
281 fixes
281 fixes
282 +++++
282 +++++
283
283
284 - improved translations
284 - improved translations
285 - fixes issue #455 Creating an archive generates an exception on Windows
285 - fixes issue #455 Creating an archive generates an exception on Windows
286 - fixes #448 Download ZIP archive keeps file in /tmp open and results
286 - fixes #448 Download ZIP archive keeps file in /tmp open and results
287 in out of disk space
287 in out of disk space
288 - fixes issue #454 Search results under Windows include proceeding
288 - fixes issue #454 Search results under Windows include proceeding
289 backslash
289 backslash
@@ -295,9 +295,9 b' fixes'
295 - fixed issue #459. Changed the way of obtaining logger in reindex task.
295 - fixed issue #459. Changed the way of obtaining logger in reindex task.
296 - fixed #453 added ID field in whoosh SCHEMA that solves the issue of
296 - fixed #453 added ID field in whoosh SCHEMA that solves the issue of
297 reindexing modified files
297 reindexing modified files
298 - fixed #481 rhodecode emails are sent without Date header
298 - fixed #481 rhodecode emails are sent without Date header
299 - fixed #458 wrong count when no repos are present
299 - fixed #458 wrong count when no repos are present
300 - fixed issue #492 missing `\ No newline at end of file` test at the end of
300 - fixed issue #492 missing `\ No newline at end of file` test at the end of
301 new chunk in html diff
301 new chunk in html diff
302 - full text search now works also for commit messages
302 - full text search now works also for commit messages
303
303
@@ -308,8 +308,8 b' news'
308 ++++
308 ++++
309
309
310 - chinese traditional translation
310 - chinese traditional translation
311 - changed setup-app into setup-rhodecode and added arguments for auto-setup
311 - changed setup-app into setup-rhodecode and added arguments for auto-setup
312 mode that doesn't need user interaction
312 mode that doesn't need user interaction
313
313
314 fixes
314 fixes
315 +++++
315 +++++
@@ -329,11 +329,11 b' news'
329 - use ext_json for json module
329 - use ext_json for json module
330 - unified annotation view with file source view
330 - unified annotation view with file source view
331 - notification improvements, better inbox + css
331 - notification improvements, better inbox + css
332 - #419 don't strip passwords for login forms, make rhodecode
332 - #419 don't strip passwords for login forms, make rhodecode
333 more compatible with LDAP servers
333 more compatible with LDAP servers
334 - Added HTTP_X_FORWARDED_FOR as another method of extracting
334 - Added HTTP_X_FORWARDED_FOR as another method of extracting
335 IP for pull/push logs. - moved all to base controller
335 IP for pull/push logs. - moved all to base controller
336 - #415: Adding comment to changeset causes reload.
336 - #415: Adding comment to changeset causes reload.
337 Comments are now added via ajax and doesn't reload the page
337 Comments are now added via ajax and doesn't reload the page
338 - #374 LDAP config is discarded when LDAP can't be activated
338 - #374 LDAP config is discarded when LDAP can't be activated
339 - limited push/pull operations are now logged for git in the journal
339 - limited push/pull operations are now logged for git in the journal
@@ -349,7 +349,7 b' fixes'
349 - #418 cast to unicode fixes in notification objects
349 - #418 cast to unicode fixes in notification objects
350 - #426 fixed mention extracting regex
350 - #426 fixed mention extracting regex
351 - fixed remote-pulling for git remotes remopositories
351 - fixed remote-pulling for git remotes remopositories
352 - fixed #434: Error when accessing files or changesets of a git repository
352 - fixed #434: Error when accessing files or changesets of a git repository
353 with submodules
353 with submodules
354 - fixed issue with empty APIKEYS for users after registration ref. #438
354 - fixed issue with empty APIKEYS for users after registration ref. #438
355 - fixed issue with getting README files from git repositories
355 - fixed issue with getting README files from git repositories
@@ -367,14 +367,14 b' news'
367 post push/pull/create repo hooks callbacks
367 post push/pull/create repo hooks callbacks
368 - implemented #377 Users view for his own permissions on account page
368 - implemented #377 Users view for his own permissions on account page
369 - #399 added inheritance of permissions for users group on repos groups
369 - #399 added inheritance of permissions for users group on repos groups
370 - #401 repository group is automatically pre-selected when adding repos
370 - #401 repository group is automatically pre-selected when adding repos
371 inside a repository group
371 inside a repository group
372 - added alternative HTTP 403 response when client failed to authenticate. Helps
372 - added alternative HTTP 403 response when client failed to authenticate. Helps
373 solving issues with Mercurial and LDAP
373 solving issues with Mercurial and LDAP
374 - #402 removed group prefix from repository name when listing repositories
374 - #402 removed group prefix from repository name when listing repositories
375 inside a group
375 inside a group
376 - added gravatars into permission view and permissions autocomplete
376 - added gravatars into permission view and permissions autocomplete
377 - #347 when running multiple RhodeCode instances, properly invalidates cache
377 - #347 when running multiple RhodeCode instances, properly invalidates cache
378 for all registered servers
378 for all registered servers
379
379
380 fixes
380 fixes
@@ -384,15 +384,15 b' fixes'
384 - fixed #385 clone by ID url was loosing proxy prefix in URL
384 - fixed #385 clone by ID url was loosing proxy prefix in URL
385 - fixed some unicode problems with waitress
385 - fixed some unicode problems with waitress
386 - fixed issue with escaping < and > in changeset commits
386 - fixed issue with escaping < and > in changeset commits
387 - fixed error occurring during recursive group creation in API
387 - fixed error occurring during recursive group creation in API
388 create_repo function
388 create_repo function
389 - fixed #393 py2.5 fixes for routes url generator
389 - fixed #393 py2.5 fixes for routes url generator
390 - fixed #397 Private repository groups shows up before login
390 - fixed #397 Private repository groups shows up before login
391 - fixed #396 fixed problems with revoking users in nested groups
391 - fixed #396 fixed problems with revoking users in nested groups
392 - fixed mysql unicode issues + specified InnoDB as default engine with
392 - fixed mysql unicode issues + specified InnoDB as default engine with
393 utf8 charset
393 utf8 charset
394 - #406 trim long branch/tag names in changelog to not break UI
394 - #406 trim long branch/tag names in changelog to not break UI
395
395
396 1.3.3 (**2012-03-02**)
396 1.3.3 (**2012-03-02**)
397 ----------------------
397 ----------------------
398
398
@@ -403,11 +403,11 b' news'
403 fixes
403 fixes
404 +++++
404 +++++
405
405
406 - fixed some python2.5 compatibility issues
406 - fixed some python2.5 compatibility issues
407 - fixed issues with removed repos was accidentally added as groups, after
407 - fixed issues with removed repos was accidentally added as groups, after
408 full rescan of paths
408 full rescan of paths
409 - fixes #376 Cannot edit user (using container auth)
409 - fixes #376 Cannot edit user (using container auth)
410 - fixes #378 Invalid image urls on changeset screen with proxy-prefix
410 - fixes #378 Invalid image urls on changeset screen with proxy-prefix
411 configuration
411 configuration
412 - fixed initial sorting of repos inside repo group
412 - fixed initial sorting of repos inside repo group
413 - fixes issue when user tried to resubmit same permission into user/user_groups
413 - fixes issue when user tried to resubmit same permission into user/user_groups
@@ -415,7 +415,7 b' fixes'
415 - fixed raw_changeset for git. It was generated with hg patch headers
415 - fixed raw_changeset for git. It was generated with hg patch headers
416 - fixed vcs issue with last_changeset for filenodes
416 - fixed vcs issue with last_changeset for filenodes
417 - fixed missing commit after hook delete
417 - fixed missing commit after hook delete
418 - fixed #372 issues with git operation detection that caused a security issue
418 - fixed #372 issues with git operation detection that caused a security issue
419 for git repos
419 for git repos
420
420
421 1.3.2 (**2012-02-28**)
421 1.3.2 (**2012-02-28**)
@@ -432,9 +432,9 b' fixes'
432 - fixed git remote repos validator that prevented from cloning remote git repos
432 - fixed git remote repos validator that prevented from cloning remote git repos
433 - fixes #370 ending slashes fixes for repo and groups
433 - fixes #370 ending slashes fixes for repo and groups
434 - fixes #368 improved git-protocol detection to handle other clients
434 - fixes #368 improved git-protocol detection to handle other clients
435 - fixes #366 When Setting Repository Group To Blank Repo Group Wont Be
435 - fixes #366 When Setting Repository Group To Blank Repo Group Wont Be
436 Moved To Root
436 Moved To Root
437 - fixes #371 fixed issues with beaker/sqlalchemy and non-ascii cache keys
437 - fixes #371 fixed issues with beaker/sqlalchemy and non-ascii cache keys
438 - fixed #373 missing cascade drop on user_group_to_perm table
438 - fixed #373 missing cascade drop on user_group_to_perm table
439
439
440 1.3.1 (**2012-02-27**)
440 1.3.1 (**2012-02-27**)
@@ -448,7 +448,7 b' fixes'
448 +++++
448 +++++
449
449
450 - redirection loop occurs when remember-me wasn't checked during login
450 - redirection loop occurs when remember-me wasn't checked during login
451 - fixes issues with git blob history generation
451 - fixes issues with git blob history generation
452 - don't fetch branch for git in file history dropdown. Causes unneeded slowness
452 - don't fetch branch for git in file history dropdown. Causes unneeded slowness
453
453
454 1.3.0 (**2012-02-26**)
454 1.3.0 (**2012-02-26**)
@@ -457,19 +457,19 b' 1.3.0 (**2012-02-26**)'
457 news
457 news
458 ++++
458 ++++
459
459
460 - code review, inspired by github code-comments
460 - code review, inspired by github code-comments
461 - #215 rst and markdown README files support
461 - #215 rst and markdown README files support
462 - #252 Container-based and proxy pass-through authentication support
462 - #252 Container-based and proxy pass-through authentication support
463 - #44 branch browser. Filtering of changelog by branches
463 - #44 branch browser. Filtering of changelog by branches
464 - mercurial bookmarks support
464 - mercurial bookmarks support
465 - new hover top menu, optimized to add maximum size for important views
465 - new hover top menu, optimized to add maximum size for important views
466 - configurable clone url template with possibility to specify protocol like
466 - configurable clone url template with possibility to specify protocol like
467 ssh:// or http:// and also manually alter other parts of clone_url.
467 ssh:// or http:// and also manually alter other parts of clone_url.
468 - enabled largefiles extension by default
468 - enabled largefiles extension by default
469 - optimized summary file pages and saved a lot of unused space in them
469 - optimized summary file pages and saved a lot of unused space in them
470 - #239 option to manually mark repository as fork
470 - #239 option to manually mark repository as fork
471 - #320 mapping of commit authors to RhodeCode users
471 - #320 mapping of commit authors to RhodeCode users
472 - #304 hashes are displayed using monospace font
472 - #304 hashes are displayed using monospace font
473 - diff configuration, toggle white lines and context lines
473 - diff configuration, toggle white lines and context lines
474 - #307 configurable diffs, whitespace toggle, increasing context lines
474 - #307 configurable diffs, whitespace toggle, increasing context lines
475 - sorting on branches, tags and bookmarks using YUI datatable
475 - sorting on branches, tags and bookmarks using YUI datatable
@@ -477,17 +477,17 b' news'
477 - implements #330 api method for listing nodes ar particular revision
477 - implements #330 api method for listing nodes ar particular revision
478 - #73 added linking issues in commit messages to chosen issue tracker url
478 - #73 added linking issues in commit messages to chosen issue tracker url
479 based on user defined regular expression
479 based on user defined regular expression
480 - added linking of changesets in commit messages
480 - added linking of changesets in commit messages
481 - new compact changelog with expandable commit messages
481 - new compact changelog with expandable commit messages
482 - firstname and lastname are optional in user creation
482 - firstname and lastname are optional in user creation
483 - #348 added post-create repository hook
483 - #348 added post-create repository hook
484 - #212 global encoding settings is now configurable from .ini files
484 - #212 global encoding settings is now configurable from .ini files
485 - #227 added repository groups permissions
485 - #227 added repository groups permissions
486 - markdown gets codehilite extensions
486 - markdown gets codehilite extensions
487 - new API methods, delete_repositories, grante/revoke permissions for groups
487 - new API methods, delete_repositories, grante/revoke permissions for groups
488 and repos
488 and repos
489
489
490
490
491 fixes
491 fixes
492 +++++
492 +++++
493
493
@@ -495,15 +495,15 b' fixes'
495 - fixed sorting of repo tables
495 - fixed sorting of repo tables
496 - #326 escape of special html entities in diffs
496 - #326 escape of special html entities in diffs
497 - normalized user_name => username in api attributes
497 - normalized user_name => username in api attributes
498 - fixes #298 ldap created users with mixed case emails created conflicts
498 - fixes #298 ldap created users with mixed case emails created conflicts
499 on saving a form
499 on saving a form
500 - fixes issue when owner of a repo couldn't revoke permissions for users
500 - fixes issue when owner of a repo couldn't revoke permissions for users
501 and groups
501 and groups
502 - fixes #271 rare JSON serialization problem with statistics
502 - fixes #271 rare JSON serialization problem with statistics
503 - fixes #337 missing validation check for conflicting names of a group with a
503 - fixes #337 missing validation check for conflicting names of a group with a
504 repositories group
504 repositories group
505 - #340 fixed session problem for mysql and celery tasks
505 - #340 fixed session problem for mysql and celery tasks
506 - fixed #331 RhodeCode mangles repository names if the a repository group
506 - fixed #331 RhodeCode mangles repository names if the a repository group
507 contains the "full path" to the repositories
507 contains the "full path" to the repositories
508 - #355 RhodeCode doesn't store encrypted LDAP passwords
508 - #355 RhodeCode doesn't store encrypted LDAP passwords
509
509
@@ -524,7 +524,7 b' fixes'
524 operation leading to crash.
524 operation leading to crash.
525 - fixed missing email in account page.
525 - fixed missing email in account page.
526 - Reverted Mercurial to 2.0.1 for windows due to bug in Mercurial that makes
526 - Reverted Mercurial to 2.0.1 for windows due to bug in Mercurial that makes
527 forking on windows impossible
527 forking on windows impossible
528
528
529 1.2.4 (**2012-01-19**)
529 1.2.4 (**2012-01-19**)
530 ----------------------
530 ----------------------
@@ -536,23 +536,23 b' news'
536 full support to largefiles extension. Enabled by default in new installations
536 full support to largefiles extension. Enabled by default in new installations
537 - #329 Ability to Add/Remove Groups to/from a Repository via AP
537 - #329 Ability to Add/Remove Groups to/from a Repository via AP
538 - added requires.txt file with requirements
538 - added requires.txt file with requirements
539
539
540 fixes
540 fixes
541 +++++
541 +++++
542
542
543 - fixes db session issues with celery when emailing admins
543 - fixes db session issues with celery when emailing admins
544 - #331 RhodeCode mangles repository names if the a repository group
544 - #331 RhodeCode mangles repository names if the a repository group
545 contains the "full path" to the repositories
545 contains the "full path" to the repositories
546 - #298 Conflicting e-mail addresses for LDAP and RhodeCode users
546 - #298 Conflicting e-mail addresses for LDAP and RhodeCode users
547 - DB session cleanup after hg protocol operations, fixes issues with
547 - DB session cleanup after hg protocol operations, fixes issues with
548 `mysql has gone away` errors
548 `mysql has gone away` errors
549 - #333 doc fixes for get_repo api function
549 - #333 doc fixes for get_repo api function
550 - #271 rare JSON serialization problem with statistics enabled
550 - #271 rare JSON serialization problem with statistics enabled
551 - #337 Fixes issues with validation of repository name conflicting with
551 - #337 Fixes issues with validation of repository name conflicting with
552 a group name. A proper message is now displayed.
552 a group name. A proper message is now displayed.
553 - #292 made ldap_dn in user edit readonly, to get rid of confusion that field
553 - #292 made ldap_dn in user edit readonly, to get rid of confusion that field
554 doesn't work
554 doesn't work
555 - #316 fixes issues with web description in hgrc files
555 - #316 fixes issues with web description in hgrc files
556
556
557 1.2.3 (**2011-11-02**)
557 1.2.3 (**2011-11-02**)
558 ----------------------
558 ----------------------
@@ -561,20 +561,20 b' news'
561 ++++
561 ++++
562
562
563 - added option to manage repos group for non admin users
563 - added option to manage repos group for non admin users
564 - added following API methods for get_users, create_user, get_users_groups,
564 - added following API methods for get_users, create_user, get_users_groups,
565 get_users_group, create_users_group, add_user_to_users_groups, get_repos,
565 get_users_group, create_users_group, add_user_to_users_groups, get_repos,
566 get_repo, create_repo, add_user_to_repo
566 get_repo, create_repo, add_user_to_repo
567 - implements #237 added password confirmation for my account
567 - implements #237 added password confirmation for my account
568 and admin edit user.
568 and admin edit user.
569 - implements #291 email notification for global events are now sent to all
569 - implements #291 email notification for global events are now sent to all
570 administrator users, and global config email.
570 administrator users, and global config email.
571
571
572 fixes
572 fixes
573 +++++
573 +++++
574
574
575 - added option for passing auth method for smtp mailer
575 - added option for passing auth method for smtp mailer
576 - #276 issue with adding a single user with id>10 to usergroups
576 - #276 issue with adding a single user with id>10 to usergroups
577 - #277 fixes windows LDAP settings in which missing values breaks the ldap auth
577 - #277 fixes windows LDAP settings in which missing values breaks the ldap auth
578 - #288 fixes managing of repos in a group for non admin user
578 - #288 fixes managing of repos in a group for non admin user
579
579
580 1.2.2 (**2011-10-17**)
580 1.2.2 (**2011-10-17**)
@@ -584,17 +584,17 b' news'
584 ++++
584 ++++
585
585
586 - #226 repo groups are available by path instead of numerical id
586 - #226 repo groups are available by path instead of numerical id
587
587
588 fixes
588 fixes
589 +++++
589 +++++
590
590
591 - #259 Groups with the same name but with different parent group
591 - #259 Groups with the same name but with different parent group
592 - #260 Put repo in group, then move group to another group -> repo becomes unavailable
592 - #260 Put repo in group, then move group to another group -> repo becomes unavailable
593 - #258 RhodeCode 1.2 assumes egg folder is writable (lockfiles problems)
593 - #258 RhodeCode 1.2 assumes egg folder is writable (lockfiles problems)
594 - #265 ldap save fails sometimes on converting attributes to booleans,
594 - #265 ldap save fails sometimes on converting attributes to booleans,
595 added getter and setter into model that will prevent from this on db model level
595 added getter and setter into model that will prevent from this on db model level
596 - fixed problems with timestamps issues #251 and #213
596 - fixed problems with timestamps issues #251 and #213
597 - fixes #266 RhodeCode allows to create repo with the same name and in
597 - fixes #266 RhodeCode allows to create repo with the same name and in
598 the same parent as group
598 the same parent as group
599 - fixes #245 Rescan of the repositories on Windows
599 - fixes #245 Rescan of the repositories on Windows
600 - fixes #248 cannot edit repos inside a group on windows
600 - fixes #248 cannot edit repos inside a group on windows
@@ -610,7 +610,7 b' news'
610 fixes
610 fixes
611 +++++
611 +++++
612
612
613 - fixed problems with basic auth and push problems
613 - fixed problems with basic auth and push problems
614 - gui fixes
614 - gui fixes
615 - fixed logger
615 - fixed logger
616
616
@@ -628,12 +628,12 b' news'
628 - implemented #84 downloads can be enabled/disabled for each repository
628 - implemented #84 downloads can be enabled/disabled for each repository
629 - anonymous repository can be cloned without having to pass default:default
629 - anonymous repository can be cloned without having to pass default:default
630 into clone url
630 into clone url
631 - fixed #90 whoosh indexer can index chooses repositories passed in command
631 - fixed #90 whoosh indexer can index chooses repositories passed in command
632 line
632 line
633 - extended journal with day aggregates and paging
633 - extended journal with day aggregates and paging
634 - implemented #107 source code lines highlight ranges
634 - implemented #107 source code lines highlight ranges
635 - implemented #93 customizable changelog on combined revision ranges -
635 - implemented #93 customizable changelog on combined revision ranges -
636 equivalent of githubs compare view
636 equivalent of githubs compare view
637 - implemented #108 extended and more powerful LDAP configuration
637 - implemented #108 extended and more powerful LDAP configuration
638 - implemented #56 users groups
638 - implemented #56 users groups
639 - major code rewrites optimized codes for speed and memory usage
639 - major code rewrites optimized codes for speed and memory usage
@@ -642,16 +642,16 b' news'
642 - fixed many issues with international characters and unicode. It uses utf8
642 - fixed many issues with international characters and unicode. It uses utf8
643 decode with replace to provide less errors even with non utf8 encoded strings
643 decode with replace to provide less errors even with non utf8 encoded strings
644 - #125 added API KEY access to feeds
644 - #125 added API KEY access to feeds
645 - #109 Repository can be created from external Mercurial link (aka. remote
645 - #109 Repository can be created from external Mercurial link (aka. remote
646 repository, and manually updated (via pull) from admin panel
646 repository, and manually updated (via pull) from admin panel
647 - beta git support - push/pull server + basic view for git repos
647 - beta git support - push/pull server + basic view for git repos
648 - added followers page and forks page
648 - added followers page and forks page
649 - server side file creation (with binary file upload interface)
649 - server side file creation (with binary file upload interface)
650 and edition with commits powered by codemirror
650 and edition with commits powered by codemirror
651 - #111 file browser file finder, quick lookup files on whole file tree
651 - #111 file browser file finder, quick lookup files on whole file tree
652 - added quick login sliding menu into main page
652 - added quick login sliding menu into main page
653 - changelog uses lazy loading of affected files details, in some scenarios
653 - changelog uses lazy loading of affected files details, in some scenarios
654 this can improve speed of changelog page dramatically especially for
654 this can improve speed of changelog page dramatically especially for
655 larger repositories.
655 larger repositories.
656 - implements #214 added support for downloading subrepos in download menu.
656 - implements #214 added support for downloading subrepos in download menu.
657 - Added basic API for direct operations on rhodecode via JSON
657 - Added basic API for direct operations on rhodecode via JSON
@@ -660,7 +660,7 b' news'
660 fixes
660 fixes
661 +++++
661 +++++
662
662
663 - fixed file browser bug, when switching into given form revision the url was
663 - fixed file browser bug, when switching into given form revision the url was
664 not changing
664 not changing
665 - fixed propagation to error controller on simplehg and simplegit middlewares
665 - fixed propagation to error controller on simplehg and simplegit middlewares
666 - fixed error when trying to make a download on empty repository
666 - fixed error when trying to make a download on empty repository
@@ -669,8 +669,8 b' fixes'
669 - journal fork fixes
669 - journal fork fixes
670 - removed issue with space inside renamed repository after deletion
670 - removed issue with space inside renamed repository after deletion
671 - fixed strange issue on formencode imports
671 - fixed strange issue on formencode imports
672 - fixed #126 Deleting repository on Windows, rename used incompatible chars.
672 - fixed #126 Deleting repository on Windows, rename used incompatible chars.
673 - #150 fixes for errors on repositories mapped in db but corrupted in
673 - #150 fixes for errors on repositories mapped in db but corrupted in
674 filesystem
674 filesystem
675 - fixed problem with ascendant characters in realm #181
675 - fixed problem with ascendant characters in realm #181
676 - fixed problem with sqlite file based database connection pool
676 - fixed problem with sqlite file based database connection pool
@@ -680,12 +680,12 b' fixes'
680 - fixes issue #197 Relative paths for pidlocks
680 - fixes issue #197 Relative paths for pidlocks
681 - fixes issue #198 password will require only 3 chars now for login form
681 - fixes issue #198 password will require only 3 chars now for login form
682 - fixes issue #199 wrong redirection for non admin users after creating a repository
682 - fixes issue #199 wrong redirection for non admin users after creating a repository
683 - fixes issues #202, bad db constraint made impossible to attach same group
683 - fixes issues #202, bad db constraint made impossible to attach same group
684 more than one time. Affects only mysql/postgres
684 more than one time. Affects only mysql/postgres
685 - fixes #218 os.kill patch for windows was missing sig param
685 - fixes #218 os.kill patch for windows was missing sig param
686 - improved rendering of dag (they are not trimmed anymore when number of
686 - improved rendering of dag (they are not trimmed anymore when number of
687 heads exceeds 5)
687 heads exceeds 5)
688
688
689 1.1.8 (**2011-04-12**)
689 1.1.8 (**2011-04-12**)
690 ----------------------
690 ----------------------
691
691
@@ -712,7 +712,7 b' fixes'
712 - fixed problems with displaying binary files, thanks to Thomas Waldmann
712 - fixed problems with displaying binary files, thanks to Thomas Waldmann
713 - removed name from archive files since it's breaking ui for long repo names
713 - removed name from archive files since it's breaking ui for long repo names
714 - fixed issue with archive headers sent to browser, thanks to Thomas Waldmann
714 - fixed issue with archive headers sent to browser, thanks to Thomas Waldmann
715 - fixed compatibility for 1024px displays, and larger dpi settings, thanks to
715 - fixed compatibility for 1024px displays, and larger dpi settings, thanks to
716 Thomas Waldmann
716 Thomas Waldmann
717 - fixed issue #166 summary pager was skipping 10 revisions on second page
717 - fixed issue #166 summary pager was skipping 10 revisions on second page
718
718
@@ -756,8 +756,8 b' fixes'
756 - fixed sorting by author in main page
756 - fixed sorting by author in main page
757 - fixed crashes with diffs on binary files
757 - fixed crashes with diffs on binary files
758 - fixed #131 problem with boolean values for LDAP
758 - fixed #131 problem with boolean values for LDAP
759 - fixed #122 mysql problems thanks to striker69
759 - fixed #122 mysql problems thanks to striker69
760 - fixed problem with errors on calling raw/raw_files/annotate functions
760 - fixed problem with errors on calling raw/raw_files/annotate functions
761 with unknown revisions
761 with unknown revisions
762 - fixed returned rawfiles attachment names with international character
762 - fixed returned rawfiles attachment names with international character
763 - cleaned out docs, big thanks to Jason Harris
763 - cleaned out docs, big thanks to Jason Harris
@@ -774,7 +774,7 b' fixes'
774 - fixed formencode import problem on settings page, that caused server crash
774 - fixed formencode import problem on settings page, that caused server crash
775 when that page was accessed as first after server start
775 when that page was accessed as first after server start
776 - journal fixes
776 - journal fixes
777 - fixed option to access repository just by entering http://server/<repo_name>
777 - fixed option to access repository just by entering http://server/<repo_name>
778
778
779 1.1.3 (**2011-02-16**)
779 1.1.3 (**2011-02-16**)
780 ----------------------
780 ----------------------
@@ -789,11 +789,11 b' news'
789 fixes
789 fixes
790 +++++
790 +++++
791
791
792 - fixed ehlo command and non auth mail servers on smtp_lib. Thanks to
792 - fixed ehlo command and non auth mail servers on smtp_lib. Thanks to
793 apollo13 and Johan Walles
793 apollo13 and Johan Walles
794 - small fixes in journal
794 - small fixes in journal
795 - fixed problems with getting setting for celery from .ini files
795 - fixed problems with getting setting for celery from .ini files
796 - registration, password reset and login boxes share the same title as main
796 - registration, password reset and login boxes share the same title as main
797 application now
797 application now
798 - fixed #113: to high permissions to fork repository
798 - fixed #113: to high permissions to fork repository
799 - fixed problem with '[' chars in commit messages in journal
799 - fixed problem with '[' chars in commit messages in journal
@@ -814,11 +814,11 b' fixes'
814
814
815 - fixes #98 protection against float division of percentage stats
815 - fixes #98 protection against float division of percentage stats
816 - fixed graph bug
816 - fixed graph bug
817 - forced webhelpers version since it was making troubles during installation
817 - forced webhelpers version since it was making troubles during installation
818
818
819 1.1.1 (**2011-01-06**)
819 1.1.1 (**2011-01-06**)
820 ----------------------
820 ----------------------
821
821
822 news
822 news
823 ++++
823 ++++
824
824
@@ -842,10 +842,10 b' news'
842 ++++
842 ++++
843
843
844 - rewrite of internals for vcs >=0.1.10
844 - rewrite of internals for vcs >=0.1.10
845 - uses mercurial 1.7 with dotencode disabled for maintaining compatibility
845 - uses mercurial 1.7 with dotencode disabled for maintaining compatibility
846 with older clients
846 with older clients
847 - anonymous access, authentication via ldap
847 - anonymous access, authentication via ldap
848 - performance upgrade for cached repos list - each repository has its own
848 - performance upgrade for cached repos list - each repository has its own
849 cache that's invalidated when needed.
849 cache that's invalidated when needed.
850 - performance upgrades on repositories with large amount of commits (20K+)
850 - performance upgrades on repositories with large amount of commits (20K+)
851 - main page quick filter for filtering repositories
851 - main page quick filter for filtering repositories
@@ -855,7 +855,7 b' news'
855 - more detailed action logger (based on hooks) with pushed changesets lists
855 - more detailed action logger (based on hooks) with pushed changesets lists
856 and options to disable those hooks from admin panel
856 and options to disable those hooks from admin panel
857 - introduced new enhanced changelog for merges that shows more accurate results
857 - introduced new enhanced changelog for merges that shows more accurate results
858 - new improved and faster code stats (based on pygments lexers mapping tables,
858 - new improved and faster code stats (based on pygments lexers mapping tables,
859 showing up to 10 trending sources for each repository. Additionally stats
859 showing up to 10 trending sources for each repository. Additionally stats
860 can be disabled in repository settings.
860 can be disabled in repository settings.
861 - gui optimizations, fixed application width to 1024px
861 - gui optimizations, fixed application width to 1024px
@@ -876,10 +876,10 b' fixes'
876 - a lot of fixes and tweaks for file browser
876 - a lot of fixes and tweaks for file browser
877 - fixed detached session issues
877 - fixed detached session issues
878 - fixed when user had no repos he would see all repos listed in my account
878 - fixed when user had no repos he would see all repos listed in my account
879 - fixed ui() instance bug when global hgrc settings was loaded for server
879 - fixed ui() instance bug when global hgrc settings was loaded for server
880 instance and all hgrc options were merged with our db ui() object
880 instance and all hgrc options were merged with our db ui() object
881 - numerous small bugfixes
881 - numerous small bugfixes
882
882
883 (special thanks for TkSoh for detailed feedback)
883 (special thanks for TkSoh for detailed feedback)
884
884
885
885
@@ -944,6 +944,6 b' 1.0.0rc3 (**2010-10-11**)'
944 1.0.0rc2 (**2010-10-11**)
944 1.0.0rc2 (**2010-10-11**)
945 -------------------------
945 -------------------------
946
946
947 - Disabled dirsize in file browser, it's causing nasty bug when dir renames
947 - Disabled dirsize in file browser, it's causing nasty bug when dir renames
948 occure. After vcs is fixed it'll be put back again.
948 occure. After vcs is fixed it'll be put back again.
949 - templating/css rewrites, optimized css.
949 - templating/css rewrites, optimized css.
@@ -10,9 +10,9 b' greatly appreciated!'
10 Could I request that you make your source contributions by first forking the
10 Could I request that you make your source contributions by first forking the
11 RhodeCode repository on bitbucket_
11 RhodeCode repository on bitbucket_
12 https://bitbucket.org/marcinkuzminski/rhodecode and then make your changes to
12 https://bitbucket.org/marcinkuzminski/rhodecode and then make your changes to
13 your forked repository. Please post all fixes into **BETA** branch since your
13 your forked repository. Please post all fixes into **BETA** branch since your
14 fix might be already fixed there and i try to merge all fixes from beta into
14 fix might be already fixed there and i try to merge all fixes from beta into
15 stable, and not the other way. Finally, when you are finished making a change,
15 stable, and not the other way. Finally, when you are finished making a change,
16 please send me a pull request.
16 please send me a pull request.
17
17
18 To run RhodeCode in a development version you always need to install the latest
18 To run RhodeCode in a development version you always need to install the latest
@@ -22,7 +22,7 b' after downloading/pulling RhodeCode make'
22
22
23 python setup.py develop
23 python setup.py develop
24
24
25 command to install/verify all required packages, and prepare development
25 command to install/verify all required packages, and prepare development
26 enviroment.
26 enviroment.
27
27
28
28
@@ -13,7 +13,7 b' Users Guide'
13 installation
13 installation
14 setup
14 setup
15 upgrade
15 upgrade
16
16
17 **Usage**
17 **Usage**
18
18
19 .. toctree::
19 .. toctree::
@@ -33,7 +33,7 b' Users Guide'
33
33
34 .. toctree::
34 .. toctree::
35 :maxdepth: 1
35 :maxdepth: 1
36
36
37 contributing
37 contributing
38 changelog
38 changelog
39
39
@@ -44,7 +44,7 b' Users Guide'
44
44
45 api/api
45 api/api
46 api/models
46 api/models
47
47
48
48
49 Other topics
49 Other topics
50 ------------
50 ------------
@@ -61,4 +61,4 b' Other topics'
61 .. _git: http://git-scm.com/
61 .. _git: http://git-scm.com/
62 .. _celery: http://celeryproject.org/
62 .. _celery: http://celeryproject.org/
63 .. _Sphinx: http://sphinx.pocoo.org/
63 .. _Sphinx: http://sphinx.pocoo.org/
64 .. _vcs: http://pypi.python.org/pypi/vcs No newline at end of file
64 .. _vcs: http://pypi.python.org/pypi/vcs
@@ -4,8 +4,8 b''
4 Installation
4 Installation
5 ============
5 ============
6
6
7 ``RhodeCode`` is written entirely in Python. Before posting any issues make
7 ``RhodeCode`` is written entirely in Python. Before posting any issues make
8 sure, your not missing any system libraries and using right version of
8 sure, your not missing any system libraries and using right version of
9 libraries required by RhodeCode. There's also restriction in terms of mercurial
9 libraries required by RhodeCode. There's also restriction in terms of mercurial
10 clients. Minimal version of hg client known working fine with RhodeCode is
10 clients. Minimal version of hg client known working fine with RhodeCode is
11 **1.6**. If you're using older client, please upgrade.
11 **1.6**. If you're using older client, please upgrade.
@@ -41,14 +41,14 b' Step by step installation example for Li'
41
41
42 For installing RhodeCode i highly recommend using separate virtualenv_. This
42 For installing RhodeCode i highly recommend using separate virtualenv_. This
43 way many required by RhodeCode libraries will remain sandboxed from your main
43 way many required by RhodeCode libraries will remain sandboxed from your main
44 python and making things less problematic when doing system python updates.
44 python and making things less problematic when doing system python updates.
45
45
46 Alternative very detailed installation instructions for Ubuntu Server with
46 Alternative very detailed installation instructions for Ubuntu Server with
47 celery, indexer and daemon scripts: https://gist.github.com/4546398
47 celery, indexer and daemon scripts: https://gist.github.com/4546398
48
48
49
49
50 - Assuming you have installed virtualenv_ create a new virtual environment
50 - Assuming you have installed virtualenv_ create a new virtual environment
51 using virtualenv command::
51 using virtualenv command::
52
52
53 virtualenv --no-site-packages /opt/rhodecode-venv
53 virtualenv --no-site-packages /opt/rhodecode-venv
54
54
@@ -63,7 +63,7 b' celery, indexer and daemon scripts: http'
63 Python's "main" site-packages dir.
63 Python's "main" site-packages dir.
64
64
65
65
66 - this will install new virtualenv_ into `/opt/rhodecode-venv`.
66 - this will install new virtualenv_ into `/opt/rhodecode-venv`.
67 - Activate the virtualenv_ by running::
67 - Activate the virtualenv_ by running::
68
68
69 source /opt/rhodecode-venv/bin/activate
69 source /opt/rhodecode-venv/bin/activate
@@ -71,52 +71,52 b' celery, indexer and daemon scripts: http'
71 .. note:: If you're using UNIX, *do not* use ``sudo`` to run the
71 .. note:: If you're using UNIX, *do not* use ``sudo`` to run the
72 ``virtualenv`` script. It's perfectly acceptable (and desirable)
72 ``virtualenv`` script. It's perfectly acceptable (and desirable)
73 to create a virtualenv as a normal user.
73 to create a virtualenv as a normal user.
74
74
75 - Make a folder for rhodecode data files, and configuration somewhere on the
75 - Make a folder for rhodecode data files, and configuration somewhere on the
76 filesystem. For example::
76 filesystem. For example::
77
77
78 mkdir /opt/rhodecode
78 mkdir /opt/rhodecode
79
79
80
80
81 - Go into the created directory run this command to install rhodecode::
81 - Go into the created directory run this command to install rhodecode::
82
82
83 easy_install rhodecode
83 easy_install rhodecode
84
84
85 or::
85 or::
86
87 pip install rhodecode
88
86
89 - This will install rhodecode together with pylons and all other required
87 pip install rhodecode
88
89 - This will install rhodecode together with pylons and all other required
90 python libraries into activated virtualenv
90 python libraries into activated virtualenv
91
91
92 Requirements for Celery (optional)
92 Requirements for Celery (optional)
93 ----------------------------------
93 ----------------------------------
94
94
95 In order to gain maximum performance
95 In order to gain maximum performance
96 there are some third-party you must install. When RhodeCode is used
96 there are some third-party you must install. When RhodeCode is used
97 together with celery you have to install some kind of message broker,
97 together with celery you have to install some kind of message broker,
98 recommended one is rabbitmq_ to make the async tasks work.
98 recommended one is rabbitmq_ to make the async tasks work.
99
99
100 Of course RhodeCode works in sync mode also and then you do not have to install
100 Of course RhodeCode works in sync mode also and then you do not have to install
101 any third party applications. However, using Celery_ will give you a large
101 any third party applications. However, using Celery_ will give you a large
102 speed improvement when using many big repositories. If you plan to use
102 speed improvement when using many big repositories. If you plan to use
103 RhodeCode for say 7 to 10 repositories, RhodeCode will perform perfectly well
103 RhodeCode for say 7 to 10 repositories, RhodeCode will perform perfectly well
104 without celery running.
104 without celery running.
105
105
106 If you make the decision to run RhodeCode with celery make sure you run
106 If you make the decision to run RhodeCode with celery make sure you run
107 celeryd using paster and message broker together with the application.
107 celeryd using paster and message broker together with the application.
108
108
109 .. note::
109 .. note::
110 Installing message broker and using celery is optional, RhodeCode will
110 Installing message broker and using celery is optional, RhodeCode will
111 work perfectly fine without them.
111 work perfectly fine without them.
112
112
113
113
114 **Message Broker**
114 **Message Broker**
115
115
116 - preferred is `RabbitMq <http://www.rabbitmq.com/>`_
116 - preferred is `RabbitMq <http://www.rabbitmq.com/>`_
117 - A possible alternative is `Redis <http://code.google.com/p/redis/>`_
117 - A possible alternative is `Redis <http://code.google.com/p/redis/>`_
118
118
119 For installation instructions you can visit:
119 For installation instructions you can visit:
120 http://ask.github.com/celery/getting-started/index.html.
120 http://ask.github.com/celery/getting-started/index.html.
121 This is a very nice tutorial on how to start using celery_ with rabbitmq_
121 This is a very nice tutorial on how to start using celery_ with rabbitmq_
122
122
@@ -126,7 +126,7 b' You can now proceed to :ref:`setup`'
126
126
127
127
128
128
129 .. _virtualenv: http://pypi.python.org/pypi/virtualenv
129 .. _virtualenv: http://pypi.python.org/pypi/virtualenv
130 .. _python: http://www.python.org/
130 .. _python: http://www.python.org/
131 .. _mercurial: http://mercurial.selenic.com/
131 .. _mercurial: http://mercurial.selenic.com/
132 .. _celery: http://celeryproject.org/
132 .. _celery: http://celeryproject.org/
@@ -5,13 +5,13 b' Step by step Installation for Windows'
5 =====================================
5 =====================================
6
6
7
7
8 RhodeCode step-by-step install Guide for Windows
8 RhodeCode step-by-step install Guide for Windows
9
9
10 Target OS: Windows XP SP3 32bit English (Clean installation)
10 Target OS: Windows XP SP3 32bit English (Clean installation)
11 + All Windows Updates until 24-may-2012
11 + All Windows Updates until 24-may-2012
12
12
13 .. note::
13 .. note::
14
14
15 This installation is for 32bit systems, for 64bit windows you might need
15 This installation is for 32bit systems, for 64bit windows you might need
16 to download proper 64bit version of "Windows Installer" and Win32py
16 to download proper 64bit version of "Windows Installer" and Win32py
17 extensions
17 extensions
@@ -19,140 +19,140 b' Target OS: Windows XP SP3 32bit English '
19 Step1 - Install Visual Studio 2008 Express
19 Step1 - Install Visual Studio 2008 Express
20 ------------------------------------------
20 ------------------------------------------
21
21
22
22
23 Optional: You can also install MingW, but VS2008 installation is easier
23 Optional: You can also install MingW, but VS2008 installation is easier
24
24
25 Download "Visual C++ 2008 Express Edition with SP1" from:
25 Download "Visual C++ 2008 Express Edition with SP1" from:
26 http://www.microsoft.com/visualstudio/en-us/products/2008-editions/express
26 http://www.microsoft.com/visualstudio/en-us/products/2008-editions/express
27 (if not found or relocated, google for "visual studio 2008 express" for
27 (if not found or relocated, google for "visual studio 2008 express" for
28 updated link)
28 updated link)
29
29
30 You can also download full ISO file for offline installation, just
30 You can also download full ISO file for offline installation, just
31 choose "All - Offline Install ISO image file" in the previous page and
31 choose "All - Offline Install ISO image file" in the previous page and
32 choose "Visual C++ 2008 Express" when installing.
32 choose "Visual C++ 2008 Express" when installing.
33
33
34
34
35 .. note::
35 .. note::
36
36
37 Silverlight Runtime and SQL Server 2008 Express Edition are not
37 Silverlight Runtime and SQL Server 2008 Express Edition are not
38 required, you can uncheck them
38 required, you can uncheck them
39
39
40
40
41 Step2 - Install Python
41 Step2 - Install Python
42 ----------------------
42 ----------------------
43
43
44 Install Python 2.x.y (x >= 5) x86 version (32bit). DO NOT USE A 3.x version.
44 Install Python 2.x.y (x >= 5) x86 version (32bit). DO NOT USE A 3.x version.
45 Download Python 2.x.y from:
45 Download Python 2.x.y from:
46 http://www.python.org/download/
46 http://www.python.org/download/
47
47
48 Choose "Windows Installer" (32bit version) not "Windows X86-64
48 Choose "Windows Installer" (32bit version) not "Windows X86-64
49 Installer". While writing this guide, the latest version was v2.7.3.
49 Installer". While writing this guide, the latest version was v2.7.3.
50 Remember the specific major and minor version installed, because it will
50 Remember the specific major and minor version installed, because it will
51 be needed in the next step. In this case, it is "2.7".
51 be needed in the next step. In this case, it is "2.7".
52
52
53
53
54 Step3 - Install Win32py extensions
54 Step3 - Install Win32py extensions
55 ----------------------------------
55 ----------------------------------
56
56
57 Download pywin32 from:
57 Download pywin32 from:
58 http://sourceforge.net/projects/pywin32/files/
58 http://sourceforge.net/projects/pywin32/files/
59
59
60 - Click on "pywin32" folder
60 - Click on "pywin32" folder
61 - Click on the first folder (in this case, Build 217, maybe newer when you try)
61 - Click on the first folder (in this case, Build 217, maybe newer when you try)
62 - Choose the file ending with ".win32-py2.x.exe" -> x being the minor
62 - Choose the file ending with ".win32-py2.x.exe" -> x being the minor
63 version of Python you installed (in this case, 7)
63 version of Python you installed (in this case, 7)
64 When writing this guide, the file was:
64 When writing this guide, the file was:
65 http://sourceforge.net/projects/pywin32/files/pywin32/Build%20217/pywin32-217.win32-py2.7.exe/download
65 http://sourceforge.net/projects/pywin32/files/pywin32/Build%20217/pywin32-217.win32-py2.7.exe/download
66
66
67
67
68 Step4 - Python BIN
68 Step4 - Python BIN
69 ------------------
69 ------------------
70
70
71 Add Python BIN folder to the path
71 Add Python BIN folder to the path
72
72
73 You have to add the Python folder to the path, you can do it manually
73 You have to add the Python folder to the path, you can do it manually
74 (editing "PATH" environment variable) or using Windows Support Tools
74 (editing "PATH" environment variable) or using Windows Support Tools
75 that came preinstalled in Vista/7 and can be installed in Windows XP.
75 that came preinstalled in Vista/7 and can be installed in Windows XP.
76
76
77 - Using support tools on WINDOWS XP:
77 - Using support tools on WINDOWS XP:
78 If you use Windows XP you can install them using Windows XP CD and
78 If you use Windows XP you can install them using Windows XP CD and
79 navigating to \SUPPORT\TOOLS. There, execute Setup.EXE (not MSI).
79 navigating to \SUPPORT\TOOLS. There, execute Setup.EXE (not MSI).
80 Afterwards, open a CMD and type::
80 Afterwards, open a CMD and type::
81
81
82 SETX PATH "%PATH%;[your-python-path]" -M
82 SETX PATH "%PATH%;[your-python-path]" -M
83
83
84 Close CMD (the path variable will be updated then)
84 Close CMD (the path variable will be updated then)
85
85
86 - Using support tools on WINDOWS Vista/7:
86 - Using support tools on WINDOWS Vista/7:
87
87
88 Open a CMD and type::
88 Open a CMD and type::
89
89
90 SETX PATH "%PATH%;[your-python-path]" /M
90 SETX PATH "%PATH%;[your-python-path]" /M
91
91
92 Please substitute [your-python-path] with your Python installation path.
92 Please substitute [your-python-path] with your Python installation path.
93 Typically: C:\\Python27
93 Typically: C:\\Python27
94
94
95
95
96 Step5 - RhodeCode folder structure
96 Step5 - RhodeCode folder structure
97 ----------------------------------
97 ----------------------------------
98
98
99 Create a RhodeCode folder structure
99 Create a RhodeCode folder structure
100
100
101 This is only a example to install RhodeCode, you can of course change
101 This is only a example to install RhodeCode, you can of course change
102 it. However, this guide will follow the proposed structure, so please
102 it. However, this guide will follow the proposed structure, so please
103 later adapt the paths if you change them. My recommendation is to use
103 later adapt the paths if you change them. My recommendation is to use
104 folders with NO SPACES. But you can try if you are brave...
104 folders with NO SPACES. But you can try if you are brave...
105
105
106 Create the following folder structure::
106 Create the following folder structure::
107
107
108 C:\RhodeCode
108 C:\RhodeCode
109 C:\RhodeCode\Bin
109 C:\RhodeCode\Bin
110 C:\RhodeCode\Env
110 C:\RhodeCode\Env
111 C:\RhodeCode\Repos
111 C:\RhodeCode\Repos
112
112
113
113
114 Step6 - Install virtualenv
114 Step6 - Install virtualenv
115 ---------------------------
115 ---------------------------
116
116
117 Install Virtual Env for Python
117 Install Virtual Env for Python
118
118
119 Navigate to: http://www.virtualenv.org/en/latest/index.html#installation
119 Navigate to: http://www.virtualenv.org/en/latest/index.html#installation
120 Right click on "virtualenv.py" file and choose "Save link as...".
120 Right click on "virtualenv.py" file and choose "Save link as...".
121 Download to C:\\RhodeCode (or whatever you want)
121 Download to C:\\RhodeCode (or whatever you want)
122 (the file is located at
122 (the file is located at
123 https://raw.github.com/pypa/virtualenv/master/virtualenv.py)
123 https://raw.github.com/pypa/virtualenv/master/virtualenv.py)
124
124
125 Create a virtual Python environment in C:\\RhodeCode\\Env (or similar). To
125 Create a virtual Python environment in C:\\RhodeCode\\Env (or similar). To
126 do so, open a CMD (Python Path should be included in Step3), navigate
126 do so, open a CMD (Python Path should be included in Step3), navigate
127 where you downloaded "virtualenv.py", and write::
127 where you downloaded "virtualenv.py", and write::
128
128
129 python virtualenv.py C:\RhodeCode\Env
129 python virtualenv.py C:\RhodeCode\Env
130
130
131 (--no-site-packages is now the default behaviour of virtualenv, no need
131 (--no-site-packages is now the default behaviour of virtualenv, no need
132 to include it)
132 to include it)
133
133
134
134
135 Step7 - Install RhodeCode
135 Step7 - Install RhodeCode
136 -------------------------
136 -------------------------
137
137
138 Finally, install RhodeCode
138 Finally, install RhodeCode
139
139
140 Close previously opened command prompt/s, and open a Visual Studio 2008
140 Close previously opened command prompt/s, and open a Visual Studio 2008
141 Command Prompt (**IMPORTANT!!**). To do so, go to Start Menu, and then open
141 Command Prompt (**IMPORTANT!!**). To do so, go to Start Menu, and then open
142 "Microsoft Visual C++ 2008 Express Edition" -> "Visual Studio Tools" ->
142 "Microsoft Visual C++ 2008 Express Edition" -> "Visual Studio Tools" ->
143 "Visual Studio 2008 Command Prompt"
143 "Visual Studio 2008 Command Prompt"
144
144
145 In that CMD (loaded with VS2008 PATHs) type::
145 In that CMD (loaded with VS2008 PATHs) type::
146
146
147 cd C:\RhodeCode\Env\Scripts (or similar)
147 cd C:\RhodeCode\Env\Scripts (or similar)
148 activate
148 activate
149
149
150 The prompt will change into "(Env) C:\\RhodeCode\\Env\\Scripts" or similar
150 The prompt will change into "(Env) C:\\RhodeCode\\Env\\Scripts" or similar
151 (depending of your folder structure). Then type::
151 (depending of your folder structure). Then type::
152
152
153 pip install rhodecode
153 pip install rhodecode
154
154
155 (long step, please wait until fully complete)
155 (long step, please wait until fully complete)
156
156
157 Some warnings will appear, don't worry as they are normal.
157 Some warnings will appear, don't worry as they are normal.
158
158
@@ -161,90 +161,90 b' Step8 - Configuring RhodeCode'
161 -----------------------------
161 -----------------------------
162
162
163
163
164 steps taken from http://packages.python.org/RhodeCode/setup.html
164 steps taken from http://packages.python.org/RhodeCode/setup.html
165
165
166 You have to use the same Visual Studio 2008 command prompt as Step7, so
166 You have to use the same Visual Studio 2008 command prompt as Step7, so
167 if you closed it reopen it following the same commands (including the
167 if you closed it reopen it following the same commands (including the
168 "activate" one). When ready, just type::
168 "activate" one). When ready, just type::
169
169
170 cd C:\RhodeCode\Bin
170 cd C:\RhodeCode\Bin
171 paster make-config RhodeCode production.ini
171 paster make-config RhodeCode production.ini
172
172
173 Then, you must edit production.ini to fit your needs (ip address, ip
173 Then, you must edit production.ini to fit your needs (ip address, ip
174 port, mail settings, database, whatever). I recommend using NotePad++
174 port, mail settings, database, whatever). I recommend using NotePad++
175 (free) or similar text editor, as it handles well the EndOfLine
175 (free) or similar text editor, as it handles well the EndOfLine
176 character differences between Unix and Windows
176 character differences between Unix and Windows
177 (http://notepad-plus-plus.org/)
177 (http://notepad-plus-plus.org/)
178
178
179 For the sake of simplicity lets run it with the default settings. After
179 For the sake of simplicity lets run it with the default settings. After
180 your edits (if any), in the previous Command Prompt, type::
180 your edits (if any), in the previous Command Prompt, type::
181
182 paster setup-rhodecode production.ini
183
181
184 (this time a NEW database will be installed, you must follow a different
182 paster setup-rhodecode production.ini
185 step to later UPGRADE to a newer RhodeCode version)
183
184 (this time a NEW database will be installed, you must follow a different
185 step to later UPGRADE to a newer RhodeCode version)
186
186
187 The script will ask you for confirmation about creating a NEW database,
187 The script will ask you for confirmation about creating a NEW database,
188 answer yes (y)
188 answer yes (y)
189 The script will ask you for repository path, answer C:\\RhodeCode\\Repos
189 The script will ask you for repository path, answer C:\\RhodeCode\\Repos
190 (or similar)
190 (or similar)
191 The script will ask you for admin username and password, answer "admin"
191 The script will ask you for admin username and password, answer "admin"
192 + "123456" (or whatever you want)
192 + "123456" (or whatever you want)
193 The script will ask you for admin mail, answer "admin@xxxx.com" (or
193 The script will ask you for admin mail, answer "admin@xxxx.com" (or
194 whatever you want)
194 whatever you want)
195
195
196 If you make some mistake and the script does not end, don't worry, start
196 If you make some mistake and the script does not end, don't worry, start
197 it again.
197 it again.
198
198
199
199
200 Step9 - Running RhodeCode
200 Step9 - Running RhodeCode
201 -------------------------
201 -------------------------
202
202
203
203
204 In the previous command prompt, being in the C:\\RhodeCode\\Bin folder,
204 In the previous command prompt, being in the C:\\RhodeCode\\Bin folder,
205 just type::
205 just type::
206
206
207 paster serve production.ini
207 paster serve production.ini
208
208
209 Open yout web server, and go to http://127.0.0.1:5000
209 Open yout web server, and go to http://127.0.0.1:5000
210
210
211 It works!! :-)
211 It works!! :-)
212
212
213 Remark:
213 Remark:
214 If it does not work first time, just Ctrl-C the CMD process and start it
214 If it does not work first time, just Ctrl-C the CMD process and start it
215 again. Don't forget the "http://" in Internet Explorer
215 again. Don't forget the "http://" in Internet Explorer
216
216
217
217
218
218
219 What this Guide does not cover:
219 What this Guide does not cover:
220
220
221 - Installing Celery
221 - Installing Celery
222 - Running RhodeCode as Windows Service. You can investigate here:
222 - Running RhodeCode as Windows Service. You can investigate here:
223
223
224 - http://pypi.python.org/pypi/wsgisvc
224 - http://pypi.python.org/pypi/wsgisvc
225 - http://ryrobes.com/python/running-python-scripts-as-a-windows-service/
225 - http://ryrobes.com/python/running-python-scripts-as-a-windows-service/
226 - http://wiki.pylonshq.com/display/pylonscookbook/How+to+run+Pylons+as+a+Windows+service
226 - http://wiki.pylonshq.com/display/pylonscookbook/How+to+run+Pylons+as+a+Windows+service
227
227
228 - Using Apache. You can investigate here:
228 - Using Apache. You can investigate here:
229
229
230 - https://groups.google.com/group/rhodecode/msg/c433074e813ffdc4
230 - https://groups.google.com/group/rhodecode/msg/c433074e813ffdc4
231
231
232
232
233 Upgrading
233 Upgrading
234 =========
234 =========
235
235
236 Stop running RhodeCode
236 Stop running RhodeCode
237 Open a CommandPrompt like in Step7 (VS2008 path + activate) and type::
237 Open a CommandPrompt like in Step7 (VS2008 path + activate) and type::
238
238
239 easy_install -U rhodecode
239 easy_install -U rhodecode
240 cd \RhodeCode\Bin
240 cd \RhodeCode\Bin
241
241
242 { backup your production.ini file now} ::
242 { backup your production.ini file now} ::
243
243
244 paster make-config RhodeCode production.ini
244 paster make-config RhodeCode production.ini
245
245
246 (check changes and update your production.ini accordingly) ::
246 (check changes and update your production.ini accordingly) ::
247
247
248 paster upgrade-db production.ini (update database)
248 paster upgrade-db production.ini (update database)
249
249
250 Full steps in http://packages.python.org/RhodeCode/upgrade.html No newline at end of file
250 Full steps in http://packages.python.org/RhodeCode/upgrade.html
@@ -8,14 +8,14 b' Setup'
8 Setting up RhodeCode
8 Setting up RhodeCode
9 --------------------
9 --------------------
10
10
11 First, you will need to create a RhodeCode configuration file. Run the
11 First, you will need to create a RhodeCode configuration file. Run the
12 following command to do this::
12 following command to do this::
13
13
14 paster make-config RhodeCode production.ini
14 paster make-config RhodeCode production.ini
15
15
16 - This will create the file `production.ini` in the current directory. This
16 - This will create the file `production.ini` in the current directory. This
17 configuration file contains the various settings for RhodeCode, e.g proxy
17 configuration file contains the various settings for RhodeCode, e.g proxy
18 port, email settings, usage of static files, cache, celery settings and
18 port, email settings, usage of static files, cache, celery settings and
19 logging.
19 logging.
20
20
21
21
@@ -30,36 +30,36 b' the following command::'
30
30
31 This will prompt you for a "root" path. This "root" path is the location where
31 This will prompt you for a "root" path. This "root" path is the location where
32 RhodeCode will store all of its repositories on the current machine. After
32 RhodeCode will store all of its repositories on the current machine. After
33 entering this "root" path ``setup-rhodecode`` will also prompt you for a username
33 entering this "root" path ``setup-rhodecode`` will also prompt you for a username
34 and password for the initial admin account which ``setup-rhodecode`` sets
34 and password for the initial admin account which ``setup-rhodecode`` sets
35 up for you.
35 up for you.
36
36
37 setup process can be fully automated, example for lazy::
37 setup process can be fully automated, example for lazy::
38
38
39 paster setup-rhodecode production.ini --user=marcink --password=secret --email=marcin@rhodecode.org --repos=/home/marcink/my_repos
39 paster setup-rhodecode production.ini --user=marcink --password=secret --email=marcin@rhodecode.org --repos=/home/marcink/my_repos
40
40
41
41
42 - The ``setup-rhodecode`` command will create all of the needed tables and an
42 - The ``setup-rhodecode`` command will create all of the needed tables and an
43 admin account. When choosing a root path you can either use a new empty
43 admin account. When choosing a root path you can either use a new empty
44 location, or a location which already contains existing repositories. If you
44 location, or a location which already contains existing repositories. If you
45 choose a location which contains existing repositories RhodeCode will simply
45 choose a location which contains existing repositories RhodeCode will simply
46 add all of the repositories at the chosen location to it's database.
46 add all of the repositories at the chosen location to it's database.
47 (Note: make sure you specify the correct path to the root).
47 (Note: make sure you specify the correct path to the root).
48 - Note: the given path for mercurial_ repositories **must** be write accessible
48 - Note: the given path for mercurial_ repositories **must** be write accessible
49 for the application. It's very important since the RhodeCode web interface
49 for the application. It's very important since the RhodeCode web interface
50 will work without write access, but when trying to do a push it will
50 will work without write access, but when trying to do a push it will
51 eventually fail with permission denied errors unless it has write access.
51 eventually fail with permission denied errors unless it has write access.
52
52
53 You are now ready to use RhodeCode, to run it simply execute::
53 You are now ready to use RhodeCode, to run it simply execute::
54
54
55 paster serve production.ini
55 paster serve production.ini
56
56
57 - This command runs the RhodeCode server. The web app should be available at the
57 - This command runs the RhodeCode server. The web app should be available at the
58 127.0.0.1:5000. This ip and port is configurable via the production.ini
58 127.0.0.1:5000. This ip and port is configurable via the production.ini
59 file created in previous step
59 file created in previous step
60 - Use the admin account you created above when running ``setup-rhodecode``
60 - Use the admin account you created above when running ``setup-rhodecode``
61 to login to the web app.
61 to login to the web app.
62 - The default permissions on each repository is read, and the owner is admin.
62 - The default permissions on each repository is read, and the owner is admin.
63 Remember to update these if needed.
63 Remember to update these if needed.
64 - In the admin panel you can toggle ldap, anonymous, permissions settings. As
64 - In the admin panel you can toggle ldap, anonymous, permissions settings. As
65 well as edit more advanced options on users and repositories
65 well as edit more advanced options on users and repositories
@@ -70,10 +70,10 b' functionality. To do this simply execute'
70 paster make-rcext production.ini
70 paster make-rcext production.ini
71
71
72 This will create `rcextensions` package in the same place that your `ini` file
72 This will create `rcextensions` package in the same place that your `ini` file
73 lives. With `rcextensions` it's possible to add additional mapping for whoosh,
73 lives. With `rcextensions` it's possible to add additional mapping for whoosh,
74 stats and add additional code into the push/pull/create/delete repo hooks.
74 stats and add additional code into the push/pull/create/delete repo hooks.
75 For example for sending signals to build-bots such as jenkins.
75 For example for sending signals to build-bots such as jenkins.
76 Please see the `__init__.py` file inside `rcextensions` package
76 Please see the `__init__.py` file inside `rcextensions` package
77 for more details.
77 for more details.
78
78
79
79
@@ -86,11 +86,11 b' parallel with RhodeCode. (Repository acc'
86 the box" feature of mercurial_ and you can use this to access any of the
86 the box" feature of mercurial_ and you can use this to access any of the
87 repositories that RhodeCode is hosting. See PublishingRepositories_)
87 repositories that RhodeCode is hosting. See PublishingRepositories_)
88
88
89 RhodeCode repository structures are kept in directories with the same name
89 RhodeCode repository structures are kept in directories with the same name
90 as the project. When using repository groups, each group is a subdirectory.
90 as the project. When using repository groups, each group is a subdirectory.
91 This allows you to easily use ssh for accessing repositories.
91 This allows you to easily use ssh for accessing repositories.
92
92
93 In order to use ssh you need to make sure that your web-server and the users
93 In order to use ssh you need to make sure that your web-server and the users
94 login accounts have the correct permissions set on the appropriate directories.
94 login accounts have the correct permissions set on the appropriate directories.
95 (Note that these permissions are independent of any permissions you have set up
95 (Note that these permissions are independent of any permissions you have set up
96 using the RhodeCode web interface.)
96 using the RhodeCode web interface.)
@@ -108,17 +108,17 b' Note: In an advanced setup, in order for'
108 permissions as set up via the RhodeCode web interface, you can create an
108 permissions as set up via the RhodeCode web interface, you can create an
109 authentication hook to connect to the rhodecode db and runs check functions for
109 authentication hook to connect to the rhodecode db and runs check functions for
110 permissions against that.
110 permissions against that.
111
111
112 Setting up Whoosh full text search
112 Setting up Whoosh full text search
113 ----------------------------------
113 ----------------------------------
114
114
115 Starting from version 1.1 the whoosh index can be build by using the paster
115 Starting from version 1.1 the whoosh index can be build by using the paster
116 command ``make-index``. To use ``make-index`` you must specify the configuration
116 command ``make-index``. To use ``make-index`` you must specify the configuration
117 file that stores the location of the index. You may specify the location of the
117 file that stores the location of the index. You may specify the location of the
118 repositories (`--repo-location`). If not specified, this value is retrieved
118 repositories (`--repo-location`). If not specified, this value is retrieved
119 from the RhodeCode database. This was required prior to 1.2. Starting from
119 from the RhodeCode database. This was required prior to 1.2. Starting from
120 version 1.2 it is also possible to specify a comma separated list of
120 version 1.2 it is also possible to specify a comma separated list of
121 repositories (`--index-only`) to build index only on chooses repositories
121 repositories (`--index-only`) to build index only on chooses repositories
122 skipping any other found in repos location
122 skipping any other found in repos location
123
123
124 You may optionally pass the option `-f` to enable a full index rebuild. Without
124 You may optionally pass the option `-f` to enable a full index rebuild. Without
@@ -126,24 +126,24 b' the `-f` option, indexing will run alway'
126
126
127 For an incremental index build use::
127 For an incremental index build use::
128
128
129 paster make-index production.ini
129 paster make-index production.ini
130
130
131 For a full index rebuild use::
131 For a full index rebuild use::
132
132
133 paster make-index production.ini -f
133 paster make-index production.ini -f
134
134
135
135
136 building index just for chosen repositories is possible with such command::
136 building index just for chosen repositories is possible with such command::
137
137
138 paster make-index production.ini --index-only=vcs,rhodecode
138 paster make-index production.ini --index-only=vcs,rhodecode
139
139
140
140
141 In order to do periodical index builds and keep your index always up to date.
141 In order to do periodical index builds and keep your index always up to date.
142 It's recommended to do a crontab entry for incremental indexing.
142 It's recommended to do a crontab entry for incremental indexing.
143 An example entry might look like this::
143 An example entry might look like this::
144
144
145 /path/to/python/bin/paster make-index /path/to/rhodecode/production.ini
145 /path/to/python/bin/paster make-index /path/to/rhodecode/production.ini
146
146
147 When using incremental mode (the default) whoosh will check the last
147 When using incremental mode (the default) whoosh will check the last
148 modification date of each file and add it to be reindexed if a newer file is
148 modification date of each file and add it to be reindexed if a newer file is
149 available. The indexing daemon checks for any removed files and removes them
149 available. The indexing daemon checks for any removed files and removes them
@@ -157,19 +157,19 b' Setting up LDAP support'
157 -----------------------
157 -----------------------
158
158
159 RhodeCode starting from version 1.1 supports ldap authentication. In order
159 RhodeCode starting from version 1.1 supports ldap authentication. In order
160 to use LDAP, you have to install the python-ldap_ package. This package is
160 to use LDAP, you have to install the python-ldap_ package. This package is
161 available via pypi, so you can install it by running
161 available via pypi, so you can install it by running
162
162
163 using easy_install::
163 using easy_install::
164
164
165 easy_install python-ldap
165 easy_install python-ldap
166
166
167 using pip::
167 using pip::
168
168
169 pip install python-ldap
169 pip install python-ldap
170
170
171 .. note::
171 .. note::
172 python-ldap requires some certain libs on your system, so before installing
172 python-ldap requires some certain libs on your system, so before installing
173 it check that you have at least `openldap`, and `sasl` libraries.
173 it check that you have at least `openldap`, and `sasl` libraries.
174
174
175 LDAP settings are located in admin->ldap section,
175 LDAP settings are located in admin->ldap section,
@@ -232,12 +232,12 b' Connection Security : required'
232
232
233 No encryption
233 No encryption
234 Plain non encrypted connection
234 Plain non encrypted connection
235
235
236 LDAPS connection
236 LDAPS connection
237 Enable ldaps connection. It will likely require `Port`_ to be set to
237 Enable ldaps connection. It will likely require `Port`_ to be set to
238 a different value (standard LDAPS port is 636). When LDAPS is enabled
238 a different value (standard LDAPS port is 636). When LDAPS is enabled
239 then `Certificate Checks`_ is required.
239 then `Certificate Checks`_ is required.
240
240
241 START_TLS on LDAP connection
241 START_TLS on LDAP connection
242 START TLS connection
242 START TLS connection
243
243
@@ -245,7 +245,7 b' Connection Security : required'
245
245
246 Certificate Checks : optional
246 Certificate Checks : optional
247 How SSL certificates verification is handled - this is only useful when
247 How SSL certificates verification is handled - this is only useful when
248 `Enable LDAPS`_ is enabled. Only DEMAND or HARD offer full SSL security
248 `Enable LDAPS`_ is enabled. Only DEMAND or HARD offer full SSL security
249 while the other options are susceptible to man-in-the-middle attacks. SSL
249 while the other options are susceptible to man-in-the-middle attacks. SSL
250 certificates can be installed to /etc/openldap/cacerts so that the
250 certificates can be installed to /etc/openldap/cacerts so that the
251 DEMAND or HARD options can be used with self-signed certificates or
251 DEMAND or HARD options can be used with self-signed certificates or
@@ -305,7 +305,7 b' LDAP Search Scope : required'
305
305
306 .. _Login Attribute:
306 .. _Login Attribute:
307
307
308 Login Attribute : required
308 Login Attribute : required
309 The LDAP record attribute that will be matched as the USERNAME or
309 The LDAP record attribute that will be matched as the USERNAME or
310 ACCOUNT used to connect to RhodeCode. This will be added to `LDAP
310 ACCOUNT used to connect to RhodeCode. This will be added to `LDAP
311 Filter`_ for locating the User object. If `LDAP Filter`_ is specified as
311 Filter`_ for locating the User object. If `LDAP Filter`_ is specified as
@@ -423,7 +423,7 b' reverse-proxy setup with basic auth::'
423 RewriteCond %{LA-U:REMOTE_USER} (.+)
423 RewriteCond %{LA-U:REMOTE_USER} (.+)
424 RewriteRule .* - [E=RU:%1]
424 RewriteRule .* - [E=RU:%1]
425 RequestHeader set X-Forwarded-User %{RU}e
425 RequestHeader set X-Forwarded-User %{RU}e
426 </Location>
426 </Location>
427
427
428 In order for RhodeCode to start using the forwarded username, you should set
428 In order for RhodeCode to start using the forwarded username, you should set
429 the following in the [app:main] section of your .ini file::
429 the following in the [app:main] section of your .ini file::
@@ -450,27 +450,27 b' uncomment following variables in the ini'
450
450
451 `url_pat` is the regular expression that will fetch issues from commit messages.
451 `url_pat` is the regular expression that will fetch issues from commit messages.
452 Default regex will match issues in format of #<number> eg. #300.
452 Default regex will match issues in format of #<number> eg. #300.
453
453
454 Matched issues will be replace with the link specified as `issue_server_link`
454 Matched issues will be replace with the link specified as `issue_server_link`
455 {id} will be replaced with issue id, and {repo} with repository name.
455 {id} will be replaced with issue id, and {repo} with repository name.
456 Since the # is striped `issue_prefix` is added as a prefix to url.
456 Since the # is striped `issue_prefix` is added as a prefix to url.
457 `issue_prefix` can be something different than # if you pass
457 `issue_prefix` can be something different than # if you pass
458 ISSUE- as issue prefix this will generate an url in format::
458 ISSUE- as issue prefix this will generate an url in format::
459
459
460 <a href="https://myissueserver.com/example_repo/issue/300">ISSUE-300</a>
460 <a href="https://myissueserver.com/example_repo/issue/300">ISSUE-300</a>
461
461
462 Hook management
462 Hook management
463 ---------------
463 ---------------
464
464
465 Hooks can be managed in similar way to this used in .hgrc files.
465 Hooks can be managed in similar way to this used in .hgrc files.
466 To access hooks setting click `advanced setup` on Hooks section of Mercurial
466 To access hooks setting click `advanced setup` on Hooks section of Mercurial
467 Settings in Admin.
467 Settings in Admin.
468
468
469 There are 4 built in hooks that cannot be changed (only enable/disable by
469 There are 4 built in hooks that cannot be changed (only enable/disable by
470 checkboxes on previos section).
470 checkboxes on previos section).
471 To add another custom hook simply fill in first section with
471 To add another custom hook simply fill in first section with
472 <name>.<hook_type> and the second one with hook path. Example hooks
472 <name>.<hook_type> and the second one with hook path. Example hooks
473 can be found at *rhodecode.lib.hooks*.
473 can be found at *rhodecode.lib.hooks*.
474
474
475
475
476 Changing default encoding
476 Changing default encoding
@@ -488,7 +488,7 b' Setting Up Celery'
488 -----------------
488 -----------------
489
489
490 Since version 1.1 celery is configured by the rhodecode ini configuration files.
490 Since version 1.1 celery is configured by the rhodecode ini configuration files.
491 Simply set use_celery=true in the ini file then add / change the configuration
491 Simply set use_celery=true in the ini file then add / change the configuration
492 variables inside the ini file.
492 variables inside the ini file.
493
493
494 Remember that the ini files use the format with '.' not with '_' like celery.
494 Remember that the ini files use the format with '.' not with '_' like celery.
@@ -501,9 +501,9 b' In order to start using celery run::'
501
501
502
502
503 .. note::
503 .. note::
504 Make sure you run this command from the same virtualenv, and with the same
504 Make sure you run this command from the same virtualenv, and with the same
505 user that rhodecode runs.
505 user that rhodecode runs.
506
506
507 HTTPS support
507 HTTPS support
508 -------------
508 -------------
509
509
@@ -511,7 +511,7 b' There are two ways to enable https:'
511
511
512 - Set HTTP_X_URL_SCHEME in your http server headers, than rhodecode will
512 - Set HTTP_X_URL_SCHEME in your http server headers, than rhodecode will
513 recognize this headers and make proper https redirections
513 recognize this headers and make proper https redirections
514 - Alternatively, change the `force_https = true` flag in the ini configuration
514 - Alternatively, change the `force_https = true` flag in the ini configuration
515 to force using https, no headers are needed than to enable https
515 to force using https, no headers are needed than to enable https
516
516
517
517
@@ -526,7 +526,7 b' Sample config for nginx using proxy::'
526 #server 127.0.0.1:5001;
526 #server 127.0.0.1:5001;
527 #server 127.0.0.1:5002;
527 #server 127.0.0.1:5002;
528 }
528 }
529
529
530 server {
530 server {
531 listen 80;
531 listen 80;
532 server_name hg.myserver.com;
532 server_name hg.myserver.com;
@@ -535,30 +535,30 b' Sample config for nginx using proxy::'
535
535
536 # uncomment if you have nginx with chunking module compiled
536 # uncomment if you have nginx with chunking module compiled
537 # fixes the issues of having to put postBuffer data for large git
537 # fixes the issues of having to put postBuffer data for large git
538 # pushes
538 # pushes
539 #chunkin on;
539 #chunkin on;
540 #error_page 411 = @my_411_error;
540 #error_page 411 = @my_411_error;
541 #location @my_411_error {
541 #location @my_411_error {
542 # chunkin_resume;
542 # chunkin_resume;
543 #}
543 #}
544
544
545 # uncomment if you want to serve static files by nginx
545 # uncomment if you want to serve static files by nginx
546 #root /path/to/installation/rhodecode/public;
546 #root /path/to/installation/rhodecode/public;
547
547
548 location / {
548 location / {
549 try_files $uri @rhode;
549 try_files $uri @rhode;
550 }
550 }
551
551
552 location @rhode {
552 location @rhode {
553 proxy_pass http://rc;
553 proxy_pass http://rc;
554 include /etc/nginx/proxy.conf;
554 include /etc/nginx/proxy.conf;
555 }
555 }
556
556
557 }
557 }
558
558
559 Here's the proxy.conf. It's tuned so it will not timeout on long
559 Here's the proxy.conf. It's tuned so it will not timeout on long
560 pushes or large pushes::
560 pushes or large pushes::
561
561
562 proxy_redirect off;
562 proxy_redirect off;
563 proxy_set_header Host $host;
563 proxy_set_header Host $host;
564 proxy_set_header X-Url-Scheme $scheme;
564 proxy_set_header X-Url-Scheme $scheme;
@@ -573,7 +573,7 b' pushes or large pushes::'
573 proxy_send_timeout 7200;
573 proxy_send_timeout 7200;
574 proxy_read_timeout 7200;
574 proxy_read_timeout 7200;
575 proxy_buffers 8 32k;
575 proxy_buffers 8 32k;
576
576
577 Also, when using root path with nginx you might set the static files to false
577 Also, when using root path with nginx you might set the static files to false
578 in the production.ini file::
578 in the production.ini file::
579
579
@@ -595,24 +595,24 b' Here is a sample configuration file for '
595 <VirtualHost *:80>
595 <VirtualHost *:80>
596 ServerName hg.myserver.com
596 ServerName hg.myserver.com
597 ServerAlias hg.myserver.com
597 ServerAlias hg.myserver.com
598
598
599 <Proxy *>
599 <Proxy *>
600 Order allow,deny
600 Order allow,deny
601 Allow from all
601 Allow from all
602 </Proxy>
602 </Proxy>
603
603
604 #important !
604 #important !
605 #Directive to properly generate url (clone url) for pylons
605 #Directive to properly generate url (clone url) for pylons
606 ProxyPreserveHost On
606 ProxyPreserveHost On
607
607
608 #rhodecode instance
608 #rhodecode instance
609 ProxyPass / http://127.0.0.1:5000/
609 ProxyPass / http://127.0.0.1:5000/
610 ProxyPassReverse / http://127.0.0.1:5000/
610 ProxyPassReverse / http://127.0.0.1:5000/
611
611
612 #to enable https use line below
612 #to enable https use line below
613 #SetEnvIf X-Url-Scheme https HTTPS=1
613 #SetEnvIf X-Url-Scheme https HTTPS=1
614
614
615 </VirtualHost>
615 </VirtualHost>
616
616
617
617
618 Additional tutorial
618 Additional tutorial
@@ -628,7 +628,7 b' Apache subdirectory part::'
628 ProxyPass http://127.0.0.1:5000/<someprefix>
628 ProxyPass http://127.0.0.1:5000/<someprefix>
629 ProxyPassReverse http://127.0.0.1:5000/<someprefix>
629 ProxyPassReverse http://127.0.0.1:5000/<someprefix>
630 SetEnvIf X-Url-Scheme https HTTPS=1
630 SetEnvIf X-Url-Scheme https HTTPS=1
631 </Location>
631 </Location>
632
632
633 Besides the regular apache setup you will need to add the following line
633 Besides the regular apache setup you will need to add the following line
634 into [app:main] section of your .ini file::
634 into [app:main] section of your .ini file::
@@ -639,7 +639,7 b' Add the following at the end of the .ini'
639
639
640 [filter:proxy-prefix]
640 [filter:proxy-prefix]
641 use = egg:PasteDeploy#prefix
641 use = egg:PasteDeploy#prefix
642 prefix = /<someprefix>
642 prefix = /<someprefix>
643
643
644
644
645 then change <someprefix> into your choosen prefix
645 then change <someprefix> into your choosen prefix
@@ -675,7 +675,7 b' Here is a sample excerpt from an Apache '
675 WSGIPassAuthorization On
675 WSGIPassAuthorization On
676
676
677 .. note::
677 .. note::
678 when running apache as root please add: `user=www-data group=www-data`
678 when running apache as root please add: `user=www-data group=www-data`
679 into above configuration
679 into above configuration
680
680
681 .. note::
681 .. note::
@@ -688,13 +688,13 b' Example wsgi dispatch script::'
688 import os
688 import os
689 os.environ["HGENCODING"] = "UTF-8"
689 os.environ["HGENCODING"] = "UTF-8"
690 os.environ['PYTHON_EGG_CACHE'] = '/home/web/rhodecode/.egg-cache'
690 os.environ['PYTHON_EGG_CACHE'] = '/home/web/rhodecode/.egg-cache'
691
691
692 # sometimes it's needed to set the curent dir
692 # sometimes it's needed to set the curent dir
693 os.chdir('/home/web/rhodecode/')
693 os.chdir('/home/web/rhodecode/')
694
694
695 import site
695 import site
696 site.addsitedir("/home/web/rhodecode/pyenv/lib/python2.6/site-packages")
696 site.addsitedir("/home/web/rhodecode/pyenv/lib/python2.6/site-packages")
697
697
698 from paste.deploy import loadapp
698 from paste.deploy import loadapp
699 from paste.script.util.logging_config import fileConfig
699 from paste.script.util.logging_config import fileConfig
700
700
@@ -722,4 +722,4 b' Some example init.d scripts can be found'
722 .. _mercurial-server: http://www.lshift.net/mercurial-server.html
722 .. _mercurial-server: http://www.lshift.net/mercurial-server.html
723 .. _PublishingRepositories: http://mercurial.selenic.com/wiki/PublishingRepositories
723 .. _PublishingRepositories: http://mercurial.selenic.com/wiki/PublishingRepositories
724 .. _Issues tracker: https://bitbucket.org/marcinkuzminski/rhodecode/issues
724 .. _Issues tracker: https://bitbucket.org/marcinkuzminski/rhodecode/issues
725 .. _google group rhodecode: http://groups.google.com/group/rhodecode No newline at end of file
725 .. _google group rhodecode: http://groups.google.com/group/rhodecode
@@ -8,12 +8,12 b' Upgrading from PyPI (aka "Cheeseshop")'
8 ---------------------------------------
8 ---------------------------------------
9
9
10 .. note::
10 .. note::
11 Firstly, it is recommended that you **always** perform a database and
11 Firstly, it is recommended that you **always** perform a database and
12 configuration backup before doing an upgrade.
12 configuration backup before doing an upgrade.
13
13
14 (These directions will use '{version}' to note that this is the version of
14 (These directions will use '{version}' to note that this is the version of
15 Rhodecode that these files were used with. If backing up your RhodeCode
15 Rhodecode that these files were used with. If backing up your RhodeCode
16 instance from version 1.3.6 to 1.4.0, the ``production.ini`` file would be
16 instance from version 1.3.6 to 1.4.0, the ``production.ini`` file would be
17 backed up to ``production.ini.1-3-6``.)
17 backed up to ``production.ini.1-3-6``.)
18
18
19
19
@@ -34,7 +34,7 b' installed Rhodecode in::'
34
34
35 pip freeze
35 pip freeze
36
36
37 will list all packages installed in the current environment. If Rhodecode
37 will list all packages installed in the current environment. If Rhodecode
38 isn't listed, change virtual environments to your venv location::
38 isn't listed, change virtual environments to your venv location::
39
39
40 source /opt/rhodecode-venv/bin/activate
40 source /opt/rhodecode-venv/bin/activate
@@ -50,11 +50,11 b' Or::'
50
50
51
51
52 Then run the following command from the installation directory::
52 Then run the following command from the installation directory::
53
53
54 paster make-config RhodeCode production.ini
54 paster make-config RhodeCode production.ini
55
55
56 This will display any changes made by the new version of RhodeCode to your
56 This will display any changes made by the new version of RhodeCode to your
57 current configuration. It will try to perform an automerge. It's recommended
57 current configuration. It will try to perform an automerge. It's recommended
58 that you re-check the content after the automerge.
58 that you re-check the content after the automerge.
59
59
60 .. note::
60 .. note::
@@ -62,7 +62,7 b' that you re-check the content after the '
62 caused by missing params added in new versions.
62 caused by missing params added in new versions.
63
63
64
64
65 It is also recommended that you rebuild the whoosh index after upgrading since
65 It is also recommended that you rebuild the whoosh index after upgrading since
66 the new whoosh version could introduce some incompatible index changes. Please
66 the new whoosh version could introduce some incompatible index changes. Please
67 Read the changelog to see if there were any changes to whoosh.
67 Read the changelog to see if there were any changes to whoosh.
68
68
@@ -70,12 +70,12 b' Read the changelog to see if there were '
70 The final step is to upgrade the database. To do this simply run::
70 The final step is to upgrade the database. To do this simply run::
71
71
72 paster upgrade-db production.ini
72 paster upgrade-db production.ini
73
73
74 This will upgrade the schema and update some of the defaults in the database,
74 This will upgrade the schema and update some of the defaults in the database,
75 and will always recheck the settings of the application, if there are no new
75 and will always recheck the settings of the application, if there are no new
76 options that need to be set.
76 options that need to be set.
77
77
78 You may find it helpful to clear out your log file so that new errors are
78 You may find it helpful to clear out your log file so that new errors are
79 readily apparent::
79 readily apparent::
80
80
81 echo > rhodecode.log
81 echo > rhodecode.log
@@ -92,7 +92,7 b' Or::'
92 If you're using Celery, make sure you restart all instances of it after
92 If you're using Celery, make sure you restart all instances of it after
93 upgrade.
93 upgrade.
94
94
95 .. _virtualenv: http://pypi.python.org/pypi/virtualenv
95 .. _virtualenv: http://pypi.python.org/pypi/virtualenv
96 .. _python: http://www.python.org/
96 .. _python: http://www.python.org/
97 .. _mercurial: http://mercurial.selenic.com/
97 .. _mercurial: http://mercurial.selenic.com/
98 .. _celery: http://celeryproject.org/
98 .. _celery: http://celeryproject.org/
@@ -23,4 +23,4 b' Database'
23 When using sqlite just copy rhodecode.db.
23 When using sqlite just copy rhodecode.db.
24 Any other database engine requires a manual backup operation.
24 Any other database engine requires a manual backup operation.
25
25
26 Database backup will contain all gathered statistics No newline at end of file
26 Database backup will contain all gathered statistics
@@ -14,7 +14,7 b' enable detailed debug'
14
14
15 RhodeCode uses standard python logging modules to log it's output.
15 RhodeCode uses standard python logging modules to log it's output.
16 By default only loggers with INFO level are displayed. To enable full output
16 By default only loggers with INFO level are displayed. To enable full output
17 change `level = DEBUG` for all logging handlers in currently used .ini file.
17 change `level = DEBUG` for all logging handlers in currently used .ini file.
18 This change will allow to see much more detailed output in the logfile or
18 This change will allow to see much more detailed output in the logfile or
19 console. This generally helps a lot to track issues.
19 console. This generally helps a lot to track issues.
20
20
@@ -11,7 +11,7 b' Repository deleting'
11 Currently when admin/owner deletes a repository, RhodeCode does not physically
11 Currently when admin/owner deletes a repository, RhodeCode does not physically
12 delete a repository from filesystem, it renames it in a special way so it's
12 delete a repository from filesystem, it renames it in a special way so it's
13 not possible to push,clone or access repository. It's worth a notice that,
13 not possible to push,clone or access repository. It's worth a notice that,
14 even if someone will be given administrative access to RhodeCode and will
14 even if someone will be given administrative access to RhodeCode and will
15 delete a repository You can easy restore such action by restoring `rm__<date>`
15 delete a repository You can easy restore such action by restoring `rm__<date>`
16 from the repository name, and internal repository storage (.hg/.git)
16 from the repository name, and internal repository storage (.hg/.git)
17
17
@@ -44,21 +44,21 b' Due to complicated nature of repository '
44 can change.
44 can change.
45
45
46 example::
46 example::
47
47
48 #before
48 #before
49 http://server.com/repo_name
49 http://server.com/repo_name
50 # after insertion to test_group group the url will be
50 # after insertion to test_group group the url will be
51 http://server.com/test_group/repo_name
51 http://server.com/test_group/repo_name
52
52
53 This can be an issue for build systems and any other hardcoded scripts, moving
53 This can be an issue for build systems and any other hardcoded scripts, moving
54 repository to a group leads to a need for changing external systems. To
54 repository to a group leads to a need for changing external systems. To
55 overcome this RhodeCode introduces a non changable replacement url. It's
55 overcome this RhodeCode introduces a non changable replacement url. It's
56 simply an repository ID prefixed with `_` above urls are also accessible as::
56 simply an repository ID prefixed with `_` above urls are also accessible as::
57
57
58 http://server.com/_<ID>
58 http://server.com/_<ID>
59
59
60 Since ID are always the same moving the repository will not affect such url.
60 Since ID are always the same moving the repository will not affect such url.
61 the _<ID> syntax can be used anywhere in the system so urls with repo_name
61 the _<ID> syntax can be used anywhere in the system so urls with repo_name
62 for changelogs, files and other can be exchanged with _<ID> syntax.
62 for changelogs, files and other can be exchanged with _<ID> syntax.
63
63
64
64
@@ -71,7 +71,7 b' on errors the mails will have a detailed'
71
71
72
72
73 Mails are also sent for code comments. If someone comments on a changeset
73 Mails are also sent for code comments. If someone comments on a changeset
74 mail is sent to all participants, the person who commited the changeset
74 mail is sent to all participants, the person who commited the changeset
75 (if present in RhodeCode), and to all people mentioned with @mention system.
75 (if present in RhodeCode), and to all people mentioned with @mention system.
76
76
77
77
@@ -96,12 +96,12 b' Currently it support following options:'
96
96
97
97
98 .. note::
98 .. note::
99
99
100 - *`svn -> hg` cloning requires `hgsubversion` library to be installed.*
100 - *`svn -> hg` cloning requires `hgsubversion` library to be installed.*
101
101
102 If you need to clone repositories that are protected via basic auth, you
102 If you need to clone repositories that are protected via basic auth, you
103 might pass the url with stored credentials inside eg.
103 might pass the url with stored credentials inside eg.
104 `http://user:passw@remote.server/repo, RhodeCode will try to login and clone
104 `http://user:passw@remote.server/repo, RhodeCode will try to login and clone
105 using given credentials. Please take a note that they will be stored as
105 using given credentials. Please take a note that they will be stored as
106 plaintext inside the database. RhodeCode will remove auth info when showing the
106 plaintext inside the database. RhodeCode will remove auth info when showing the
107 clone url in summary page.
107 clone url in summary page.
@@ -11,10 +11,10 b' client installed on the machine to make '
11 Although There is one limitation on git usage.
11 Although There is one limitation on git usage.
12
12
13 - large pushes requires a http server with chunked encoding support.
13 - large pushes requires a http server with chunked encoding support.
14
14
15 if you plan to use git you need to run RhodeCode with some
15 if you plan to use git you need to run RhodeCode with some
16 http server that supports chunked encoding which git http protocol uses,
16 http server that supports chunked encoding which git http protocol uses,
17 i recommend using waitress_ or gunicorn_ (linux only) for `paste` wsgi app
17 i recommend using waitress_ or gunicorn_ (linux only) for `paste` wsgi app
18 replacement. Starting from version 1.4 waitress_ is the default wsgi server
18 replacement. Starting from version 1.4 waitress_ is the default wsgi server
19 used in RhodeCode.
19 used in RhodeCode.
20
20
@@ -23,33 +23,33 b' To use, simply change change the followi'
23 use = egg:Paste#http
23 use = egg:Paste#http
24
24
25 to::
25 to::
26
26
27 use = egg:waitress#main
27 use = egg:waitress#main
28
28
29 or::
29 or::
30
30
31 use = egg:gunicorn#main
31 use = egg:gunicorn#main
32
32
33
33
34 And comment out bellow options::
34 And comment out bellow options::
35
35
36 threadpool_workers =
36 threadpool_workers =
37 threadpool_max_requests =
37 threadpool_max_requests =
38 use_threadpool =
38 use_threadpool =
39
39
40
40
41 You can simply run `paster serve` as usual.
41 You can simply run `paster serve` as usual.
42
42
43
43
44 You can always disable git/hg support by editing a
44 You can always disable git/hg support by editing a
45 file **rhodecode/__init__.py** and commenting out backends
45 file **rhodecode/__init__.py** and commenting out backends
46
46
47 .. code-block:: python
47 .. code-block:: python
48
48
49 BACKENDS = {
49 BACKENDS = {
50 'hg': 'Mercurial repository',
50 'hg': 'Mercurial repository',
51 #'git': 'Git repository',
51 #'git': 'Git repository',
52 }
52 }
53
53
54 .. _waitress: http://pypi.python.org/pypi/waitress
54 .. _waitress: http://pypi.python.org/pypi/waitress
55 .. _gunicorn: http://pypi.python.org/pypi/gunicorn No newline at end of file
55 .. _gunicorn: http://pypi.python.org/pypi/gunicorn
@@ -5,37 +5,37 b' RhodeCode repository locking system'
5 ===================================
5 ===================================
6
6
7
7
8 | Repos with **locking function=disabled** is the default, that's how repos work
8 | Repos with **locking function=disabled** is the default, that's how repos work
9 today.
9 today.
10 | Repos with **locking function=enabled** behaves like follows:
10 | Repos with **locking function=enabled** behaves like follows:
11
11
12 Repos have a state called `locked` that can be true or false.
12 Repos have a state called `locked` that can be true or false.
13 The hg/git commands `hg/git clone`, `hg/git pull`, and `hg/git push`
13 The hg/git commands `hg/git clone`, `hg/git pull`, and `hg/git push`
14 influence this state:
14 influence this state:
15
15
16 - The command `hg/git pull <repo>` will lock that repo (locked=true)
16 - The command `hg/git pull <repo>` will lock that repo (locked=true)
17 if the user has write/admin permissions on this repo
17 if the user has write/admin permissions on this repo
18
18
19 - The command `hg/git clone <repo>` will lock that repo (locked=true) if the
19 - The command `hg/git clone <repo>` will lock that repo (locked=true) if the
20 user has write/admin permissions on this repo
20 user has write/admin permissions on this repo
21
21
22
22
23 RhodeCode will remember the user id who locked the repo
23 RhodeCode will remember the user id who locked the repo
24 only this specific user can unlock the repo (locked=false) by calling
24 only this specific user can unlock the repo (locked=false) by calling
25
25
26 - `hg/git push <repo>`
26 - `hg/git push <repo>`
27
27
28 every other command on that repo from this user and
28 every other command on that repo from this user and
29 every command from any other user will result in http return code 423 (locked)
29 every command from any other user will result in http return code 423 (locked)
30
30
31
31
32 additionally the http error includes the <user> that locked the repo
32 additionally the http error includes the <user> that locked the repo
33 (e.g. “repository <repo> locked by user <user>”)
33 (e.g. “repository <repo> locked by user <user>”)
34
34
35
35
36 So the scenario of use for repos with `locking function` enabled is that
36 So the scenario of use for repos with `locking function` enabled is that
37 every initial clone and every pull gives users (with write permission)
37 every initial clone and every pull gives users (with write permission)
38 the exclusive right to do a push.
38 the exclusive right to do a push.
39
39
40
40
41 Each repo can be manually unlocked by admin from the repo settings menu. No newline at end of file
41 Each repo can be manually unlocked by admin from the repo settings menu.
@@ -22,7 +22,7 b' Follow these few steps to improve perfor'
22 1. Increase cache
22 1. Increase cache
23
23
24 in the .ini file::
24 in the .ini file::
25
25
26 beaker.cache.sql_cache_long.expire=3600 <-- set this to higher number
26 beaker.cache.sql_cache_long.expire=3600 <-- set this to higher number
27
27
28 This option affects the cache expiration time for main page. Having
28 This option affects the cache expiration time for main page. Having
@@ -33,18 +33,18 b' 1. Increase cache'
33 system and it will expire cache for repositories that had been changed.
33 system and it will expire cache for repositories that had been changed.
34
34
35 2. Switch from sqlite to postgres or mysql
35 2. Switch from sqlite to postgres or mysql
36
36
37 sqlite is a good option when having small load on the system. But due to
37 sqlite is a good option when having small load on the system. But due to
38 locking issues with sqlite, it's not recommended to use it for larger
38 locking issues with sqlite, it's not recommended to use it for larger
39 setup. Switching to mysql or postgres will result in a immediate
39 setup. Switching to mysql or postgres will result in a immediate
40 performance increase.
40 performance increase.
41
41
42 3. Scale RhodeCode horizontally
42 3. Scale RhodeCode horizontally
43
43
44 - running two or more instances on the same server can speed up things a lot
44 - running two or more instances on the same server can speed up things a lot
45 - load balance using round robin or ip hash
45 - load balance using round robin or ip hash
46 - you need to handle consistent user session storage by switching to
46 - you need to handle consistent user session storage by switching to
47 db sessions, client side sessions or sharing session data folder across
47 db sessions, client side sessions or sharing session data folder across
48 instances. See http://beaker.readthedocs.org/ docs for details.
48 instances. See http://beaker.readthedocs.org/ docs for details.
49 - remember that each instance needs it's own .ini file and unique
49 - remember that each instance needs it's own .ini file and unique
50 `instance_id` set in them No newline at end of file
50 `instance_id` set in them
@@ -5,14 +5,14 b' working with RhodeCode and mercurial sub'
5 =============================================
5 =============================================
6
6
7 example usage of Subrepos with RhodeCode::
7 example usage of Subrepos with RhodeCode::
8
8
9 ## init a simple repo
9 ## init a simple repo
10 hg init repo1
10 hg init repo1
11 cd repo1
11 cd repo1
12 echo "file1" > file1
12 echo "file1" > file1
13 hg add file1
13 hg add file1
14 hg ci --message "initial file 1"
14 hg ci --message "initial file 1"
15
15
16 #clone subrepo we want to add
16 #clone subrepo we want to add
17 hg clone http://rc.local/subrepo
17 hg clone http://rc.local/subrepo
18
18
@@ -22,7 +22,7 b' example usage of Subrepos with RhodeCode'
22 hg add .hgsub
22 hg add .hgsub
23 hg ci --message "added remote subrepo"
23 hg ci --message "added remote subrepo"
24
24
25
25
26
26
27 In file list of repo1 you will see a connected subrepo at revision it was
27 In file list of repo1 you will see a connected subrepo at revision it was
28 during cloning.
28 during cloning.
@@ -34,4 +34,4 b' Next we can edit the subrepo data, and p'
34 both of repositories.
34 both of repositories.
35
35
36 see http://mercurial.aragost.com/kick-start/en/subrepositories/ for more
36 see http://mercurial.aragost.com/kick-start/en/subrepositories/ for more
37 information about subrepositories No newline at end of file
37 information about subrepositories
@@ -7,23 +7,23 b' Troubleshooting'
7
7
8 :Q: **Missing static files?**
8 :Q: **Missing static files?**
9 :A: Make sure either to set the `static_files = true` in the .ini file or
9 :A: Make sure either to set the `static_files = true` in the .ini file or
10 double check the root path for your http setup. It should point to
10 double check the root path for your http setup. It should point to
11 for example:
11 for example:
12 /home/my-virtual-python/lib/python2.6/site-packages/rhodecode/public
12 /home/my-virtual-python/lib/python2.6/site-packages/rhodecode/public
13
13
14 |
14 |
15
15
16 :Q: **Can't install celery/rabbitmq?**
16 :Q: **Can't install celery/rabbitmq?**
17 :A: Don't worry RhodeCode works without them too. No extra setup is required.
17 :A: Don't worry RhodeCode works without them too. No extra setup is required.
18 Try out great celery docs for further help.
18 Try out great celery docs for further help.
19
19
20 |
20 |
21
21
22 :Q: **Long lasting push timeouts?**
22 :Q: **Long lasting push timeouts?**
23 :A: Make sure you set a longer timeouts in your proxy/fcgi settings, timeouts
23 :A: Make sure you set a longer timeouts in your proxy/fcgi settings, timeouts
24 are caused by https server and not RhodeCode.
24 are caused by https server and not RhodeCode.
25
25
26 |
26 |
27
27
28 :Q: **Large pushes timeouts?**
28 :Q: **Large pushes timeouts?**
29 :A: Make sure you set a proper max_body_size for the http server. Very often
29 :A: Make sure you set a proper max_body_size for the http server. Very often
@@ -46,7 +46,7 b' Troubleshooting'
46 :Q: **How i use hooks in RhodeCode?**
46 :Q: **How i use hooks in RhodeCode?**
47 :A: It's easy if they are python hooks just use advanced link in hooks section
47 :A: It's easy if they are python hooks just use advanced link in hooks section
48 in Admin panel, that works only for Mercurial. If you want to use githooks,
48 in Admin panel, that works only for Mercurial. If you want to use githooks,
49 just install proper one in repository eg. create file in
49 just install proper one in repository eg. create file in
50 `/gitrepo/hooks/pre-receive`. You can also use RhodeCode-extensions to
50 `/gitrepo/hooks/pre-receive`. You can also use RhodeCode-extensions to
51 connect to callback hooks, for both Git and Mercurial.
51 connect to callback hooks, for both Git and Mercurial.
52
52
@@ -55,7 +55,7 b' Troubleshooting'
55 :Q: **RhodeCode is slow for me, how can i make it faster?**
55 :Q: **RhodeCode is slow for me, how can i make it faster?**
56 :A: See the :ref:`performance` section
56 :A: See the :ref:`performance` section
57
57
58 For further questions search the `Issues tracker`_, or post a message in the
58 For further questions search the `Issues tracker`_, or post a message in the
59 `google group rhodecode`_
59 `google group rhodecode`_
60
60
61 .. _virtualenv: http://pypi.python.org/pypi/virtualenv
61 .. _virtualenv: http://pypi.python.org/pypi/virtualenv
@@ -67,4 +67,4 b' For further questions search the `Issues'
67 .. _mercurial-server: http://www.lshift.net/mercurial-server.html
67 .. _mercurial-server: http://www.lshift.net/mercurial-server.html
68 .. _PublishingRepositories: http://mercurial.selenic.com/wiki/PublishingRepositories
68 .. _PublishingRepositories: http://mercurial.selenic.com/wiki/PublishingRepositories
69 .. _Issues tracker: https://bitbucket.org/marcinkuzminski/rhodecode/issues
69 .. _Issues tracker: https://bitbucket.org/marcinkuzminski/rhodecode/issues
70 .. _google group rhodecode: http://groups.google.com/group/rhodecode No newline at end of file
70 .. _google group rhodecode: http://groups.google.com/group/rhodecode
@@ -12,7 +12,7 b''
12 %if c.group:
12 %if c.group:
13 <span>${h.link_to(_('Add repository'),h.url('admin_settings_create_repository',parent_group=c.group.group_id))}</span>
13 <span>${h.link_to(_('Add repository'),h.url('admin_settings_create_repository',parent_group=c.group.group_id))}</span>
14 %else:
14 %else:
15 <span>${h.link_to(_('Add repository'),h.url('admin_settings_create_repository'))}</span>
15 <span>${h.link_to(_('Add repository'),h.url('admin_settings_create_repository'))}</span>
16 %endif
16 %endif
17 </li>
17 </li>
18 %endif
18 %endif
@@ -58,4 +58,3 b' class TestSettingsController(TestControl'
58 perm[0].permission = Permission.get_by_key('repository.read')
58 perm[0].permission = Permission.get_by_key('repository.read')
59 Session().add(perm[0])
59 Session().add(perm[0])
60 Session().commit()
60 Session().commit()
61 No newline at end of file
General Comments 0
You need to be logged in to leave comments. Login now