##// END OF EJS Templates
Docs updates
marcink -
r3363:1a498b11 rhodecode-0.0.1.5.3 default
parent child Browse files
Show More
@@ -1,179 +1,179 b''
1 =========
1 =========
2 RhodeCode
2 RhodeCode
3 =========
3 =========
4
4
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, 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/>`_
23
23
24 Installation
24 Installation
25 ------------
25 ------------
26 Stable releases of RhodeCode are best installed via::
26 Stable releases of RhodeCode are best installed via::
27
27
28 easy_install rhodecode
28 easy_install rhodecode
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
36 Please visit http://packages.python.org/RhodeCode/installation.html for
36 Please visit http://packages.python.org/RhodeCode/installation.html for
37 more details
37 more details
38
38
39 RhodeCode demo
39 RhodeCode demo
40 --------------
40 --------------
41
41
42 http://demo.rhodecode.org
42 http://demo.rhodecode.org
43
43
44 The default access is anonymous but you can login to an administrative account
44 The default access is anonymous but you can login to an administrative account
45 using the following credentials:
45 using the following credentials:
46
46
47 - username: demo
47 - username: demo
48 - password: demo12
48 - password: demo12
49
49
50 Source code
50 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:
58
58
59 Issue tracker and sources at bitbucket_
59 Issue tracker and sources at bitbucket_
60
60
61 http://bitbucket.org/marcinkuzminski/rhodecode
61 http://bitbucket.org/marcinkuzminski/rhodecode
62
62
63 Sources at github_
63 Sources at github_
64
64
65 https://github.com/marcinkuzminski/rhodecode
65 https://github.com/marcinkuzminski/rhodecode
66
66
67
67
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
75 - Supports http/https, LDAP, AD, proxy-pass authentication.
75 - Supports http/https, LDAP, AD, proxy-pass authentication.
76 - Full permissions (private/read/write/admin) together with IP restrictions for each repository,
76 - Full permissions (private/read/write/admin) together with IP restrictions for each repository,
77 additional explicit forking and repository creation permissions.
77 additional explicit forking and repository creation permissions.
78 - Users groups for easier permission management
78 - Users groups for easier permission management
79 - Repository groups let you group repos and manage them easier.
79 - Repository groups let you group repos and manage them easier.
80 - Users can fork other users repos, and compare them at any time.
80 - Users can fork other users repos, and compare them at any time.
81 - Integrates easily with other systems, with custom created mappers you can connect it to almost
81 - Integrates easily with other systems, with custom created mappers you can connect it to almost
82 any issue tracker, and with an JSON-RPC API you can make much more
82 any issue tracker, and with an JSON-RPC API you can make much more
83 - Build in commit-api let's you add, edit and commit files right from RhodeCode
83 - Build in commit-api let's you add, edit and commit files right from RhodeCode
84 web interface using simple editor or upload binary files using simple form.
84 web interface using simple editor or upload binary files using simple form.
85 - Powerfull pull-request driven review system with inline commenting,
85 - Powerfull pull-request driven review system with inline commenting,
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
127 -------
127 -------
128
128
129 ``RhodeCode`` is released under the GPLv3 license.
129 ``RhodeCode`` is released under the GPLv3 license.
130
130
131
131
132 Getting help
132 Getting help
133 ------------
133 ------------
134
134
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
145 - Open an issue at `issue tracker <http://bitbucket.org/marcinkuzminski/rhodecode/issues>`_
145 - Open an issue at `issue tracker <http://bitbucket.org/marcinkuzminski/rhodecode/issues>`_
146
146
147 - Join #rhodecode on FreeNode (irc.freenode.net)
147 - Join #rhodecode on FreeNode (irc.freenode.net)
148 or use http://webchat.freenode.net/?channels=rhodecode for web access to irc.
148 or use http://webchat.freenode.net/?channels=rhodecode for web access to irc.
149
149
150 - You can also follow me on twitter **@marcinkuzminski** where i often post some
150 - You can also follow me on twitter **@marcinkuzminski** where i often post some
151 news about RhodeCode
151 news about RhodeCode
152
152
153
153
154 Online documentation
154 Online documentation
155 --------------------
155 --------------------
156
156
157 Online documentation for the current version of RhodeCode is available at
157 Online documentation for the current version of RhodeCode is available at
158 - http://packages.python.org/RhodeCode/
158 - http://packages.python.org/RhodeCode/
159 - http://rhodecode.readthedocs.org/en/latest/index.html
159 - http://rhodecode.readthedocs.org/en/latest/index.html
160
160
161 You may also build the documentation for yourself - go into ``docs/`` and run::
161 You may also build the documentation for yourself - go into ``docs/`` and run::
162
162
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/
172 .. _mercurial: http://mercurial.selenic.com/
172 .. _mercurial: http://mercurial.selenic.com/
173 .. _bitbucket: http://bitbucket.org/
173 .. _bitbucket: http://bitbucket.org/
174 .. _github: http://github.com/
174 .. _github: http://github.com/
175 .. _subversion: http://subversion.tigris.org/
175 .. _subversion: http://subversion.tigris.org/
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
@@ -1,935 +1,955 b''
1 .. _changelog:
1 .. _changelog:
2
2
3 =========
3 =========
4 Changelog
4 Changelog
5 =========
5 =========
6
6
7 1.5.3 (**2013-02-12**)
8 ----------------------
9
10 news
11 ++++
12
13 - IP restrictions now also enabled for IPv6
14
15 fixes
16 +++++
17
18 - fixed issues with private checkbox not always working
19 - fixed #746 unicodeDedode errors on feed controllers
20 - fixes issue #756 cleanup repos didn't properly compose paths of repos to be cleaned up.
21 - fixed cache invalidation issues together with vcs_full_cache option
22 - repo scan should skip directories with starting with '.'
23 - fixes for issue #731, update-repoinfo sometimes failed to update data when changesets
24 were initial commits
25 - recursive mode of setting permission skips private repositories
26
7 1.5.2 (**2013-01-14**)
27 1.5.2 (**2013-01-14**)
8 ----------------------
28 ----------------------
9
29
10 news
30 news
11 ++++
31 ++++
12
32
13 - IP restrictions for users. Each user can get a set of whitelist IP+mask for
33 - IP restrictions for users. Each user can get a set of whitelist IP+mask for
14 extra protection. Useful for buildbots etc.
34 extra protection. Useful for buildbots etc.
15 - added full last changeset info to lightweight dashboard. lightweight dashboard
35 - added full last changeset info to lightweight dashboard. lightweight dashboard
16 is now fully functional replacement of original dashboard.
36 is now fully functional replacement of original dashboard.
17 - implemented certain API calls for non-admin users.
37 - implemented certain API calls for non-admin users.
18 - enabled all Markdown Extra plugins
38 - enabled all Markdown Extra plugins
19 - implemented #725 Pull Request View - Show origin repo URL
39 - implemented #725 Pull Request View - Show origin repo URL
20 - show comments from pull requests into associated changesets
40 - show comments from pull requests into associated changesets
21
41
22 fixes
42 fixes
23 +++++
43 +++++
24
44
25 - update repoinfo script is more failsafe
45 - update repoinfo script is more failsafe
26 - fixed #687 Lazy loaded tooltip bug with simultaneous ajax requests
46 - fixed #687 Lazy loaded tooltip bug with simultaneous ajax requests
27 - fixed #691: Notifications for pull requests: move link to top for better
47 - fixed #691: Notifications for pull requests: move link to top for better
28 readability
48 readability
29 - fixed #699: fix missing fork docs for API
49 - fixed #699: fix missing fork docs for API
30 - fixed #693 Opening changeset from pull request fails
50 - fixed #693 Opening changeset from pull request fails
31 - fixed #710 File view stripping empty lines from beginning and end of file
51 - fixed #710 File view stripping empty lines from beginning and end of file
32 - fixed issues with getting repos by path on windows, caused GIT hooks to fail
52 - fixed issues with getting repos by path on windows, caused GIT hooks to fail
33 - fixed issues with groups paginator on main dashboard
53 - fixed issues with groups paginator on main dashboard
34 - improved fetch/pull command for git repos, now pulling all refs
54 - improved fetch/pull command for git repos, now pulling all refs
35 - fixed issue #719 Journal revision ID tooltip AJAX query path is incorrect
55 - fixed issue #719 Journal revision ID tooltip AJAX query path is incorrect
36 when running in a subdir
56 when running in a subdir
37 - fixed issue #702 API methods without arguments fail when "args":null
57 - fixed issue #702 API methods without arguments fail when "args":null
38 - set the status of changesets initially on pull request. Fixes issues #690 and #587
58 - set the status of changesets initially on pull request. Fixes issues #690 and #587
39
59
40 1.5.1 (**2012-12-13**)
60 1.5.1 (**2012-12-13**)
41 ----------------------
61 ----------------------
42
62
43 news
63 news
44 ++++
64 ++++
45
65
46 - implements #677: Don't allow to close pull requests when they are
66 - implements #677: Don't allow to close pull requests when they are
47 under-review status
67 under-review status
48 - implemented #670 Implementation of Roles in Pull Request
68 - implemented #670 Implementation of Roles in Pull Request
49
69
50 fixes
70 fixes
51 +++++
71 +++++
52
72
53 - default permissions can get duplicated after migration
73 - default permissions can get duplicated after migration
54 - fixed changeset status labels, they now select radio buttons
74 - fixed changeset status labels, they now select radio buttons
55 - #682 translation difficult for multi-line text
75 - #682 translation difficult for multi-line text
56 - #683 fixed difference between messages about not mapped repositories
76 - #683 fixed difference between messages about not mapped repositories
57
77
58 1.5.0 (**2012-12-12**)
78 1.5.0 (**2012-12-12**)
59 ----------------------
79 ----------------------
60
80
61 news
81 news
62 ++++
82 ++++
63
83
64 - new rewritten from scratch diff engine. 10x faster in edge cases. Handling
84 - new rewritten from scratch diff engine. 10x faster in edge cases. Handling
65 of file renames, copies, change flags and binary files
85 of file renames, copies, change flags and binary files
66 - added lightweight dashboard option. ref #500. New version of dashboard
86 - added lightweight dashboard option. ref #500. New version of dashboard
67 page that doesn't use any VCS data and is super fast to render. Recommended
87 page that doesn't use any VCS data and is super fast to render. Recommended
68 for large amount of repositories.
88 for large amount of repositories.
69 - implements #648 write Script for updating last modification time for
89 - implements #648 write Script for updating last modification time for
70 lightweight dashboard
90 lightweight dashboard
71 - implemented compare engine for git repositories.
91 - implemented compare engine for git repositories.
72 - LDAP failover, option to specify multiple servers
92 - LDAP failover, option to specify multiple servers
73 - added Errormator and Sentry support for monitoring RhodeCode
93 - added Errormator and Sentry support for monitoring RhodeCode
74 - implemented #628: Pass server URL to rc-extensions hooks
94 - implemented #628: Pass server URL to rc-extensions hooks
75 - new tooltip implementation - added lazy loading of changesets from journal
95 - new tooltip implementation - added lazy loading of changesets from journal
76 pages. This can significantly improve speed of rendering the page
96 pages. This can significantly improve speed of rendering the page
77 - implements #632,added branch/tag/bookmarks info into feeds
97 - implements #632,added branch/tag/bookmarks info into feeds
78 added changeset link to body of message
98 added changeset link to body of message
79 - implemented #638 permissions overview to groups
99 - implemented #638 permissions overview to groups
80 - implements #636, lazy loading of history and authors to speed up source
100 - implements #636, lazy loading of history and authors to speed up source
81 pages rendering
101 pages rendering
82 - implemented #647, option to pass list of default encoding used to
102 - implemented #647, option to pass list of default encoding used to
83 encode to/decode from unicode
103 encode to/decode from unicode
84 - added caching layer into RSS/ATOM feeds.
104 - added caching layer into RSS/ATOM feeds.
85 - basic implementation of cherry picking changesets for pull request, ref #575
105 - basic implementation of cherry picking changesets for pull request, ref #575
86 - implemented #661 Add option to include diff in RSS feed
106 - implemented #661 Add option to include diff in RSS feed
87 - implemented file history page for showing detailed changelog for a given file
107 - implemented file history page for showing detailed changelog for a given file
88 - implemented #663 Admin/permission: specify default repogroup perms
108 - implemented #663 Admin/permission: specify default repogroup perms
89 - implemented #379 defaults settings page for creation of repositories, locking
109 - implemented #379 defaults settings page for creation of repositories, locking
90 statistics, downloads, repository type
110 statistics, downloads, repository type
91 - implemented #210 filtering of admin journal based on Whoosh Query language
111 - implemented #210 filtering of admin journal based on Whoosh Query language
92 - added parents/children links in changeset viewref #650
112 - added parents/children links in changeset viewref #650
93
113
94 fixes
114 fixes
95 +++++
115 +++++
96
116
97 - fixed git version checker
117 - fixed git version checker
98 - #586 patched basic auth handler to fix issues with git behind proxy
118 - #586 patched basic auth handler to fix issues with git behind proxy
99 - #589 search urlgenerator didn't properly escape special characters
119 - #589 search urlgenerator didn't properly escape special characters
100 - fixed issue #614 Include repo name in delete confirmation dialog
120 - fixed issue #614 Include repo name in delete confirmation dialog
101 - fixed #623: Lang meta-tag doesn't work with C#/C++
121 - fixed #623: Lang meta-tag doesn't work with C#/C++
102 - fixes #612 Double quotes to Single quotes result in bad html in diff
122 - fixes #612 Double quotes to Single quotes result in bad html in diff
103 - fixes #630 git statistics do too much work making them slow.
123 - fixes #630 git statistics do too much work making them slow.
104 - fixes #625 Git-Tags are not displayed in Shortlog
124 - fixes #625 Git-Tags are not displayed in Shortlog
105 - fix for issue #602, enforce str when setting mercurial UI object.
125 - fix for issue #602, enforce str when setting mercurial UI object.
106 When this is used together with mercurial internal translation system
126 When this is used together with mercurial internal translation system
107 it can lead to UnicodeDecodeErrors
127 it can lead to UnicodeDecodeErrors
108 - fixes #645 Fix git handler when doing delete remote branch
128 - fixes #645 Fix git handler when doing delete remote branch
109 - implements #649 added two seperate method for author and commiter to VCS
129 - implements #649 added two seperate method for author and commiter to VCS
110 changeset class switch author for git backed to be the real author not commiter
130 changeset class switch author for git backed to be the real author not commiter
111 - fix issue #504 RhodeCode is showing different versions of README on
131 - fix issue #504 RhodeCode is showing different versions of README on
112 different summary page loads
132 different summary page loads
113 - implemented #658 Changing username in LDAP-Mode should not be allowed.
133 - implemented #658 Changing username in LDAP-Mode should not be allowed.
114 - fixes #652 switch to generator approach when doing file annotation to prevent
134 - fixes #652 switch to generator approach when doing file annotation to prevent
115 huge memory consumption
135 huge memory consumption
116 - fixes #666 move lockkey path location to cache_dir to ensure this path is
136 - fixes #666 move lockkey path location to cache_dir to ensure this path is
117 always writable for rhodecode server
137 always writable for rhodecode server
118 - many more small fixes and improvements
138 - many more small fixes and improvements
119 - fixed issues with recursive scans on removed repositories that could take
139 - fixed issues with recursive scans on removed repositories that could take
120 long time on instance start
140 long time on instance start
121
141
122 1.4.4 (**2012-10-08**)
142 1.4.4 (**2012-10-08**)
123 ----------------------
143 ----------------------
124
144
125 news
145 news
126 ++++
146 ++++
127
147
128 - obfuscate db password in logs for engine connection string
148 - obfuscate db password in logs for engine connection string
129 - #574 Show pull request status also in shortlog (if any)
149 - #574 Show pull request status also in shortlog (if any)
130 - remember selected tab in my account page
150 - remember selected tab in my account page
131 - Bumped mercurial version to 2.3.2
151 - Bumped mercurial version to 2.3.2
132 - #595 rcextension hook for repository delete
152 - #595 rcextension hook for repository delete
133
153
134 fixes
154 fixes
135 +++++
155 +++++
136
156
137 - Add git version detection to warn users that Git used in system is to
157 - Add git version detection to warn users that Git used in system is to
138 old. Ref #588 - also show git version in system details in settings page
158 old. Ref #588 - also show git version in system details in settings page
139 - fixed files quick filter links
159 - fixed files quick filter links
140 - #590 Add GET flag that controls the way the diff are generated, for pull
160 - #590 Add GET flag that controls the way the diff are generated, for pull
141 requests we want to use non-bundle based diffs, That are far better for
161 requests we want to use non-bundle based diffs, That are far better for
142 doing code reviews. The /compare url still uses bundle compare for full
162 doing code reviews. The /compare url still uses bundle compare for full
143 comparison including the incoming changesets
163 comparison including the incoming changesets
144 - Fixed #585, checks for status of revision where to strict, and made
164 - Fixed #585, checks for status of revision where to strict, and made
145 opening pull request with those revision impossible due to previously set
165 opening pull request with those revision impossible due to previously set
146 status. Checks now are made also for the repository.
166 status. Checks now are made also for the repository.
147 - fixes #591 git backend was causing encoding errors when handling binary
167 - fixes #591 git backend was causing encoding errors when handling binary
148 files - added a test case for VCS lib tests
168 files - added a test case for VCS lib tests
149 - fixed #597 commits in future get negative age.
169 - fixed #597 commits in future get negative age.
150 - fixed #598 API docs methods had wrong members parameter as returned data
170 - fixed #598 API docs methods had wrong members parameter as returned data
151
171
152 1.4.3 (**2012-09-28**)
172 1.4.3 (**2012-09-28**)
153 ----------------------
173 ----------------------
154
174
155 news
175 news
156 ++++
176 ++++
157
177
158 - #558 Added config file to hooks extra data
178 - #558 Added config file to hooks extra data
159 - bumped mercurial version to 2.3.1
179 - bumped mercurial version to 2.3.1
160 - #518 added possibility of specifying multiple patterns for issues
180 - #518 added possibility of specifying multiple patterns for issues
161 - update codemirror to latest version
181 - update codemirror to latest version
162
182
163 fixes
183 fixes
164 +++++
184 +++++
165
185
166 - fixed #570 explicit users group permissions can overwrite owner permissions
186 - fixed #570 explicit users group permissions can overwrite owner permissions
167 - fixed #578 set proper PATH with current Python for Git
187 - fixed #578 set proper PATH with current Python for Git
168 hooks to execute within same Python as RhodeCode
188 hooks to execute within same Python as RhodeCode
169 - fixed issue with Git bare repos that ends with .git in name
189 - fixed issue with Git bare repos that ends with .git in name
170
190
171 1.4.2 (**2012-09-12**)
191 1.4.2 (**2012-09-12**)
172 ----------------------
192 ----------------------
173
193
174 news
194 news
175 ++++
195 ++++
176
196
177 - added option to menu to quick lock/unlock repository for users that have
197 - added option to menu to quick lock/unlock repository for users that have
178 write access to
198 write access to
179 - Implemented permissions for writing to repo
199 - Implemented permissions for writing to repo
180 groups. Now only write access to group allows to create a repostiory
200 groups. Now only write access to group allows to create a repostiory
181 within that group
201 within that group
182 - #565 Add support for {netloc} and {scheme} to alternative_gravatar_url
202 - #565 Add support for {netloc} and {scheme} to alternative_gravatar_url
183 - updated translation for zh_CN
203 - updated translation for zh_CN
184
204
185 fixes
205 fixes
186 +++++
206 +++++
187
207
188 - fixed visual permissions check on repos groups inside groups
208 - fixed visual permissions check on repos groups inside groups
189 - fixed issues with non-ascii search terms in search, and indexers
209 - fixed issues with non-ascii search terms in search, and indexers
190 - fixed parsing of page number in GET parameters
210 - fixed parsing of page number in GET parameters
191 - fixed issues with generating pull-request overview for repos with
211 - fixed issues with generating pull-request overview for repos with
192 bookmarks and tags, also preview doesn't loose chosen revision from
212 bookmarks and tags, also preview doesn't loose chosen revision from
193 select dropdown
213 select dropdown
194
214
195 1.4.1 (**2012-09-07**)
215 1.4.1 (**2012-09-07**)
196 ----------------------
216 ----------------------
197
217
198 news
218 news
199 ++++
219 ++++
200
220
201 - always put a comment about code-review status change even if user send
221 - always put a comment about code-review status change even if user send
202 empty data
222 empty data
203 - modified_on column saves repository update and it's going to be used
223 - modified_on column saves repository update and it's going to be used
204 later for light version of main page ref #500
224 later for light version of main page ref #500
205 - pull request notifications send much nicer emails with details about pull
225 - pull request notifications send much nicer emails with details about pull
206 request
226 request
207 - #551 show breadcrumbs in summary view for repositories inside a group
227 - #551 show breadcrumbs in summary view for repositories inside a group
208
228
209 fixes
229 fixes
210 +++++
230 +++++
211
231
212 - fixed migrations of permissions that can lead to inconsistency.
232 - fixed migrations of permissions that can lead to inconsistency.
213 Some users sent feedback that after upgrading from older versions issues
233 Some users sent feedback that after upgrading from older versions issues
214 with updating default permissions occurred. RhodeCode detects that now and
234 with updating default permissions occurred. RhodeCode detects that now and
215 resets default user permission to initial state if there is a need for that.
235 resets default user permission to initial state if there is a need for that.
216 Also forces users to set the default value for new forking permission.
236 Also forces users to set the default value for new forking permission.
217 - #535 improved apache wsgi example configuration in docs
237 - #535 improved apache wsgi example configuration in docs
218 - fixes #550 mercurial repositories comparision failed when origin repo had
238 - fixes #550 mercurial repositories comparision failed when origin repo had
219 additional not-common changesets
239 additional not-common changesets
220 - fixed status of code-review in preview windows of pull request
240 - fixed status of code-review in preview windows of pull request
221 - git forks were not initialized at bare repos
241 - git forks were not initialized at bare repos
222 - fixes #555 fixes issues with comparing non-related repositories
242 - fixes #555 fixes issues with comparing non-related repositories
223 - fixes #557 follower counter always counts up
243 - fixes #557 follower counter always counts up
224 - fixed issue #560 require push ssl checkbox wasn't shown when option was
244 - fixed issue #560 require push ssl checkbox wasn't shown when option was
225 enabled
245 enabled
226 - fixed #559
246 - fixed #559
227 - fixed issue #559 fixed bug in routing that mapped repo names with <name>_<num> in name as
247 - fixed issue #559 fixed bug in routing that mapped repo names with <name>_<num> in name as
228 if it was a request to url by repository ID
248 if it was a request to url by repository ID
229
249
230 1.4.0 (**2012-09-03**)
250 1.4.0 (**2012-09-03**)
231 ----------------------
251 ----------------------
232
252
233 news
253 news
234 ++++
254 ++++
235
255
236 - new codereview system
256 - new codereview system
237 - email map, allowing users to have multiple email addresses mapped into
257 - email map, allowing users to have multiple email addresses mapped into
238 their accounts
258 their accounts
239 - improved git-hook system. Now all actions for git are logged into journal
259 - improved git-hook system. Now all actions for git are logged into journal
240 including pushed revisions, user and IP address
260 including pushed revisions, user and IP address
241 - changed setup-app into setup-rhodecode and added default options to it.
261 - changed setup-app into setup-rhodecode and added default options to it.
242 - new git repos are created as bare now by default
262 - new git repos are created as bare now by default
243 - #464 added links to groups in permission box
263 - #464 added links to groups in permission box
244 - #465 mentions autocomplete inside comments boxes
264 - #465 mentions autocomplete inside comments boxes
245 - #469 added --update-only option to whoosh to re-index only given list
265 - #469 added --update-only option to whoosh to re-index only given list
246 of repos in index
266 of repos in index
247 - rhodecode-api CLI client
267 - rhodecode-api CLI client
248 - new git http protocol replaced buggy dulwich implementation.
268 - new git http protocol replaced buggy dulwich implementation.
249 Now based on pygrack & gitweb
269 Now based on pygrack & gitweb
250 - Improved RSS/ATOM feeds. Discoverable by browsers using proper headers, and
270 - Improved RSS/ATOM feeds. Discoverable by browsers using proper headers, and
251 reformated based on user suggestions. Additional rss/atom feeds for user
271 reformated based on user suggestions. Additional rss/atom feeds for user
252 journal
272 journal
253 - various i18n improvements
273 - various i18n improvements
254 - #478 permissions overview for admin in user edit view
274 - #478 permissions overview for admin in user edit view
255 - File view now displays small gravatars off all authors of given file
275 - File view now displays small gravatars off all authors of given file
256 - Implemented landing revisions. Each repository will get landing_rev attribute
276 - Implemented landing revisions. Each repository will get landing_rev attribute
257 that defines 'default' revision/branch for generating readme files
277 that defines 'default' revision/branch for generating readme files
258 - Implemented #509, RhodeCode enforces SSL for push/pulling if requested at
278 - Implemented #509, RhodeCode enforces SSL for push/pulling if requested at
259 earliest possible call.
279 earliest possible call.
260 - Import remote svn repositories to mercurial using hgsubversion.
280 - Import remote svn repositories to mercurial using hgsubversion.
261 - Fixed #508 RhodeCode now has a option to explicitly set forking permissions
281 - Fixed #508 RhodeCode now has a option to explicitly set forking permissions
262 - RhodeCode can use alternative server for generating avatar icons
282 - RhodeCode can use alternative server for generating avatar icons
263 - implemented repositories locking. Pull locks, push unlocks. Also can be done
283 - implemented repositories locking. Pull locks, push unlocks. Also can be done
264 via API calls
284 via API calls
265 - #538 form for permissions can handle multiple users at once
285 - #538 form for permissions can handle multiple users at once
266
286
267 fixes
287 fixes
268 +++++
288 +++++
269
289
270 - improved translations
290 - improved translations
271 - fixes issue #455 Creating an archive generates an exception on Windows
291 - fixes issue #455 Creating an archive generates an exception on Windows
272 - fixes #448 Download ZIP archive keeps file in /tmp open and results
292 - fixes #448 Download ZIP archive keeps file in /tmp open and results
273 in out of disk space
293 in out of disk space
274 - fixes issue #454 Search results under Windows include proceeding
294 - fixes issue #454 Search results under Windows include proceeding
275 backslash
295 backslash
276 - fixed issue #450. Rhodecode no longer will crash when bad revision is
296 - fixed issue #450. Rhodecode no longer will crash when bad revision is
277 present in journal data.
297 present in journal data.
278 - fix for issue #417, git execution was broken on windows for certain
298 - fix for issue #417, git execution was broken on windows for certain
279 commands.
299 commands.
280 - fixed #413. Don't disable .git directory for bare repos on deleting
300 - fixed #413. Don't disable .git directory for bare repos on deleting
281 - fixed issue #459. Changed the way of obtaining logger in reindex task.
301 - fixed issue #459. Changed the way of obtaining logger in reindex task.
282 - fixed #453 added ID field in whoosh SCHEMA that solves the issue of
302 - fixed #453 added ID field in whoosh SCHEMA that solves the issue of
283 reindexing modified files
303 reindexing modified files
284 - fixed #481 rhodecode emails are sent without Date header
304 - fixed #481 rhodecode emails are sent without Date header
285 - fixed #458 wrong count when no repos are present
305 - fixed #458 wrong count when no repos are present
286 - fixed issue #492 missing `\ No newline at end of file` test at the end of
306 - fixed issue #492 missing `\ No newline at end of file` test at the end of
287 new chunk in html diff
307 new chunk in html diff
288 - full text search now works also for commit messages
308 - full text search now works also for commit messages
289
309
290 1.3.6 (**2012-05-17**)
310 1.3.6 (**2012-05-17**)
291 ----------------------
311 ----------------------
292
312
293 news
313 news
294 ++++
314 ++++
295
315
296 - chinese traditional translation
316 - chinese traditional translation
297 - changed setup-app into setup-rhodecode and added arguments for auto-setup
317 - changed setup-app into setup-rhodecode and added arguments for auto-setup
298 mode that doesn't need user interaction
318 mode that doesn't need user interaction
299
319
300 fixes
320 fixes
301 +++++
321 +++++
302
322
303 - fixed no scm found warning
323 - fixed no scm found warning
304 - fixed __future__ import error on rcextensions
324 - fixed __future__ import error on rcextensions
305 - made simplejson required lib for speedup on JSON encoding
325 - made simplejson required lib for speedup on JSON encoding
306 - fixes #449 bad regex could get more than revisions from parsing history
326 - fixes #449 bad regex could get more than revisions from parsing history
307 - don't clear DB session when CELERY_EAGER is turned ON
327 - don't clear DB session when CELERY_EAGER is turned ON
308
328
309 1.3.5 (**2012-05-10**)
329 1.3.5 (**2012-05-10**)
310 ----------------------
330 ----------------------
311
331
312 news
332 news
313 ++++
333 ++++
314
334
315 - use ext_json for json module
335 - use ext_json for json module
316 - unified annotation view with file source view
336 - unified annotation view with file source view
317 - notification improvements, better inbox + css
337 - notification improvements, better inbox + css
318 - #419 don't strip passwords for login forms, make rhodecode
338 - #419 don't strip passwords for login forms, make rhodecode
319 more compatible with LDAP servers
339 more compatible with LDAP servers
320 - Added HTTP_X_FORWARDED_FOR as another method of extracting
340 - Added HTTP_X_FORWARDED_FOR as another method of extracting
321 IP for pull/push logs. - moved all to base controller
341 IP for pull/push logs. - moved all to base controller
322 - #415: Adding comment to changeset causes reload.
342 - #415: Adding comment to changeset causes reload.
323 Comments are now added via ajax and doesn't reload the page
343 Comments are now added via ajax and doesn't reload the page
324 - #374 LDAP config is discarded when LDAP can't be activated
344 - #374 LDAP config is discarded when LDAP can't be activated
325 - limited push/pull operations are now logged for git in the journal
345 - limited push/pull operations are now logged for git in the journal
326 - bumped mercurial to 2.2.X series
346 - bumped mercurial to 2.2.X series
327 - added support for displaying submodules in file-browser
347 - added support for displaying submodules in file-browser
328 - #421 added bookmarks in changelog view
348 - #421 added bookmarks in changelog view
329
349
330 fixes
350 fixes
331 +++++
351 +++++
332
352
333 - fixed dev-version marker for stable when served from source codes
353 - fixed dev-version marker for stable when served from source codes
334 - fixed missing permission checks on show forks page
354 - fixed missing permission checks on show forks page
335 - #418 cast to unicode fixes in notification objects
355 - #418 cast to unicode fixes in notification objects
336 - #426 fixed mention extracting regex
356 - #426 fixed mention extracting regex
337 - fixed remote-pulling for git remotes remopositories
357 - fixed remote-pulling for git remotes remopositories
338 - fixed #434: Error when accessing files or changesets of a git repository
358 - fixed #434: Error when accessing files or changesets of a git repository
339 with submodules
359 with submodules
340 - fixed issue with empty APIKEYS for users after registration ref. #438
360 - fixed issue with empty APIKEYS for users after registration ref. #438
341 - fixed issue with getting README files from git repositories
361 - fixed issue with getting README files from git repositories
342
362
343 1.3.4 (**2012-03-28**)
363 1.3.4 (**2012-03-28**)
344 ----------------------
364 ----------------------
345
365
346 news
366 news
347 ++++
367 ++++
348
368
349 - Whoosh logging is now controlled by the .ini files logging setup
369 - Whoosh logging is now controlled by the .ini files logging setup
350 - added clone-url into edit form on /settings page
370 - added clone-url into edit form on /settings page
351 - added help text into repo add/edit forms
371 - added help text into repo add/edit forms
352 - created rcextensions module with additional mappings (ref #322) and
372 - created rcextensions module with additional mappings (ref #322) and
353 post push/pull/create repo hooks callbacks
373 post push/pull/create repo hooks callbacks
354 - implemented #377 Users view for his own permissions on account page
374 - implemented #377 Users view for his own permissions on account page
355 - #399 added inheritance of permissions for users group on repos groups
375 - #399 added inheritance of permissions for users group on repos groups
356 - #401 repository group is automatically pre-selected when adding repos
376 - #401 repository group is automatically pre-selected when adding repos
357 inside a repository group
377 inside a repository group
358 - added alternative HTTP 403 response when client failed to authenticate. Helps
378 - added alternative HTTP 403 response when client failed to authenticate. Helps
359 solving issues with Mercurial and LDAP
379 solving issues with Mercurial and LDAP
360 - #402 removed group prefix from repository name when listing repositories
380 - #402 removed group prefix from repository name when listing repositories
361 inside a group
381 inside a group
362 - added gravatars into permission view and permissions autocomplete
382 - added gravatars into permission view and permissions autocomplete
363 - #347 when running multiple RhodeCode instances, properly invalidates cache
383 - #347 when running multiple RhodeCode instances, properly invalidates cache
364 for all registered servers
384 for all registered servers
365
385
366 fixes
386 fixes
367 +++++
387 +++++
368
388
369 - fixed #390 cache invalidation problems on repos inside group
389 - fixed #390 cache invalidation problems on repos inside group
370 - fixed #385 clone by ID url was loosing proxy prefix in URL
390 - fixed #385 clone by ID url was loosing proxy prefix in URL
371 - fixed some unicode problems with waitress
391 - fixed some unicode problems with waitress
372 - fixed issue with escaping < and > in changeset commits
392 - fixed issue with escaping < and > in changeset commits
373 - fixed error occurring during recursive group creation in API
393 - fixed error occurring during recursive group creation in API
374 create_repo function
394 create_repo function
375 - fixed #393 py2.5 fixes for routes url generator
395 - fixed #393 py2.5 fixes for routes url generator
376 - fixed #397 Private repository groups shows up before login
396 - fixed #397 Private repository groups shows up before login
377 - fixed #396 fixed problems with revoking users in nested groups
397 - fixed #396 fixed problems with revoking users in nested groups
378 - fixed mysql unicode issues + specified InnoDB as default engine with
398 - fixed mysql unicode issues + specified InnoDB as default engine with
379 utf8 charset
399 utf8 charset
380 - #406 trim long branch/tag names in changelog to not break UI
400 - #406 trim long branch/tag names in changelog to not break UI
381
401
382 1.3.3 (**2012-03-02**)
402 1.3.3 (**2012-03-02**)
383 ----------------------
403 ----------------------
384
404
385 news
405 news
386 ++++
406 ++++
387
407
388
408
389 fixes
409 fixes
390 +++++
410 +++++
391
411
392 - fixed some python2.5 compatibility issues
412 - fixed some python2.5 compatibility issues
393 - fixed issues with removed repos was accidentally added as groups, after
413 - fixed issues with removed repos was accidentally added as groups, after
394 full rescan of paths
414 full rescan of paths
395 - fixes #376 Cannot edit user (using container auth)
415 - fixes #376 Cannot edit user (using container auth)
396 - fixes #378 Invalid image urls on changeset screen with proxy-prefix
416 - fixes #378 Invalid image urls on changeset screen with proxy-prefix
397 configuration
417 configuration
398 - fixed initial sorting of repos inside repo group
418 - fixed initial sorting of repos inside repo group
399 - fixes issue when user tried to resubmit same permission into user/user_groups
419 - fixes issue when user tried to resubmit same permission into user/user_groups
400 - bumped beaker version that fixes #375 leap error bug
420 - bumped beaker version that fixes #375 leap error bug
401 - fixed raw_changeset for git. It was generated with hg patch headers
421 - fixed raw_changeset for git. It was generated with hg patch headers
402 - fixed vcs issue with last_changeset for filenodes
422 - fixed vcs issue with last_changeset for filenodes
403 - fixed missing commit after hook delete
423 - fixed missing commit after hook delete
404 - fixed #372 issues with git operation detection that caused a security issue
424 - fixed #372 issues with git operation detection that caused a security issue
405 for git repos
425 for git repos
406
426
407 1.3.2 (**2012-02-28**)
427 1.3.2 (**2012-02-28**)
408 ----------------------
428 ----------------------
409
429
410 news
430 news
411 ++++
431 ++++
412
432
413
433
414 fixes
434 fixes
415 +++++
435 +++++
416
436
417 - fixed git protocol issues with repos-groups
437 - fixed git protocol issues with repos-groups
418 - fixed git remote repos validator that prevented from cloning remote git repos
438 - fixed git remote repos validator that prevented from cloning remote git repos
419 - fixes #370 ending slashes fixes for repo and groups
439 - fixes #370 ending slashes fixes for repo and groups
420 - fixes #368 improved git-protocol detection to handle other clients
440 - fixes #368 improved git-protocol detection to handle other clients
421 - fixes #366 When Setting Repository Group To Blank Repo Group Wont Be
441 - fixes #366 When Setting Repository Group To Blank Repo Group Wont Be
422 Moved To Root
442 Moved To Root
423 - fixes #371 fixed issues with beaker/sqlalchemy and non-ascii cache keys
443 - fixes #371 fixed issues with beaker/sqlalchemy and non-ascii cache keys
424 - fixed #373 missing cascade drop on user_group_to_perm table
444 - fixed #373 missing cascade drop on user_group_to_perm table
425
445
426 1.3.1 (**2012-02-27**)
446 1.3.1 (**2012-02-27**)
427 ----------------------
447 ----------------------
428
448
429 news
449 news
430 ++++
450 ++++
431
451
432
452
433 fixes
453 fixes
434 +++++
454 +++++
435
455
436 - redirection loop occurs when remember-me wasn't checked during login
456 - redirection loop occurs when remember-me wasn't checked during login
437 - fixes issues with git blob history generation
457 - fixes issues with git blob history generation
438 - don't fetch branch for git in file history dropdown. Causes unneeded slowness
458 - don't fetch branch for git in file history dropdown. Causes unneeded slowness
439
459
440 1.3.0 (**2012-02-26**)
460 1.3.0 (**2012-02-26**)
441 ----------------------
461 ----------------------
442
462
443 news
463 news
444 ++++
464 ++++
445
465
446 - code review, inspired by github code-comments
466 - code review, inspired by github code-comments
447 - #215 rst and markdown README files support
467 - #215 rst and markdown README files support
448 - #252 Container-based and proxy pass-through authentication support
468 - #252 Container-based and proxy pass-through authentication support
449 - #44 branch browser. Filtering of changelog by branches
469 - #44 branch browser. Filtering of changelog by branches
450 - mercurial bookmarks support
470 - mercurial bookmarks support
451 - new hover top menu, optimized to add maximum size for important views
471 - new hover top menu, optimized to add maximum size for important views
452 - configurable clone url template with possibility to specify protocol like
472 - configurable clone url template with possibility to specify protocol like
453 ssh:// or http:// and also manually alter other parts of clone_url.
473 ssh:// or http:// and also manually alter other parts of clone_url.
454 - enabled largefiles extension by default
474 - enabled largefiles extension by default
455 - optimized summary file pages and saved a lot of unused space in them
475 - optimized summary file pages and saved a lot of unused space in them
456 - #239 option to manually mark repository as fork
476 - #239 option to manually mark repository as fork
457 - #320 mapping of commit authors to RhodeCode users
477 - #320 mapping of commit authors to RhodeCode users
458 - #304 hashes are displayed using monospace font
478 - #304 hashes are displayed using monospace font
459 - diff configuration, toggle white lines and context lines
479 - diff configuration, toggle white lines and context lines
460 - #307 configurable diffs, whitespace toggle, increasing context lines
480 - #307 configurable diffs, whitespace toggle, increasing context lines
461 - sorting on branches, tags and bookmarks using YUI datatable
481 - sorting on branches, tags and bookmarks using YUI datatable
462 - improved file filter on files page
482 - improved file filter on files page
463 - implements #330 api method for listing nodes ar particular revision
483 - implements #330 api method for listing nodes ar particular revision
464 - #73 added linking issues in commit messages to chosen issue tracker url
484 - #73 added linking issues in commit messages to chosen issue tracker url
465 based on user defined regular expression
485 based on user defined regular expression
466 - added linking of changesets in commit messages
486 - added linking of changesets in commit messages
467 - new compact changelog with expandable commit messages
487 - new compact changelog with expandable commit messages
468 - firstname and lastname are optional in user creation
488 - firstname and lastname are optional in user creation
469 - #348 added post-create repository hook
489 - #348 added post-create repository hook
470 - #212 global encoding settings is now configurable from .ini files
490 - #212 global encoding settings is now configurable from .ini files
471 - #227 added repository groups permissions
491 - #227 added repository groups permissions
472 - markdown gets codehilite extensions
492 - markdown gets codehilite extensions
473 - new API methods, delete_repositories, grante/revoke permissions for groups
493 - new API methods, delete_repositories, grante/revoke permissions for groups
474 and repos
494 and repos
475
495
476
496
477 fixes
497 fixes
478 +++++
498 +++++
479
499
480 - rewrote dbsession management for atomic operations, and better error handling
500 - rewrote dbsession management for atomic operations, and better error handling
481 - fixed sorting of repo tables
501 - fixed sorting of repo tables
482 - #326 escape of special html entities in diffs
502 - #326 escape of special html entities in diffs
483 - normalized user_name => username in api attributes
503 - normalized user_name => username in api attributes
484 - fixes #298 ldap created users with mixed case emails created conflicts
504 - fixes #298 ldap created users with mixed case emails created conflicts
485 on saving a form
505 on saving a form
486 - fixes issue when owner of a repo couldn't revoke permissions for users
506 - fixes issue when owner of a repo couldn't revoke permissions for users
487 and groups
507 and groups
488 - fixes #271 rare JSON serialization problem with statistics
508 - fixes #271 rare JSON serialization problem with statistics
489 - fixes #337 missing validation check for conflicting names of a group with a
509 - fixes #337 missing validation check for conflicting names of a group with a
490 repositories group
510 repositories group
491 - #340 fixed session problem for mysql and celery tasks
511 - #340 fixed session problem for mysql and celery tasks
492 - fixed #331 RhodeCode mangles repository names if the a repository group
512 - fixed #331 RhodeCode mangles repository names if the a repository group
493 contains the "full path" to the repositories
513 contains the "full path" to the repositories
494 - #355 RhodeCode doesn't store encrypted LDAP passwords
514 - #355 RhodeCode doesn't store encrypted LDAP passwords
495
515
496 1.2.5 (**2012-01-28**)
516 1.2.5 (**2012-01-28**)
497 ----------------------
517 ----------------------
498
518
499 news
519 news
500 ++++
520 ++++
501
521
502 fixes
522 fixes
503 +++++
523 +++++
504
524
505 - #340 Celery complains about MySQL server gone away, added session cleanup
525 - #340 Celery complains about MySQL server gone away, added session cleanup
506 for celery tasks
526 for celery tasks
507 - #341 "scanning for repositories in None" log message during Rescan was missing
527 - #341 "scanning for repositories in None" log message during Rescan was missing
508 a parameter
528 a parameter
509 - fixed creating archives with subrepos. Some hooks were triggered during that
529 - fixed creating archives with subrepos. Some hooks were triggered during that
510 operation leading to crash.
530 operation leading to crash.
511 - fixed missing email in account page.
531 - fixed missing email in account page.
512 - Reverted Mercurial to 2.0.1 for windows due to bug in Mercurial that makes
532 - Reverted Mercurial to 2.0.1 for windows due to bug in Mercurial that makes
513 forking on windows impossible
533 forking on windows impossible
514
534
515 1.2.4 (**2012-01-19**)
535 1.2.4 (**2012-01-19**)
516 ----------------------
536 ----------------------
517
537
518 news
538 news
519 ++++
539 ++++
520
540
521 - RhodeCode is bundled with mercurial series 2.0.X by default, with
541 - RhodeCode is bundled with mercurial series 2.0.X by default, with
522 full support to largefiles extension. Enabled by default in new installations
542 full support to largefiles extension. Enabled by default in new installations
523 - #329 Ability to Add/Remove Groups to/from a Repository via AP
543 - #329 Ability to Add/Remove Groups to/from a Repository via AP
524 - added requires.txt file with requirements
544 - added requires.txt file with requirements
525
545
526 fixes
546 fixes
527 +++++
547 +++++
528
548
529 - fixes db session issues with celery when emailing admins
549 - fixes db session issues with celery when emailing admins
530 - #331 RhodeCode mangles repository names if the a repository group
550 - #331 RhodeCode mangles repository names if the a repository group
531 contains the "full path" to the repositories
551 contains the "full path" to the repositories
532 - #298 Conflicting e-mail addresses for LDAP and RhodeCode users
552 - #298 Conflicting e-mail addresses for LDAP and RhodeCode users
533 - DB session cleanup after hg protocol operations, fixes issues with
553 - DB session cleanup after hg protocol operations, fixes issues with
534 `mysql has gone away` errors
554 `mysql has gone away` errors
535 - #333 doc fixes for get_repo api function
555 - #333 doc fixes for get_repo api function
536 - #271 rare JSON serialization problem with statistics enabled
556 - #271 rare JSON serialization problem with statistics enabled
537 - #337 Fixes issues with validation of repository name conflicting with
557 - #337 Fixes issues with validation of repository name conflicting with
538 a group name. A proper message is now displayed.
558 a group name. A proper message is now displayed.
539 - #292 made ldap_dn in user edit readonly, to get rid of confusion that field
559 - #292 made ldap_dn in user edit readonly, to get rid of confusion that field
540 doesn't work
560 doesn't work
541 - #316 fixes issues with web description in hgrc files
561 - #316 fixes issues with web description in hgrc files
542
562
543 1.2.3 (**2011-11-02**)
563 1.2.3 (**2011-11-02**)
544 ----------------------
564 ----------------------
545
565
546 news
566 news
547 ++++
567 ++++
548
568
549 - added option to manage repos group for non admin users
569 - added option to manage repos group for non admin users
550 - added following API methods for get_users, create_user, get_users_groups,
570 - added following API methods for get_users, create_user, get_users_groups,
551 get_users_group, create_users_group, add_user_to_users_groups, get_repos,
571 get_users_group, create_users_group, add_user_to_users_groups, get_repos,
552 get_repo, create_repo, add_user_to_repo
572 get_repo, create_repo, add_user_to_repo
553 - implements #237 added password confirmation for my account
573 - implements #237 added password confirmation for my account
554 and admin edit user.
574 and admin edit user.
555 - implements #291 email notification for global events are now sent to all
575 - implements #291 email notification for global events are now sent to all
556 administrator users, and global config email.
576 administrator users, and global config email.
557
577
558 fixes
578 fixes
559 +++++
579 +++++
560
580
561 - added option for passing auth method for smtp mailer
581 - added option for passing auth method for smtp mailer
562 - #276 issue with adding a single user with id>10 to usergroups
582 - #276 issue with adding a single user with id>10 to usergroups
563 - #277 fixes windows LDAP settings in which missing values breaks the ldap auth
583 - #277 fixes windows LDAP settings in which missing values breaks the ldap auth
564 - #288 fixes managing of repos in a group for non admin user
584 - #288 fixes managing of repos in a group for non admin user
565
585
566 1.2.2 (**2011-10-17**)
586 1.2.2 (**2011-10-17**)
567 ----------------------
587 ----------------------
568
588
569 news
589 news
570 ++++
590 ++++
571
591
572 - #226 repo groups are available by path instead of numerical id
592 - #226 repo groups are available by path instead of numerical id
573
593
574 fixes
594 fixes
575 +++++
595 +++++
576
596
577 - #259 Groups with the same name but with different parent group
597 - #259 Groups with the same name but with different parent group
578 - #260 Put repo in group, then move group to another group -> repo becomes unavailable
598 - #260 Put repo in group, then move group to another group -> repo becomes unavailable
579 - #258 RhodeCode 1.2 assumes egg folder is writable (lockfiles problems)
599 - #258 RhodeCode 1.2 assumes egg folder is writable (lockfiles problems)
580 - #265 ldap save fails sometimes on converting attributes to booleans,
600 - #265 ldap save fails sometimes on converting attributes to booleans,
581 added getter and setter into model that will prevent from this on db model level
601 added getter and setter into model that will prevent from this on db model level
582 - fixed problems with timestamps issues #251 and #213
602 - fixed problems with timestamps issues #251 and #213
583 - fixes #266 RhodeCode allows to create repo with the same name and in
603 - fixes #266 RhodeCode allows to create repo with the same name and in
584 the same parent as group
604 the same parent as group
585 - fixes #245 Rescan of the repositories on Windows
605 - fixes #245 Rescan of the repositories on Windows
586 - fixes #248 cannot edit repos inside a group on windows
606 - fixes #248 cannot edit repos inside a group on windows
587 - fixes #219 forking problems on windows
607 - fixes #219 forking problems on windows
588
608
589 1.2.1 (**2011-10-08**)
609 1.2.1 (**2011-10-08**)
590 ----------------------
610 ----------------------
591
611
592 news
612 news
593 ++++
613 ++++
594
614
595
615
596 fixes
616 fixes
597 +++++
617 +++++
598
618
599 - fixed problems with basic auth and push problems
619 - fixed problems with basic auth and push problems
600 - gui fixes
620 - gui fixes
601 - fixed logger
621 - fixed logger
602
622
603 1.2.0 (**2011-10-07**)
623 1.2.0 (**2011-10-07**)
604 ----------------------
624 ----------------------
605
625
606 news
626 news
607 ++++
627 ++++
608
628
609 - implemented #47 repository groups
629 - implemented #47 repository groups
610 - implemented #89 Can setup google analytics code from settings menu
630 - implemented #89 Can setup google analytics code from settings menu
611 - implemented #91 added nicer looking archive urls with more download options
631 - implemented #91 added nicer looking archive urls with more download options
612 like tags, branches
632 like tags, branches
613 - implemented #44 into file browsing, and added follow branch option
633 - implemented #44 into file browsing, and added follow branch option
614 - implemented #84 downloads can be enabled/disabled for each repository
634 - implemented #84 downloads can be enabled/disabled for each repository
615 - anonymous repository can be cloned without having to pass default:default
635 - anonymous repository can be cloned without having to pass default:default
616 into clone url
636 into clone url
617 - fixed #90 whoosh indexer can index chooses repositories passed in command
637 - fixed #90 whoosh indexer can index chooses repositories passed in command
618 line
638 line
619 - extended journal with day aggregates and paging
639 - extended journal with day aggregates and paging
620 - implemented #107 source code lines highlight ranges
640 - implemented #107 source code lines highlight ranges
621 - implemented #93 customizable changelog on combined revision ranges -
641 - implemented #93 customizable changelog on combined revision ranges -
622 equivalent of githubs compare view
642 equivalent of githubs compare view
623 - implemented #108 extended and more powerful LDAP configuration
643 - implemented #108 extended and more powerful LDAP configuration
624 - implemented #56 users groups
644 - implemented #56 users groups
625 - major code rewrites optimized codes for speed and memory usage
645 - major code rewrites optimized codes for speed and memory usage
626 - raw and diff downloads are now in git format
646 - raw and diff downloads are now in git format
627 - setup command checks for write access to given path
647 - setup command checks for write access to given path
628 - fixed many issues with international characters and unicode. It uses utf8
648 - fixed many issues with international characters and unicode. It uses utf8
629 decode with replace to provide less errors even with non utf8 encoded strings
649 decode with replace to provide less errors even with non utf8 encoded strings
630 - #125 added API KEY access to feeds
650 - #125 added API KEY access to feeds
631 - #109 Repository can be created from external Mercurial link (aka. remote
651 - #109 Repository can be created from external Mercurial link (aka. remote
632 repository, and manually updated (via pull) from admin panel
652 repository, and manually updated (via pull) from admin panel
633 - beta git support - push/pull server + basic view for git repos
653 - beta git support - push/pull server + basic view for git repos
634 - added followers page and forks page
654 - added followers page and forks page
635 - server side file creation (with binary file upload interface)
655 - server side file creation (with binary file upload interface)
636 and edition with commits powered by codemirror
656 and edition with commits powered by codemirror
637 - #111 file browser file finder, quick lookup files on whole file tree
657 - #111 file browser file finder, quick lookup files on whole file tree
638 - added quick login sliding menu into main page
658 - added quick login sliding menu into main page
639 - changelog uses lazy loading of affected files details, in some scenarios
659 - changelog uses lazy loading of affected files details, in some scenarios
640 this can improve speed of changelog page dramatically especially for
660 this can improve speed of changelog page dramatically especially for
641 larger repositories.
661 larger repositories.
642 - implements #214 added support for downloading subrepos in download menu.
662 - implements #214 added support for downloading subrepos in download menu.
643 - Added basic API for direct operations on rhodecode via JSON
663 - Added basic API for direct operations on rhodecode via JSON
644 - Implemented advanced hook management
664 - Implemented advanced hook management
645
665
646 fixes
666 fixes
647 +++++
667 +++++
648
668
649 - fixed file browser bug, when switching into given form revision the url was
669 - fixed file browser bug, when switching into given form revision the url was
650 not changing
670 not changing
651 - fixed propagation to error controller on simplehg and simplegit middlewares
671 - fixed propagation to error controller on simplehg and simplegit middlewares
652 - fixed error when trying to make a download on empty repository
672 - fixed error when trying to make a download on empty repository
653 - fixed problem with '[' chars in commit messages in journal
673 - fixed problem with '[' chars in commit messages in journal
654 - fixed #99 Unicode errors, on file node paths with non utf-8 characters
674 - fixed #99 Unicode errors, on file node paths with non utf-8 characters
655 - journal fork fixes
675 - journal fork fixes
656 - removed issue with space inside renamed repository after deletion
676 - removed issue with space inside renamed repository after deletion
657 - fixed strange issue on formencode imports
677 - fixed strange issue on formencode imports
658 - fixed #126 Deleting repository on Windows, rename used incompatible chars.
678 - fixed #126 Deleting repository on Windows, rename used incompatible chars.
659 - #150 fixes for errors on repositories mapped in db but corrupted in
679 - #150 fixes for errors on repositories mapped in db but corrupted in
660 filesystem
680 filesystem
661 - fixed problem with ascendant characters in realm #181
681 - fixed problem with ascendant characters in realm #181
662 - fixed problem with sqlite file based database connection pool
682 - fixed problem with sqlite file based database connection pool
663 - whoosh indexer and code stats share the same dynamic extensions map
683 - whoosh indexer and code stats share the same dynamic extensions map
664 - fixes #188 - relationship delete of repo_to_perm entry on user removal
684 - fixes #188 - relationship delete of repo_to_perm entry on user removal
665 - fixes issue #189 Trending source files shows "show more" when no more exist
685 - fixes issue #189 Trending source files shows "show more" when no more exist
666 - fixes issue #197 Relative paths for pidlocks
686 - fixes issue #197 Relative paths for pidlocks
667 - fixes issue #198 password will require only 3 chars now for login form
687 - fixes issue #198 password will require only 3 chars now for login form
668 - fixes issue #199 wrong redirection for non admin users after creating a repository
688 - fixes issue #199 wrong redirection for non admin users after creating a repository
669 - fixes issues #202, bad db constraint made impossible to attach same group
689 - fixes issues #202, bad db constraint made impossible to attach same group
670 more than one time. Affects only mysql/postgres
690 more than one time. Affects only mysql/postgres
671 - fixes #218 os.kill patch for windows was missing sig param
691 - fixes #218 os.kill patch for windows was missing sig param
672 - improved rendering of dag (they are not trimmed anymore when number of
692 - improved rendering of dag (they are not trimmed anymore when number of
673 heads exceeds 5)
693 heads exceeds 5)
674
694
675 1.1.8 (**2011-04-12**)
695 1.1.8 (**2011-04-12**)
676 ----------------------
696 ----------------------
677
697
678 news
698 news
679 ++++
699 ++++
680
700
681 - improved windows support
701 - improved windows support
682
702
683 fixes
703 fixes
684 +++++
704 +++++
685
705
686 - fixed #140 freeze of python dateutil library, since new version is python2.x
706 - fixed #140 freeze of python dateutil library, since new version is python2.x
687 incompatible
707 incompatible
688 - setup-app will check for write permission in given path
708 - setup-app will check for write permission in given path
689 - cleaned up license info issue #149
709 - cleaned up license info issue #149
690 - fixes for issues #137,#116 and problems with unicode and accented characters.
710 - fixes for issues #137,#116 and problems with unicode and accented characters.
691 - fixes crashes on gravatar, when passed in email as unicode
711 - fixes crashes on gravatar, when passed in email as unicode
692 - fixed tooltip flickering problems
712 - fixed tooltip flickering problems
693 - fixed came_from redirection on windows
713 - fixed came_from redirection on windows
694 - fixed logging modules, and sql formatters
714 - fixed logging modules, and sql formatters
695 - windows fixes for os.kill issue #133
715 - windows fixes for os.kill issue #133
696 - fixes path splitting for windows issues #148
716 - fixes path splitting for windows issues #148
697 - fixed issue #143 wrong import on migration to 1.1.X
717 - fixed issue #143 wrong import on migration to 1.1.X
698 - fixed problems with displaying binary files, thanks to Thomas Waldmann
718 - fixed problems with displaying binary files, thanks to Thomas Waldmann
699 - removed name from archive files since it's breaking ui for long repo names
719 - removed name from archive files since it's breaking ui for long repo names
700 - fixed issue with archive headers sent to browser, thanks to Thomas Waldmann
720 - fixed issue with archive headers sent to browser, thanks to Thomas Waldmann
701 - fixed compatibility for 1024px displays, and larger dpi settings, thanks to
721 - fixed compatibility for 1024px displays, and larger dpi settings, thanks to
702 Thomas Waldmann
722 Thomas Waldmann
703 - fixed issue #166 summary pager was skipping 10 revisions on second page
723 - fixed issue #166 summary pager was skipping 10 revisions on second page
704
724
705
725
706 1.1.7 (**2011-03-23**)
726 1.1.7 (**2011-03-23**)
707 ----------------------
727 ----------------------
708
728
709 news
729 news
710 ++++
730 ++++
711
731
712 fixes
732 fixes
713 +++++
733 +++++
714
734
715 - fixed (again) #136 installation support for FreeBSD
735 - fixed (again) #136 installation support for FreeBSD
716
736
717
737
718 1.1.6 (**2011-03-21**)
738 1.1.6 (**2011-03-21**)
719 ----------------------
739 ----------------------
720
740
721 news
741 news
722 ++++
742 ++++
723
743
724 fixes
744 fixes
725 +++++
745 +++++
726
746
727 - fixed #136 installation support for FreeBSD
747 - fixed #136 installation support for FreeBSD
728 - RhodeCode will check for python version during installation
748 - RhodeCode will check for python version during installation
729
749
730 1.1.5 (**2011-03-17**)
750 1.1.5 (**2011-03-17**)
731 ----------------------
751 ----------------------
732
752
733 news
753 news
734 ++++
754 ++++
735
755
736 - basic windows support, by exchanging pybcrypt into sha256 for windows only
756 - basic windows support, by exchanging pybcrypt into sha256 for windows only
737 highly inspired by idea of mantis406
757 highly inspired by idea of mantis406
738
758
739 fixes
759 fixes
740 +++++
760 +++++
741
761
742 - fixed sorting by author in main page
762 - fixed sorting by author in main page
743 - fixed crashes with diffs on binary files
763 - fixed crashes with diffs on binary files
744 - fixed #131 problem with boolean values for LDAP
764 - fixed #131 problem with boolean values for LDAP
745 - fixed #122 mysql problems thanks to striker69
765 - fixed #122 mysql problems thanks to striker69
746 - fixed problem with errors on calling raw/raw_files/annotate functions
766 - fixed problem with errors on calling raw/raw_files/annotate functions
747 with unknown revisions
767 with unknown revisions
748 - fixed returned rawfiles attachment names with international character
768 - fixed returned rawfiles attachment names with international character
749 - cleaned out docs, big thanks to Jason Harris
769 - cleaned out docs, big thanks to Jason Harris
750
770
751 1.1.4 (**2011-02-19**)
771 1.1.4 (**2011-02-19**)
752 ----------------------
772 ----------------------
753
773
754 news
774 news
755 ++++
775 ++++
756
776
757 fixes
777 fixes
758 +++++
778 +++++
759
779
760 - fixed formencode import problem on settings page, that caused server crash
780 - fixed formencode import problem on settings page, that caused server crash
761 when that page was accessed as first after server start
781 when that page was accessed as first after server start
762 - journal fixes
782 - journal fixes
763 - fixed option to access repository just by entering http://server/<repo_name>
783 - fixed option to access repository just by entering http://server/<repo_name>
764
784
765 1.1.3 (**2011-02-16**)
785 1.1.3 (**2011-02-16**)
766 ----------------------
786 ----------------------
767
787
768 news
788 news
769 ++++
789 ++++
770
790
771 - implemented #102 allowing the '.' character in username
791 - implemented #102 allowing the '.' character in username
772 - added option to access repository just by entering http://server/<repo_name>
792 - added option to access repository just by entering http://server/<repo_name>
773 - celery task ignores result for better performance
793 - celery task ignores result for better performance
774
794
775 fixes
795 fixes
776 +++++
796 +++++
777
797
778 - fixed ehlo command and non auth mail servers on smtp_lib. Thanks to
798 - fixed ehlo command and non auth mail servers on smtp_lib. Thanks to
779 apollo13 and Johan Walles
799 apollo13 and Johan Walles
780 - small fixes in journal
800 - small fixes in journal
781 - fixed problems with getting setting for celery from .ini files
801 - fixed problems with getting setting for celery from .ini files
782 - registration, password reset and login boxes share the same title as main
802 - registration, password reset and login boxes share the same title as main
783 application now
803 application now
784 - fixed #113: to high permissions to fork repository
804 - fixed #113: to high permissions to fork repository
785 - fixed problem with '[' chars in commit messages in journal
805 - fixed problem with '[' chars in commit messages in journal
786 - removed issue with space inside renamed repository after deletion
806 - removed issue with space inside renamed repository after deletion
787 - db transaction fixes when filesystem repository creation failed
807 - db transaction fixes when filesystem repository creation failed
788 - fixed #106 relation issues on databases different than sqlite
808 - fixed #106 relation issues on databases different than sqlite
789 - fixed static files paths links to use of url() method
809 - fixed static files paths links to use of url() method
790
810
791 1.1.2 (**2011-01-12**)
811 1.1.2 (**2011-01-12**)
792 ----------------------
812 ----------------------
793
813
794 news
814 news
795 ++++
815 ++++
796
816
797
817
798 fixes
818 fixes
799 +++++
819 +++++
800
820
801 - fixes #98 protection against float division of percentage stats
821 - fixes #98 protection against float division of percentage stats
802 - fixed graph bug
822 - fixed graph bug
803 - forced webhelpers version since it was making troubles during installation
823 - forced webhelpers version since it was making troubles during installation
804
824
805 1.1.1 (**2011-01-06**)
825 1.1.1 (**2011-01-06**)
806 ----------------------
826 ----------------------
807
827
808 news
828 news
809 ++++
829 ++++
810
830
811 - added force https option into ini files for easier https usage (no need to
831 - added force https option into ini files for easier https usage (no need to
812 set server headers with this options)
832 set server headers with this options)
813 - small css updates
833 - small css updates
814
834
815 fixes
835 fixes
816 +++++
836 +++++
817
837
818 - fixed #96 redirect loop on files view on repositories without changesets
838 - fixed #96 redirect loop on files view on repositories without changesets
819 - fixed #97 unicode string passed into server header in special cases (mod_wsgi)
839 - fixed #97 unicode string passed into server header in special cases (mod_wsgi)
820 and server crashed with errors
840 and server crashed with errors
821 - fixed large tooltips problems on main page
841 - fixed large tooltips problems on main page
822 - fixed #92 whoosh indexer is more error proof
842 - fixed #92 whoosh indexer is more error proof
823
843
824 1.1.0 (**2010-12-18**)
844 1.1.0 (**2010-12-18**)
825 ----------------------
845 ----------------------
826
846
827 news
847 news
828 ++++
848 ++++
829
849
830 - rewrite of internals for vcs >=0.1.10
850 - rewrite of internals for vcs >=0.1.10
831 - uses mercurial 1.7 with dotencode disabled for maintaining compatibility
851 - uses mercurial 1.7 with dotencode disabled for maintaining compatibility
832 with older clients
852 with older clients
833 - anonymous access, authentication via ldap
853 - anonymous access, authentication via ldap
834 - performance upgrade for cached repos list - each repository has its own
854 - performance upgrade for cached repos list - each repository has its own
835 cache that's invalidated when needed.
855 cache that's invalidated when needed.
836 - performance upgrades on repositories with large amount of commits (20K+)
856 - performance upgrades on repositories with large amount of commits (20K+)
837 - main page quick filter for filtering repositories
857 - main page quick filter for filtering repositories
838 - user dashboards with ability to follow chosen repositories actions
858 - user dashboards with ability to follow chosen repositories actions
839 - sends email to admin on new user registration
859 - sends email to admin on new user registration
840 - added cache/statistics reset options into repository settings
860 - added cache/statistics reset options into repository settings
841 - more detailed action logger (based on hooks) with pushed changesets lists
861 - more detailed action logger (based on hooks) with pushed changesets lists
842 and options to disable those hooks from admin panel
862 and options to disable those hooks from admin panel
843 - introduced new enhanced changelog for merges that shows more accurate results
863 - introduced new enhanced changelog for merges that shows more accurate results
844 - new improved and faster code stats (based on pygments lexers mapping tables,
864 - new improved and faster code stats (based on pygments lexers mapping tables,
845 showing up to 10 trending sources for each repository. Additionally stats
865 showing up to 10 trending sources for each repository. Additionally stats
846 can be disabled in repository settings.
866 can be disabled in repository settings.
847 - gui optimizations, fixed application width to 1024px
867 - gui optimizations, fixed application width to 1024px
848 - added cut off (for large files/changesets) limit into config files
868 - added cut off (for large files/changesets) limit into config files
849 - whoosh, celeryd, upgrade moved to paster command
869 - whoosh, celeryd, upgrade moved to paster command
850 - other than sqlite database backends can be used
870 - other than sqlite database backends can be used
851
871
852 fixes
872 fixes
853 +++++
873 +++++
854
874
855 - fixes #61 forked repo was showing only after cache expired
875 - fixes #61 forked repo was showing only after cache expired
856 - fixes #76 no confirmation on user deletes
876 - fixes #76 no confirmation on user deletes
857 - fixes #66 Name field misspelled
877 - fixes #66 Name field misspelled
858 - fixes #72 block user removal when he owns repositories
878 - fixes #72 block user removal when he owns repositories
859 - fixes #69 added password confirmation fields
879 - fixes #69 added password confirmation fields
860 - fixes #87 RhodeCode crashes occasionally on updating repository owner
880 - fixes #87 RhodeCode crashes occasionally on updating repository owner
861 - fixes #82 broken annotations on files with more than 1 blank line at the end
881 - fixes #82 broken annotations on files with more than 1 blank line at the end
862 - a lot of fixes and tweaks for file browser
882 - a lot of fixes and tweaks for file browser
863 - fixed detached session issues
883 - fixed detached session issues
864 - fixed when user had no repos he would see all repos listed in my account
884 - fixed when user had no repos he would see all repos listed in my account
865 - fixed ui() instance bug when global hgrc settings was loaded for server
885 - fixed ui() instance bug when global hgrc settings was loaded for server
866 instance and all hgrc options were merged with our db ui() object
886 instance and all hgrc options were merged with our db ui() object
867 - numerous small bugfixes
887 - numerous small bugfixes
868
888
869 (special thanks for TkSoh for detailed feedback)
889 (special thanks for TkSoh for detailed feedback)
870
890
871
891
872 1.0.2 (**2010-11-12**)
892 1.0.2 (**2010-11-12**)
873 ----------------------
893 ----------------------
874
894
875 news
895 news
876 ++++
896 ++++
877
897
878 - tested under python2.7
898 - tested under python2.7
879 - bumped sqlalchemy and celery versions
899 - bumped sqlalchemy and celery versions
880
900
881 fixes
901 fixes
882 +++++
902 +++++
883
903
884 - fixed #59 missing graph.js
904 - fixed #59 missing graph.js
885 - fixed repo_size crash when repository had broken symlinks
905 - fixed repo_size crash when repository had broken symlinks
886 - fixed python2.5 crashes.
906 - fixed python2.5 crashes.
887
907
888
908
889 1.0.1 (**2010-11-10**)
909 1.0.1 (**2010-11-10**)
890 ----------------------
910 ----------------------
891
911
892 news
912 news
893 ++++
913 ++++
894
914
895 - small css updated
915 - small css updated
896
916
897 fixes
917 fixes
898 +++++
918 +++++
899
919
900 - fixed #53 python2.5 incompatible enumerate calls
920 - fixed #53 python2.5 incompatible enumerate calls
901 - fixed #52 disable mercurial extension for web
921 - fixed #52 disable mercurial extension for web
902 - fixed #51 deleting repositories don't delete it's dependent objects
922 - fixed #51 deleting repositories don't delete it's dependent objects
903
923
904
924
905 1.0.0 (**2010-11-02**)
925 1.0.0 (**2010-11-02**)
906 ----------------------
926 ----------------------
907
927
908 - security bugfix simplehg wasn't checking for permissions on commands
928 - security bugfix simplehg wasn't checking for permissions on commands
909 other than pull or push.
929 other than pull or push.
910 - fixed doubled messages after push or pull in admin journal
930 - fixed doubled messages after push or pull in admin journal
911 - templating and css corrections, fixed repo switcher on chrome, updated titles
931 - templating and css corrections, fixed repo switcher on chrome, updated titles
912 - admin menu accessible from options menu on repository view
932 - admin menu accessible from options menu on repository view
913 - permissions cached queries
933 - permissions cached queries
914
934
915 1.0.0rc4 (**2010-10-12**)
935 1.0.0rc4 (**2010-10-12**)
916 --------------------------
936 --------------------------
917
937
918 - fixed python2.5 missing simplejson imports (thanks to Jens BΓ€ckman)
938 - fixed python2.5 missing simplejson imports (thanks to Jens BΓ€ckman)
919 - removed cache_manager settings from sqlalchemy meta
939 - removed cache_manager settings from sqlalchemy meta
920 - added sqlalchemy cache settings to ini files
940 - added sqlalchemy cache settings to ini files
921 - validated password length and added second try of failure on paster setup-app
941 - validated password length and added second try of failure on paster setup-app
922 - fixed setup database destroy prompt even when there was no db
942 - fixed setup database destroy prompt even when there was no db
923
943
924
944
925 1.0.0rc3 (**2010-10-11**)
945 1.0.0rc3 (**2010-10-11**)
926 -------------------------
946 -------------------------
927
947
928 - fixed i18n during installation.
948 - fixed i18n during installation.
929
949
930 1.0.0rc2 (**2010-10-11**)
950 1.0.0rc2 (**2010-10-11**)
931 -------------------------
951 -------------------------
932
952
933 - Disabled dirsize in file browser, it's causing nasty bug when dir renames
953 - Disabled dirsize in file browser, it's causing nasty bug when dir renames
934 occure. After vcs is fixed it'll be put back again.
954 occure. After vcs is fixed it'll be put back again.
935 - templating/css rewrites, optimized css. No newline at end of file
955 - templating/css rewrites, optimized css.
@@ -1,250 +1,292 b''
1 .. _installation_win:
1 .. _installation_win:
2
2
3
3
4 Step by step Installation for Windows
4 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 versions of the different packages(Windows Installer, Win32py extensions)
17 extensions
17 plus some extra tweaks.
18 These extra steps haven been marked as "64bit".
19 Tested on Windows Server 2008 R2 SP1, 9-feb-2013.
20 If you run into any 64bit related problems, please check these pages:
21 - http://blog.victorjabur.com/2011/06/05/compiling-python-2-7-modules-on-windows-32-and-64-using-msvc-2008-express/
22 - http://bugs.python.org/issue7511
18
23
19 Step1 - Install Visual Studio 2008 Express
24 Step1 - Install Visual Studio 2008 Express
20 ------------------------------------------
25 ------------------------------------------
21
26
22
27
23 Optional: You can also install MingW, but VS2008 installation is easier
28 Optional: You can also install MingW, but VS2008 installation is easier
24
29
25 Download "Visual C++ 2008 Express Edition with SP1" from:
30 Download "Visual C++ 2008 Express Edition with SP1" from:
26 http://www.microsoft.com/visualstudio/en-us/products/2008-editions/express
31 http://www.microsoft.com/visualstudio/en-us/products/2008-editions/express
27 (if not found or relocated, google for "visual studio 2008 express" for
32 (if not found or relocated, google for "visual studio 2008 express" for
28 updated link)
33 updated link)
29
34
30 You can also download full ISO file for offline installation, just
35 You can also download full ISO file for offline installation, just
31 choose "All - Offline Install ISO image file" in the previous page and
36 choose "All - Offline Install ISO image file" in the previous page and
32 choose "Visual C++ 2008 Express" when installing.
37 choose "Visual C++ 2008 Express" when installing.
33
34
38
35 .. note::
39 .. note::
36
40
37 Silverlight Runtime and SQL Server 2008 Express Edition are not
41 Using other versions of Visual Studio will lead to random crashes.
38 required, you can uncheck them
42 You must use Visual Studio 2008!"
43
44 .. note::
45
46 Silverlight Runtime and SQL Server 2008 Express Edition are not
47 required, you can uncheck them
48
49 .. note::
50
51 64bit: You also need to install the Microsoft Windows SDK for .NET 3.5 SP1 (.NET 4.0 won't work).
52 Download from: http://www.microsoft.com/en-us/download/details.aspx?id=3138
53
54 .. note::
55
56 64bit: You also need to copy and rename a .bat file to make the Visual C++ compiler work.
57 I am not sure why this is not necessary for 32bit.
58 Copy C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\vcvars64.bat to C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\amd64\vcvarsamd64.bat
39
59
40
60
41 Step2 - Install Python
61 Step2 - Install Python
42 ----------------------
62 ----------------------
43
63
44 Install Python 2.x.y (x >= 5) x86 version (32bit). DO NOT USE A 3.x version.
64 Install Python 2.x.y (x >= 5) x86 version (32bit). DO NOT USE A 3.x version.
45 Download Python 2.x.y from:
65 Download Python 2.x.y from:
46 http://www.python.org/download/
66 http://www.python.org/download/
47
67
48 Choose "Windows Installer" (32bit version) not "Windows X86-64
68 Choose "Windows Installer" (32bit version) not "Windows X86-64
49 Installer". While writing this guide, the latest version was v2.7.3.
69 Installer". While writing this guide, the latest version was v2.7.3.
50 Remember the specific major and minor version installed, because it will
70 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".
71 be needed in the next step. In this case, it is "2.7".
52
72
73 .. note::
74
75 64bit: Just download and install the 64bit version of python.
53
76
54 Step3 - Install Win32py extensions
77 Step3 - Install Win32py extensions
55 ----------------------------------
78 ----------------------------------
56
79
57 Download pywin32 from:
80 Download pywin32 from:
58 http://sourceforge.net/projects/pywin32/files/
81 http://sourceforge.net/projects/pywin32/files/
59
82
60 - Click on "pywin32" folder
83 - Click on "pywin32" folder
61 - Click on the first folder (in this case, Build 217, maybe newer when you try)
84 - 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
85 - Choose the file ending with ".win32-py2.x.exe" -> x being the minor
63 version of Python you installed (in this case, 7)
86 version of Python you installed (in this case, 7)
64 When writing this guide, the file was:
87 When writing this guide, the file was:
65 http://sourceforge.net/projects/pywin32/files/pywin32/Build%20217/pywin32-217.win32-py2.7.exe/download
88 http://sourceforge.net/projects/pywin32/files/pywin32/Build%20217/pywin32-217.win32-py2.7.exe/download
66
89
90 .. note::
91
92 64bit: Download and install the 64bit version.
93 At the time of writing you can find this at:
94 http://sourceforge.net/projects/pywin32/files/pywin32/Build%20218/pywin32-218.win-amd64-py2.7.exe/download
67
95
68 Step4 - Python BIN
96 Step4 - Python BIN
69 ------------------
97 ------------------
70
98
71 Add Python BIN folder to the path
99 Add Python BIN folder to the path
72
100
73 You have to add the Python folder to the path, you can do it manually
101 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
102 (editing "PATH" environment variable) or using Windows Support Tools
75 that came preinstalled in Vista/7 and can be installed in Windows XP.
103 that came preinstalled in Vista/7 and can be installed in Windows XP.
76
104
77 - Using support tools on WINDOWS XP:
105 - Using support tools on WINDOWS XP:
78 If you use Windows XP you can install them using Windows XP CD and
106 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).
107 navigating to \SUPPORT\TOOLS. There, execute Setup.EXE (not MSI).
80 Afterwards, open a CMD and type::
108 Afterwards, open a CMD and type::
81
109
82 SETX PATH "%PATH%;[your-python-path]" -M
110 SETX PATH "%PATH%;[your-python-path]" -M
83
111
84 Close CMD (the path variable will be updated then)
112 Close CMD (the path variable will be updated then)
85
113
86 - Using support tools on WINDOWS Vista/7:
114 - Using support tools on WINDOWS Vista/7:
87
115
88 Open a CMD and type::
116 Open a CMD and type::
89
117
90 SETX PATH "%PATH%;[your-python-path]" /M
118 SETX PATH "%PATH%;[your-python-path]" /M
91
119
92 Please substitute [your-python-path] with your Python installation path.
120 Please substitute [your-python-path] with your Python installation path.
93 Typically: C:\\Python27
121 Typically: C:\\Python27
94
122
95
123
96 Step5 - RhodeCode folder structure
124 Step5 - RhodeCode folder structure
97 ----------------------------------
125 ----------------------------------
98
126
99 Create a RhodeCode folder structure
127 Create a RhodeCode folder structure
100
128
101 This is only a example to install RhodeCode, you can of course change
129 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
130 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
131 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...
132 folders with NO SPACES. But you can try if you are brave...
105
133
106 Create the following folder structure::
134 Create the following folder structure::
107
135
108 C:\RhodeCode
136 C:\RhodeCode
109 C:\RhodeCode\Bin
137 C:\RhodeCode\Bin
110 C:\RhodeCode\Env
138 C:\RhodeCode\Env
111 C:\RhodeCode\Repos
139 C:\RhodeCode\Repos
112
140
113
141
114 Step6 - Install virtualenv
142 Step6 - Install virtualenv
115 ---------------------------
143 ---------------------------
116
144
117 Install Virtual Env for Python
145 Install Virtual Env for Python
118
146
119 Navigate to: http://www.virtualenv.org/en/latest/index.html#installation
147 Navigate to: http://www.virtualenv.org/en/latest/index.html#installation
120 Right click on "virtualenv.py" file and choose "Save link as...".
148 Right click on "virtualenv.py" file and choose "Save link as...".
121 Download to C:\\RhodeCode (or whatever you want)
149 Download to C:\\RhodeCode (or whatever you want)
122 (the file is located at
150 (the file is located at
123 https://raw.github.com/pypa/virtualenv/master/virtualenv.py)
151 https://raw.github.com/pypa/virtualenv/master/virtualenv.py)
124
152
125 Create a virtual Python environment in C:\\RhodeCode\\Env (or similar). To
153 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
154 do so, open a CMD (Python Path should be included in Step3), navigate
127 where you downloaded "virtualenv.py", and write::
155 where you downloaded "virtualenv.py", and write::
128
156
129 python virtualenv.py C:\RhodeCode\Env
157 python virtualenv.py C:\RhodeCode\Env
130
158
131 (--no-site-packages is now the default behaviour of virtualenv, no need
159 (--no-site-packages is now the default behaviour of virtualenv, no need
132 to include it)
160 to include it)
133
161
134
162
135 Step7 - Install RhodeCode
163 Step7 - Install RhodeCode
136 -------------------------
164 -------------------------
137
165
138 Finally, install RhodeCode
166 Finally, install RhodeCode
167
168 Close previously opened command prompt/s, and open a Visual Studio 2008
169 Command Prompt (**IMPORTANT!!**). To do so, go to Start Menu, and then open
170 "Microsoft Visual C++ 2008 Express Edition" -> "Visual Studio Tools" ->
171 "Visual Studio 2008 Command Prompt"
172
173 .. note::
139
174
140 Close previously opened command prompt/s, and open a Visual Studio 2008
175 64bit: For 64bit you need to modify the shortcut that is used to start the
141 Command Prompt (**IMPORTANT!!**). To do so, go to Start Menu, and then open
176 Visual Studio 2008 Command Prompt. Use right-mouse click to open properties.
142 "Microsoft Visual C++ 2008 Express Edition" -> "Visual Studio Tools" ->
177
143 "Visual Studio 2008 Command Prompt"
178 Change commandline from::
179
180 %comspec% /k ""C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcvarsall.bat"" x86
181
182 to::
183
184 %comspec% /k ""C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcvarsall.bat"" amd64
185
144
186
145 In that CMD (loaded with VS2008 PATHs) type::
187 In that CMD (loaded with VS2008 PATHs) type::
146
188
147 cd C:\RhodeCode\Env\Scripts (or similar)
189 cd C:\RhodeCode\Env\Scripts (or similar)
148 activate
190 activate
149
191
150 The prompt will change into "(Env) C:\\RhodeCode\\Env\\Scripts" or similar
192 The prompt will change into "(Env) C:\\RhodeCode\\Env\\Scripts" or similar
151 (depending of your folder structure). Then type::
193 (depending of your folder structure). Then type::
152
194
153 pip install rhodecode
195 pip install rhodecode
154
196
155 (long step, please wait until fully complete)
197 (long step, please wait until fully complete)
156
198
157 Some warnings will appear, don't worry as they are normal.
199 Some warnings will appear, don't worry as they are normal.
158
200
159
201
160 Step8 - Configuring RhodeCode
202 Step8 - Configuring RhodeCode
161 -----------------------------
203 -----------------------------
162
204
163
205
164 steps taken from http://packages.python.org/RhodeCode/setup.html
206 steps taken from http://packages.python.org/RhodeCode/setup.html
165
207
166 You have to use the same Visual Studio 2008 command prompt as Step7, so
208 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
209 if you closed it reopen it following the same commands (including the
168 "activate" one). When ready, just type::
210 "activate" one). When ready, just type::
169
211
170 cd C:\RhodeCode\Bin
212 cd C:\RhodeCode\Bin
171 paster make-config RhodeCode production.ini
213 paster make-config RhodeCode production.ini
172
214
173 Then, you must edit production.ini to fit your needs (ip address, ip
215 Then, you must edit production.ini to fit your needs (ip address, ip
174 port, mail settings, database, whatever). I recommend using NotePad++
216 port, mail settings, database, whatever). I recommend using NotePad++
175 (free) or similar text editor, as it handles well the EndOfLine
217 (free) or similar text editor, as it handles well the EndOfLine
176 character differences between Unix and Windows
218 character differences between Unix and Windows
177 (http://notepad-plus-plus.org/)
219 (http://notepad-plus-plus.org/)
178
220
179 For the sake of simplicity lets run it with the default settings. After
221 For the sake of simplicity lets run it with the default settings. After
180 your edits (if any), in the previous Command Prompt, type::
222 your edits (if any), in the previous Command Prompt, type::
181
182 paster setup-rhodecode production.ini
183
223
184 (this time a NEW database will be installed, you must follow a different
224 paster setup-rhodecode production.ini
185 step to later UPGRADE to a newer RhodeCode version)
225
226 (this time a NEW database will be installed, you must follow a different
227 step to later UPGRADE to a newer RhodeCode version)
186
228
187 The script will ask you for confirmation about creating a NEW database,
229 The script will ask you for confirmation about creating a NEW database,
188 answer yes (y)
230 answer yes (y)
189 The script will ask you for repository path, answer C:\\RhodeCode\\Repos
231 The script will ask you for repository path, answer C:\\RhodeCode\\Repos
190 (or similar)
232 (or similar)
191 The script will ask you for admin username and password, answer "admin"
233 The script will ask you for admin username and password, answer "admin"
192 + "123456" (or whatever you want)
234 + "123456" (or whatever you want)
193 The script will ask you for admin mail, answer "admin@xxxx.com" (or
235 The script will ask you for admin mail, answer "admin@xxxx.com" (or
194 whatever you want)
236 whatever you want)
195
237
196 If you make some mistake and the script does not end, don't worry, start
238 If you make some mistake and the script does not end, don't worry, start
197 it again.
239 it again.
198
240
199
241
200 Step9 - Running RhodeCode
242 Step9 - Running RhodeCode
201 -------------------------
243 -------------------------
202
244
203
245
204 In the previous command prompt, being in the C:\\RhodeCode\\Bin folder,
246 In the previous command prompt, being in the C:\\RhodeCode\\Bin folder,
205 just type::
247 just type::
206
248
207 paster serve production.ini
249 paster serve production.ini
208
250
209 Open yout web server, and go to http://127.0.0.1:5000
251 Open yout web server, and go to http://127.0.0.1:5000
210
252
211 It works!! :-)
253 It works!! :-)
212
254
213 Remark:
255 Remark:
214 If it does not work first time, just Ctrl-C the CMD process and start it
256 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
257 again. Don't forget the "http://" in Internet Explorer
216
258
217
259
218
260
219 What this Guide does not cover:
261 What this Guide does not cover:
220
262
221 - Installing Celery
263 - Installing Celery
222 - Running RhodeCode as Windows Service. You can investigate here:
264 - Running RhodeCode as Windows Service. You can investigate here:
223
265
224 - http://pypi.python.org/pypi/wsgisvc
266 - http://pypi.python.org/pypi/wsgisvc
225 - http://ryrobes.com/python/running-python-scripts-as-a-windows-service/
267 - 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
268 - http://wiki.pylonshq.com/display/pylonscookbook/How+to+run+Pylons+as+a+Windows+service
227
269
228 - Using Apache. You can investigate here:
270 - Using Apache. You can investigate here:
229
271
230 - https://groups.google.com/group/rhodecode/msg/c433074e813ffdc4
272 - https://groups.google.com/group/rhodecode/msg/c433074e813ffdc4
231
273
232
274
233 Upgrading
275 Upgrading
234 =========
276 =========
235
277
236 Stop running RhodeCode
278 Stop running RhodeCode
237 Open a CommandPrompt like in Step7 (VS2008 path + activate) and type::
279 Open a CommandPrompt like in Step7 (VS2008 path + activate) and type::
238
280
239 easy_install -U rhodecode
281 easy_install -U rhodecode
240 cd \RhodeCode\Bin
282 cd \RhodeCode\Bin
241
283
242 { backup your production.ini file now} ::
284 { backup your production.ini file now} ::
243
285
244 paster make-config RhodeCode production.ini
286 paster make-config RhodeCode production.ini
245
287
246 (check changes and update your production.ini accordingly) ::
288 (check changes and update your production.ini accordingly) ::
247
289
248 paster upgrade-db production.ini (update database)
290 paster upgrade-db production.ini (update database)
249
291
250 Full steps in http://packages.python.org/RhodeCode/upgrade.html No newline at end of file
292 Full steps in http://packages.python.org/RhodeCode/upgrade.html
@@ -1,725 +1,735 b''
1 .. _setup:
1 .. _setup:
2
2
3 =====
3 =====
4 Setup
4 Setup
5 =====
5 =====
6
6
7
7
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
22 Next, you need to create the databases used by RhodeCode. I recommend that you
22 Next, you need to create the databases used by RhodeCode. I recommend that you
23 use postgresql or sqlite (default). If you choose a database other than the
23 use postgresql or sqlite (default). If you choose a database other than the
24 default ensure you properly adjust the db url in your production.ini
24 default ensure you properly adjust the db url in your production.ini
25 configuration file to use this other database. RhodeCode currently supports
25 configuration file to use this other database. RhodeCode currently supports
26 postgresql, sqlite and mysql databases. Create the database by running
26 postgresql, sqlite and mysql databases. Create the database by running
27 the following command::
27 the following command::
28
28
29 paster setup-rhodecode production.ini
29 paster setup-rhodecode production.ini
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
66
66
67 Optionally users can create `rcextensions` package that extends RhodeCode
67 Optionally users can create `rcextensions` package that extends RhodeCode
68 functionality. To do this simply execute::
68 functionality. To do this simply execute::
69
69
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
80 Using RhodeCode with SSH
80 Using RhodeCode with SSH
81 ------------------------
81 ------------------------
82
82
83 RhodeCode currently only hosts repositories using http and https. (The addition
83 RhodeCode currently only hosts repositories using http and https. (The addition
84 of ssh hosting is a planned future feature.) However you can easily use ssh in
84 of ssh hosting is a planned future feature.) However you can easily use ssh in
85 parallel with RhodeCode. (Repository access via ssh is a standard "out of
85 parallel with RhodeCode. (Repository access via ssh is a standard "out of
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.)
97
97
98 If your main directory (the same as set in RhodeCode settings) is for example
98 If your main directory (the same as set in RhodeCode settings) is for example
99 set to **/home/hg** and the repository you are using is named `rhodecode`, then
99 set to **/home/hg** and the repository you are using is named `rhodecode`, then
100 to clone via ssh you should run::
100 to clone via ssh you should run::
101
101
102 hg clone ssh://user@server.com/home/hg/rhodecode
102 hg clone ssh://user@server.com/home/hg/rhodecode
103
103
104 Using other external tools such as mercurial-server_ or using ssh key based
104 Using other external tools such as mercurial-server_ or using ssh key based
105 authentication is fully supported.
105 authentication is fully supported.
106
106
107 Note: In an advanced setup, in order for your ssh access to use the same
107 Note: In an advanced setup, in order for your ssh access to use the same
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
125 the `-f` option, indexing will run always in "incremental" mode.
125 the `-f` option, indexing will run always in "incremental" mode.
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
150 from index.
150 from index.
151
151
152 If you want to rebuild index from scratch, you can use the `-f` flag as above,
152 If you want to rebuild index from scratch, you can use the `-f` flag as above,
153 or in the admin panel you can check `build from scratch` flag.
153 or in the admin panel you can check `build from scratch` flag.
154
154
155
155
156 Setting up LDAP support
156 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,
176
176
177 Here's a typical ldap setup::
177 Here's a typical ldap setup::
178
178
179 Connection settings
179 Connection settings
180 Enable LDAP = checked
180 Enable LDAP = checked
181 Host = host.example.org
181 Host = host.example.org
182 Port = 389
182 Port = 389
183 Account = <account>
183 Account = <account>
184 Password = <password>
184 Password = <password>
185 Connection Security = LDAPS connection
185 Connection Security = LDAPS connection
186 Certificate Checks = DEMAND
186 Certificate Checks = DEMAND
187
187
188 Search settings
188 Search settings
189 Base DN = CN=users,DC=host,DC=example,DC=org
189 Base DN = CN=users,DC=host,DC=example,DC=org
190 LDAP Filter = (&(objectClass=user)(!(objectClass=computer)))
190 LDAP Filter = (&(objectClass=user)(!(objectClass=computer)))
191 LDAP Search Scope = SUBTREE
191 LDAP Search Scope = SUBTREE
192
192
193 Attribute mappings
193 Attribute mappings
194 Login Attribute = uid
194 Login Attribute = uid
195 First Name Attribute = firstName
195 First Name Attribute = firstName
196 Last Name Attribute = lastName
196 Last Name Attribute = lastName
197 E-mail Attribute = mail
197 E-mail Attribute = mail
198
198
199 .. _enable_ldap:
199 .. _enable_ldap:
200
200
201 Enable LDAP : required
201 Enable LDAP : required
202 Whether to use LDAP for authenticating users.
202 Whether to use LDAP for authenticating users.
203
203
204 .. _ldap_host:
204 .. _ldap_host:
205
205
206 Host : required
206 Host : required
207 LDAP server hostname or IP address. Can be also a comma separated
207 LDAP server hostname or IP address. Can be also a comma separated
208 list of servers to support LDAP fail-over.
208 list of servers to support LDAP fail-over.
209
209
210 .. _Port:
210 .. _Port:
211
211
212 Port : required
212 Port : required
213 389 for un-encrypted LDAP, 636 for SSL-encrypted LDAP.
213 389 for un-encrypted LDAP, 636 for SSL-encrypted LDAP.
214
214
215 .. _ldap_account:
215 .. _ldap_account:
216
216
217 Account : optional
217 Account : optional
218 Only required if the LDAP server does not allow anonymous browsing of
218 Only required if the LDAP server does not allow anonymous browsing of
219 records. This should be a special account for record browsing. This
219 records. This should be a special account for record browsing. This
220 will require `LDAP Password`_ below.
220 will require `LDAP Password`_ below.
221
221
222 .. _LDAP Password:
222 .. _LDAP Password:
223
223
224 Password : optional
224 Password : optional
225 Only required if the LDAP server does not allow anonymous browsing of
225 Only required if the LDAP server does not allow anonymous browsing of
226 records.
226 records.
227
227
228 .. _Enable LDAPS:
228 .. _Enable LDAPS:
229
229
230 Connection Security : required
230 Connection Security : required
231 Defines the connection to LDAP server
231 Defines the connection to LDAP server
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
244 .. _Certificate Checks:
244 .. _Certificate Checks:
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
252 certificates that do not have traceable certificates of authority.
252 certificates that do not have traceable certificates of authority.
253
253
254 NEVER
254 NEVER
255 A serve certificate will never be requested or checked.
255 A serve certificate will never be requested or checked.
256
256
257 ALLOW
257 ALLOW
258 A server certificate is requested. Failure to provide a
258 A server certificate is requested. Failure to provide a
259 certificate or providing a bad certificate will not terminate the
259 certificate or providing a bad certificate will not terminate the
260 session.
260 session.
261
261
262 TRY
262 TRY
263 A server certificate is requested. Failure to provide a
263 A server certificate is requested. Failure to provide a
264 certificate does not halt the session; providing a bad certificate
264 certificate does not halt the session; providing a bad certificate
265 halts the session.
265 halts the session.
266
266
267 DEMAND
267 DEMAND
268 A server certificate is requested and must be provided and
268 A server certificate is requested and must be provided and
269 authenticated for the session to proceed.
269 authenticated for the session to proceed.
270
270
271 HARD
271 HARD
272 The same as DEMAND.
272 The same as DEMAND.
273
273
274 .. _Base DN:
274 .. _Base DN:
275
275
276 Base DN : required
276 Base DN : required
277 The Distinguished Name (DN) where searches for users will be performed.
277 The Distinguished Name (DN) where searches for users will be performed.
278 Searches can be controlled by `LDAP Filter`_ and `LDAP Search Scope`_.
278 Searches can be controlled by `LDAP Filter`_ and `LDAP Search Scope`_.
279
279
280 .. _LDAP Filter:
280 .. _LDAP Filter:
281
281
282 LDAP Filter : optional
282 LDAP Filter : optional
283 A LDAP filter defined by RFC 2254. This is more useful when `LDAP
283 A LDAP filter defined by RFC 2254. This is more useful when `LDAP
284 Search Scope`_ is set to SUBTREE. The filter is useful for limiting
284 Search Scope`_ is set to SUBTREE. The filter is useful for limiting
285 which LDAP objects are identified as representing Users for
285 which LDAP objects are identified as representing Users for
286 authentication. The filter is augmented by `Login Attribute`_ below.
286 authentication. The filter is augmented by `Login Attribute`_ below.
287 This can commonly be left blank.
287 This can commonly be left blank.
288
288
289 .. _LDAP Search Scope:
289 .. _LDAP Search Scope:
290
290
291 LDAP Search Scope : required
291 LDAP Search Scope : required
292 This limits how far LDAP will search for a matching object.
292 This limits how far LDAP will search for a matching object.
293
293
294 BASE
294 BASE
295 Only allows searching of `Base DN`_ and is usually not what you
295 Only allows searching of `Base DN`_ and is usually not what you
296 want.
296 want.
297
297
298 ONELEVEL
298 ONELEVEL
299 Searches all entries under `Base DN`_, but not Base DN itself.
299 Searches all entries under `Base DN`_, but not Base DN itself.
300
300
301 SUBTREE
301 SUBTREE
302 Searches all entries below `Base DN`_, but not Base DN itself.
302 Searches all entries below `Base DN`_, but not Base DN itself.
303 When using SUBTREE `LDAP Filter`_ is useful to limit object
303 When using SUBTREE `LDAP Filter`_ is useful to limit object
304 location.
304 location.
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
312 "LDAPFILTER", `Login Attribute`_ is specified as "uid" and the user has
312 "LDAPFILTER", `Login Attribute`_ is specified as "uid" and the user has
313 connected as "jsmith" then the `LDAP Filter`_ will be augmented as below
313 connected as "jsmith" then the `LDAP Filter`_ will be augmented as below
314 ::
314 ::
315
315
316 (&(LDAPFILTER)(uid=jsmith))
316 (&(LDAPFILTER)(uid=jsmith))
317
317
318 .. _ldap_attr_firstname:
318 .. _ldap_attr_firstname:
319
319
320 First Name Attribute : required
320 First Name Attribute : required
321 The LDAP record attribute which represents the user's first name.
321 The LDAP record attribute which represents the user's first name.
322
322
323 .. _ldap_attr_lastname:
323 .. _ldap_attr_lastname:
324
324
325 Last Name Attribute : required
325 Last Name Attribute : required
326 The LDAP record attribute which represents the user's last name.
326 The LDAP record attribute which represents the user's last name.
327
327
328 .. _ldap_attr_email:
328 .. _ldap_attr_email:
329
329
330 Email Attribute : required
330 Email Attribute : required
331 The LDAP record attribute which represents the user's email address.
331 The LDAP record attribute which represents the user's email address.
332
332
333 If all data are entered correctly, and python-ldap_ is properly installed
333 If all data are entered correctly, and python-ldap_ is properly installed
334 users should be granted access to RhodeCode with ldap accounts. At this
334 users should be granted access to RhodeCode with ldap accounts. At this
335 time user information is copied from LDAP into the RhodeCode user database.
335 time user information is copied from LDAP into the RhodeCode user database.
336 This means that updates of an LDAP user object may not be reflected as a
336 This means that updates of an LDAP user object may not be reflected as a
337 user update in RhodeCode.
337 user update in RhodeCode.
338
338
339 If You have problems with LDAP access and believe You entered correct
339 If You have problems with LDAP access and believe You entered correct
340 information check out the RhodeCode logs, any error messages sent from LDAP
340 information check out the RhodeCode logs, any error messages sent from LDAP
341 will be saved there.
341 will be saved there.
342
342
343 Active Directory
343 Active Directory
344 ''''''''''''''''
344 ''''''''''''''''
345
345
346 RhodeCode can use Microsoft Active Directory for user authentication. This
346 RhodeCode can use Microsoft Active Directory for user authentication. This
347 is done through an LDAP or LDAPS connection to Active Directory. The
347 is done through an LDAP or LDAPS connection to Active Directory. The
348 following LDAP configuration settings are typical for using Active
348 following LDAP configuration settings are typical for using Active
349 Directory ::
349 Directory ::
350
350
351 Base DN = OU=SBSUsers,OU=Users,OU=MyBusiness,DC=v3sys,DC=local
351 Base DN = OU=SBSUsers,OU=Users,OU=MyBusiness,DC=v3sys,DC=local
352 Login Attribute = sAMAccountName
352 Login Attribute = sAMAccountName
353 First Name Attribute = givenName
353 First Name Attribute = givenName
354 Last Name Attribute = sn
354 Last Name Attribute = sn
355 E-mail Attribute = mail
355 E-mail Attribute = mail
356
356
357 All other LDAP settings will likely be site-specific and should be
357 All other LDAP settings will likely be site-specific and should be
358 appropriately configured.
358 appropriately configured.
359
359
360
360
361 Authentication by container or reverse-proxy
361 Authentication by container or reverse-proxy
362 --------------------------------------------
362 --------------------------------------------
363
363
364 Starting with version 1.3, RhodeCode supports delegating the authentication
364 Starting with version 1.3, RhodeCode supports delegating the authentication
365 of users to its WSGI container, or to a reverse-proxy server through which all
365 of users to its WSGI container, or to a reverse-proxy server through which all
366 clients access the application.
366 clients access the application.
367
367
368 When these authentication methods are enabled in RhodeCode, it uses the
368 When these authentication methods are enabled in RhodeCode, it uses the
369 username that the container/proxy (Apache/Nginx/etc) authenticated and doesn't
369 username that the container/proxy (Apache/Nginx/etc) authenticated and doesn't
370 perform the authentication itself. The authorization, however, is still done by
370 perform the authentication itself. The authorization, however, is still done by
371 RhodeCode according to its settings.
371 RhodeCode according to its settings.
372
372
373 When a user logs in for the first time using these authentication methods,
373 When a user logs in for the first time using these authentication methods,
374 a matching user account is created in RhodeCode with default permissions. An
374 a matching user account is created in RhodeCode with default permissions. An
375 administrator can then modify it using RhodeCode's admin interface.
375 administrator can then modify it using RhodeCode's admin interface.
376 It's also possible for an administrator to create accounts and configure their
376 It's also possible for an administrator to create accounts and configure their
377 permissions before the user logs in for the first time.
377 permissions before the user logs in for the first time.
378
378
379 Container-based authentication
379 Container-based authentication
380 ''''''''''''''''''''''''''''''
380 ''''''''''''''''''''''''''''''
381
381
382 In a container-based authentication setup, RhodeCode reads the user name from
382 In a container-based authentication setup, RhodeCode reads the user name from
383 the ``REMOTE_USER`` server variable provided by the WSGI container.
383 the ``REMOTE_USER`` server variable provided by the WSGI container.
384
384
385 After setting up your container (see `Apache's WSGI config`_), you'd need
385 After setting up your container (see `Apache's WSGI config`_), you'd need
386 to configure it to require authentication on the location configured for
386 to configure it to require authentication on the location configured for
387 RhodeCode.
387 RhodeCode.
388
388
389 In order for RhodeCode to start using the provided username, you should set the
389 In order for RhodeCode to start using the provided username, you should set the
390 following in the [app:main] section of your .ini file::
390 following in the [app:main] section of your .ini file::
391
391
392 container_auth_enabled = true
392 container_auth_enabled = true
393
393
394
394
395 Proxy pass-through authentication
395 Proxy pass-through authentication
396 '''''''''''''''''''''''''''''''''
396 '''''''''''''''''''''''''''''''''
397
397
398 In a proxy pass-through authentication setup, RhodeCode reads the user name
398 In a proxy pass-through authentication setup, RhodeCode reads the user name
399 from the ``X-Forwarded-User`` request header, which should be configured to be
399 from the ``X-Forwarded-User`` request header, which should be configured to be
400 sent by the reverse-proxy server.
400 sent by the reverse-proxy server.
401
401
402 After setting up your proxy solution (see `Apache virtual host reverse proxy example`_,
402 After setting up your proxy solution (see `Apache virtual host reverse proxy example`_,
403 `Apache as subdirectory`_ or `Nginx virtual host example`_), you'd need to
403 `Apache as subdirectory`_ or `Nginx virtual host example`_), you'd need to
404 configure the authentication and add the username in a request header named
404 configure the authentication and add the username in a request header named
405 ``X-Forwarded-User``.
405 ``X-Forwarded-User``.
406
406
407 For example, the following config section for Apache sets a subdirectory in a
407 For example, the following config section for Apache sets a subdirectory in a
408 reverse-proxy setup with basic auth::
408 reverse-proxy setup with basic auth::
409
409
410 <Location /<someprefix> >
410 <Location /<someprefix> >
411 ProxyPass http://127.0.0.1:5000/<someprefix>
411 ProxyPass http://127.0.0.1:5000/<someprefix>
412 ProxyPassReverse http://127.0.0.1:5000/<someprefix>
412 ProxyPassReverse http://127.0.0.1:5000/<someprefix>
413 SetEnvIf X-Url-Scheme https HTTPS=1
413 SetEnvIf X-Url-Scheme https HTTPS=1
414
414
415 AuthType Basic
415 AuthType Basic
416 AuthName "RhodeCode authentication"
416 AuthName "RhodeCode authentication"
417 AuthUserFile /home/web/rhodecode/.htpasswd
417 AuthUserFile /home/web/rhodecode/.htpasswd
418 require valid-user
418 require valid-user
419
419
420 RequestHeader unset X-Forwarded-User
420 RequestHeader unset X-Forwarded-User
421
421
422 RewriteEngine On
422 RewriteEngine On
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::
430
430
431 proxypass_auth_enabled = true
431 proxypass_auth_enabled = true
432
432
433 .. note::
433 .. note::
434 If you enable proxy pass-through authentication, make sure your server is
434 If you enable proxy pass-through authentication, make sure your server is
435 only accessible through the proxy. Otherwise, any client would be able to
435 only accessible through the proxy. Otherwise, any client would be able to
436 forge the authentication header and could effectively become authenticated
436 forge the authentication header and could effectively become authenticated
437 using any account of their liking.
437 using any account of their liking.
438
438
439 Integration with Issue trackers
439 Integration with Issue trackers
440 -------------------------------
440 -------------------------------
441
441
442 RhodeCode provides a simple integration with issue trackers. It's possible
442 RhodeCode provides a simple integration with issue trackers. It's possible
443 to define a regular expression that will fetch issue id stored in commit
443 to define a regular expression that will fetch issue id stored in commit
444 messages and replace that with an url to this issue. To enable this simply
444 messages and replace that with an url to this issue. To enable this simply
445 uncomment following variables in the ini file::
445 uncomment following variables in the ini file::
446
446
447 url_pat = (?:^#|\s#)(\w+)
447 url_pat = (?:^#|\s#)(\w+)
448 issue_server_link = https://myissueserver.com/{repo}/issue/{id}
448 issue_server_link = https://myissueserver.com/{repo}/issue/{id}
449 issue_prefix = #
449 issue_prefix = #
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
477 -------------------------
477 -------------------------
478
478
479 By default RhodeCode uses utf8 encoding, starting from 1.3 series this
479 By default RhodeCode uses utf8 encoding, starting from 1.3 series this
480 can be changed, simply edit default_encoding in .ini file to desired one.
480 can be changed, simply edit default_encoding in .ini file to desired one.
481 This affects many parts in rhodecode including commiters names, filenames,
481 This affects many parts in rhodecode including commiters names, filenames,
482 encoding of commit messages. In addition RhodeCode can detect if `chardet`
482 encoding of commit messages. In addition RhodeCode can detect if `chardet`
483 library is installed. If `chardet` is detected RhodeCode will fallback to it
483 library is installed. If `chardet` is detected RhodeCode will fallback to it
484 when there are encode/decode errors.
484 when there are encode/decode errors.
485
485
486
486
487 Setting Up Celery
487 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.
495 So for example setting `BROKER_HOST` in celery means setting `broker.host` in
495 So for example setting `BROKER_HOST` in celery means setting `broker.host` in
496 the config file.
496 the config file.
497
497
498 In order to start using celery run::
498 In order to start using celery run::
499
499
500 paster celeryd <configfile.ini>
500 paster celeryd <configfile.ini>
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
510 There are two ways to enable https:
510 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
518 Nginx virtual host example
518 Nginx virtual host example
519 --------------------------
519 --------------------------
520
520
521 Sample config for nginx using proxy::
521 Sample config for nginx using proxy::
522
522
523 upstream rc {
523 upstream rc {
524 server 127.0.0.1:5000;
524 server 127.0.0.1:5000;
525 # add more instances for load balancing
525 # add more instances for load balancing
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 443;
532 server_name hg.myserver.com;
532 server_name rhodecode.myserver.com;
533 access_log /var/log/nginx/rhodecode.access.log;
533 access_log /var/log/nginx/rhodecode.access.log;
534 error_log /var/log/nginx/rhodecode.error.log;
534 error_log /var/log/nginx/rhodecode.error.log;
535
535
536 ssl on;
537 ssl_certificate rhodecode.myserver.com.crt;
538 ssl_certificate_key rhodecode.myserver.com.key;
539
540 ssl_session_timeout 5m;
541
542 ssl_protocols SSLv3 TLSv1;
543 ssl_ciphers DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:EDH-RSA-DES-CBC3-SHA:AES256-SHA:DES-CBC3-SHA:AES128-SHA:RC4-SHA:RC4-MD5;
544 ssl_prefer_server_ciphers on;
545
536 # uncomment if you have nginx with chunking module compiled
546 # uncomment if you have nginx with chunking module compiled
537 # fixes the issues of having to put postBuffer data for large git
547 # fixes the issues of having to put postBuffer data for large git
538 # pushes
548 # pushes
539 #chunkin on;
549 #chunkin on;
540 #error_page 411 = @my_411_error;
550 #error_page 411 = @my_411_error;
541 #location @my_411_error {
551 #location @my_411_error {
542 # chunkin_resume;
552 # chunkin_resume;
543 #}
553 #}
544
554
545 # uncomment if you want to serve static files by nginx
555 # uncomment if you want to serve static files by nginx
546 #root /path/to/installation/rhodecode/public;
556 #root /path/to/installation/rhodecode/public;
547
557
548 location / {
558 location / {
549 try_files $uri @rhode;
559 try_files $uri @rhode;
550 }
560 }
551
561
552 location @rhode {
562 location @rhode {
553 proxy_pass http://rc;
563 proxy_pass http://rc;
554 include /etc/nginx/proxy.conf;
564 include /etc/nginx/proxy.conf;
555 }
565 }
556
566
557 }
567 }
558
568
559 Here's the proxy.conf. It's tuned so it will not timeout on long
569 Here's the proxy.conf. It's tuned so it will not timeout on long
560 pushes or large pushes::
570 pushes or large pushes::
561
571
562 proxy_redirect off;
572 proxy_redirect off;
563 proxy_set_header Host $host;
573 proxy_set_header Host $host;
564 proxy_set_header X-Url-Scheme $scheme;
574 proxy_set_header X-Url-Scheme $scheme;
565 proxy_set_header X-Host $http_host;
575 proxy_set_header X-Host $http_host;
566 proxy_set_header X-Real-IP $remote_addr;
576 proxy_set_header X-Real-IP $remote_addr;
567 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
577 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
568 proxy_set_header Proxy-host $proxy_host;
578 proxy_set_header Proxy-host $proxy_host;
569 client_max_body_size 400m;
579 client_max_body_size 400m;
570 client_body_buffer_size 128k;
580 client_body_buffer_size 128k;
571 proxy_buffering off;
581 proxy_buffering off;
572 proxy_connect_timeout 7200;
582 proxy_connect_timeout 7200;
573 proxy_send_timeout 7200;
583 proxy_send_timeout 7200;
574 proxy_read_timeout 7200;
584 proxy_read_timeout 7200;
575 proxy_buffers 8 32k;
585 proxy_buffers 8 32k;
576
586
577 Also, when using root path with nginx you might set the static files to false
587 Also, when using root path with nginx you might set the static files to false
578 in the production.ini file::
588 in the production.ini file::
579
589
580 [app:main]
590 [app:main]
581 use = egg:rhodecode
591 use = egg:rhodecode
582 full_stack = true
592 full_stack = true
583 static_files = false
593 static_files = false
584 lang=en
594 lang=en
585 cache_dir = %(here)s/data
595 cache_dir = %(here)s/data
586
596
587 In order to not have the statics served by the application. This improves speed.
597 In order to not have the statics served by the application. This improves speed.
588
598
589
599
590 Apache virtual host reverse proxy example
600 Apache virtual host reverse proxy example
591 -----------------------------------------
601 -----------------------------------------
592
602
593 Here is a sample configuration file for apache using proxy::
603 Here is a sample configuration file for apache using proxy::
594
604
595 <VirtualHost *:80>
605 <VirtualHost *:80>
596 ServerName hg.myserver.com
606 ServerName hg.myserver.com
597 ServerAlias hg.myserver.com
607 ServerAlias hg.myserver.com
598
608
599 <Proxy *>
609 <Proxy *>
600 Order allow,deny
610 Order allow,deny
601 Allow from all
611 Allow from all
602 </Proxy>
612 </Proxy>
603
613
604 #important !
614 #important !
605 #Directive to properly generate url (clone url) for pylons
615 #Directive to properly generate url (clone url) for pylons
606 ProxyPreserveHost On
616 ProxyPreserveHost On
607
617
608 #rhodecode instance
618 #rhodecode instance
609 ProxyPass / http://127.0.0.1:5000/
619 ProxyPass / http://127.0.0.1:5000/
610 ProxyPassReverse / http://127.0.0.1:5000/
620 ProxyPassReverse / http://127.0.0.1:5000/
611
621
612 #to enable https use line below
622 #to enable https use line below
613 #SetEnvIf X-Url-Scheme https HTTPS=1
623 #SetEnvIf X-Url-Scheme https HTTPS=1
614
624
615 </VirtualHost>
625 </VirtualHost>
616
626
617
627
618 Additional tutorial
628 Additional tutorial
619 http://wiki.pylonshq.com/display/pylonscookbook/Apache+as+a+reverse+proxy+for+Pylons
629 http://wiki.pylonshq.com/display/pylonscookbook/Apache+as+a+reverse+proxy+for+Pylons
620
630
621
631
622 Apache as subdirectory
632 Apache as subdirectory
623 ----------------------
633 ----------------------
624
634
625 Apache subdirectory part::
635 Apache subdirectory part::
626
636
627 <Location /<someprefix> >
637 <Location /<someprefix> >
628 ProxyPass http://127.0.0.1:5000/<someprefix>
638 ProxyPass http://127.0.0.1:5000/<someprefix>
629 ProxyPassReverse http://127.0.0.1:5000/<someprefix>
639 ProxyPassReverse http://127.0.0.1:5000/<someprefix>
630 SetEnvIf X-Url-Scheme https HTTPS=1
640 SetEnvIf X-Url-Scheme https HTTPS=1
631 </Location>
641 </Location>
632
642
633 Besides the regular apache setup you will need to add the following line
643 Besides the regular apache setup you will need to add the following line
634 into [app:main] section of your .ini file::
644 into [app:main] section of your .ini file::
635
645
636 filter-with = proxy-prefix
646 filter-with = proxy-prefix
637
647
638 Add the following at the end of the .ini file::
648 Add the following at the end of the .ini file::
639
649
640 [filter:proxy-prefix]
650 [filter:proxy-prefix]
641 use = egg:PasteDeploy#prefix
651 use = egg:PasteDeploy#prefix
642 prefix = /<someprefix>
652 prefix = /<someprefix>
643
653
644
654
645 then change <someprefix> into your choosen prefix
655 then change <someprefix> into your choosen prefix
646
656
647 Apache's WSGI config
657 Apache's WSGI config
648 --------------------
658 --------------------
649
659
650 Alternatively, RhodeCode can be set up with Apache under mod_wsgi. For
660 Alternatively, RhodeCode can be set up with Apache under mod_wsgi. For
651 that, you'll need to:
661 that, you'll need to:
652
662
653 - Install mod_wsgi. If using a Debian-based distro, you can install
663 - Install mod_wsgi. If using a Debian-based distro, you can install
654 the package libapache2-mod-wsgi::
664 the package libapache2-mod-wsgi::
655
665
656 aptitude install libapache2-mod-wsgi
666 aptitude install libapache2-mod-wsgi
657
667
658 - Enable mod_wsgi::
668 - Enable mod_wsgi::
659
669
660 a2enmod wsgi
670 a2enmod wsgi
661
671
662 - Create a wsgi dispatch script, like the one below. Make sure you
672 - Create a wsgi dispatch script, like the one below. Make sure you
663 check the paths correctly point to where you installed RhodeCode
673 check the paths correctly point to where you installed RhodeCode
664 and its Python Virtual Environment.
674 and its Python Virtual Environment.
665 - Enable the WSGIScriptAlias directive for the wsgi dispatch script,
675 - Enable the WSGIScriptAlias directive for the wsgi dispatch script,
666 as in the following example. Once again, check the paths are
676 as in the following example. Once again, check the paths are
667 correctly specified.
677 correctly specified.
668
678
669 Here is a sample excerpt from an Apache Virtual Host configuration file::
679 Here is a sample excerpt from an Apache Virtual Host configuration file::
670
680
671 WSGIDaemonProcess pylons \
681 WSGIDaemonProcess pylons \
672 threads=4 \
682 threads=4 \
673 python-path=/home/web/rhodecode/pyenv/lib/python2.6/site-packages
683 python-path=/home/web/rhodecode/pyenv/lib/python2.6/site-packages
674 WSGIScriptAlias / /home/web/rhodecode/dispatch.wsgi
684 WSGIScriptAlias / /home/web/rhodecode/dispatch.wsgi
675 WSGIPassAuthorization On
685 WSGIPassAuthorization On
676
686
677 .. note::
687 .. note::
678 when running apache as root please add: `user=www-data group=www-data`
688 when running apache as root please add: `user=www-data group=www-data`
679 into above configuration
689 into above configuration
680
690
681 .. note::
691 .. note::
682 RhodeCode cannot be runned in multiprocess mode in apache, make sure
692 Running RhodeCode in multiprocess mode in apache is not supported,
683 you don't specify `processes=num` directive in the config
693 make sure you don't specify `processes=num` directive in the config
684
694
685
695
686 Example wsgi dispatch script::
696 Example wsgi dispatch script::
687
697
688 import os
698 import os
689 os.environ["HGENCODING"] = "UTF-8"
699 os.environ["HGENCODING"] = "UTF-8"
690 os.environ['PYTHON_EGG_CACHE'] = '/home/web/rhodecode/.egg-cache'
700 os.environ['PYTHON_EGG_CACHE'] = '/home/web/rhodecode/.egg-cache'
691
701
692 # sometimes it's needed to set the curent dir
702 # sometimes it's needed to set the curent dir
693 os.chdir('/home/web/rhodecode/')
703 os.chdir('/home/web/rhodecode/')
694
704
695 import site
705 import site
696 site.addsitedir("/home/web/rhodecode/pyenv/lib/python2.6/site-packages")
706 site.addsitedir("/home/web/rhodecode/pyenv/lib/python2.6/site-packages")
697
707
698 from paste.deploy import loadapp
708 from paste.deploy import loadapp
699 from paste.script.util.logging_config import fileConfig
709 from paste.script.util.logging_config import fileConfig
700
710
701 fileConfig('/home/web/rhodecode/production.ini')
711 fileConfig('/home/web/rhodecode/production.ini')
702 application = loadapp('config:/home/web/rhodecode/production.ini')
712 application = loadapp('config:/home/web/rhodecode/production.ini')
703
713
704 Note: when using mod_wsgi you'll need to install the same version of
714 Note: when using mod_wsgi you'll need to install the same version of
705 Mercurial that's inside RhodeCode's virtualenv also on the system's Python
715 Mercurial that's inside RhodeCode's virtualenv also on the system's Python
706 environment.
716 environment.
707
717
708
718
709 Other configuration files
719 Other configuration files
710 -------------------------
720 -------------------------
711
721
712 Some example init.d scripts can be found in init.d directory::
722 Some example init.d scripts can be found in init.d directory::
713
723
714 https://secure.rhodecode.org/rhodecode/files/beta/init.d
724 https://secure.rhodecode.org/rhodecode/files/beta/init.d
715
725
716 .. _virtualenv: http://pypi.python.org/pypi/virtualenv
726 .. _virtualenv: http://pypi.python.org/pypi/virtualenv
717 .. _python: http://www.python.org/
727 .. _python: http://www.python.org/
718 .. _mercurial: http://mercurial.selenic.com/
728 .. _mercurial: http://mercurial.selenic.com/
719 .. _celery: http://celeryproject.org/
729 .. _celery: http://celeryproject.org/
720 .. _rabbitmq: http://www.rabbitmq.com/
730 .. _rabbitmq: http://www.rabbitmq.com/
721 .. _python-ldap: http://www.python-ldap.org/
731 .. _python-ldap: http://www.python-ldap.org/
722 .. _mercurial-server: http://www.lshift.net/mercurial-server.html
732 .. _mercurial-server: http://www.lshift.net/mercurial-server.html
723 .. _PublishingRepositories: http://mercurial.selenic.com/wiki/PublishingRepositories
733 .. _PublishingRepositories: http://mercurial.selenic.com/wiki/PublishingRepositories
724 .. _Issues tracker: https://bitbucket.org/marcinkuzminski/rhodecode/issues
734 .. _Issues tracker: https://bitbucket.org/marcinkuzminski/rhodecode/issues
725 .. _google group rhodecode: http://groups.google.com/group/rhodecode No newline at end of file
735 .. _google group rhodecode: http://groups.google.com/group/rhodecode
@@ -1,99 +1,107 b''
1 .. _upgrade:
1 .. _upgrade:
2
2
3 =======
3 =======
4 Upgrade
4 Upgrade
5 =======
5 =======
6
6
7 Upgrading from PyPI (aka "Cheeseshop")
7 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
20 If using a sqlite database, stop the Rhodecode process/daemon/service, and
20 If using a sqlite database, stop the Rhodecode process/daemon/service, and
21 then make a copy of the database file::
21 then make a copy of the database file::
22
22
23 service rhodecode stop
23 service rhodecode stop
24 cp rhodecode.db rhodecode.db.{version}
24 cp rhodecode.db rhodecode.db.{version}
25
25
26
26
27 Back up your configuration file::
27 Back up your configuration file::
28
28
29 cp production.ini production.ini.{version}
29 cp production.ini production.ini.{version}
30
30
31
31
32 Ensure that you are using the Python Virtual Environment that you'd originally
32 Ensure that you are using the Python Virtual Environment that you'd originally
33 installed Rhodecode in::
33 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
41
41
42
42
43 Once you have verified the environment you can upgrade ``Rhodecode`` with::
43 Once you have verified the environment you can upgrade ``Rhodecode`` with::
44
44
45 easy_install -U rhodecode
45 easy_install -U rhodecode
46
46
47 Or::
47 Or::
48
48
49 pip install --upgrade rhodecode
49 pip install --upgrade rhodecode
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::
61 Please always make sure your .ini files are up to date. Often errors are
61 Please always make sure your .ini files are up to date. Often errors are
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
69
69
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
79 .. note::
80 DB schema upgrade library has some limitations and can sometimes fail if you try to
81 upgrade from older major releases. In such case simply run upgrades sequentially, eg.
82 upgrading from 1.2.X to 1.5.X should be done like that: 1.2.X. > 1.3.X > 1.4.X > 1.5.X
83 You can always specify what version of RhodeCode you want to install for example in pip
84 `pip install RhodeCode==1.3.6`
85
86 You may find it helpful to clear out your log file so that new errors are
79 readily apparent::
87 readily apparent::
80
88
81 echo > rhodecode.log
89 echo > rhodecode.log
82
90
83 Once that is complete, you may now start your upgraded Rhodecode Instance::
91 Once that is complete, you may now start your upgraded Rhodecode Instance::
84
92
85 service rhodecode start
93 service rhodecode start
86
94
87 Or::
95 Or::
88
96
89 paster serve /var/www/rhodecode/production.ini
97 paster serve /var/www/rhodecode/production.ini
90
98
91 .. note::
99 .. note::
92 If you're using Celery, make sure you restart all instances of it after
100 If you're using Celery, make sure you restart all instances of it after
93 upgrade.
101 upgrade.
94
102
95 .. _virtualenv: http://pypi.python.org/pypi/virtualenv
103 .. _virtualenv: http://pypi.python.org/pypi/virtualenv
96 .. _python: http://www.python.org/
104 .. _python: http://www.python.org/
97 .. _mercurial: http://mercurial.selenic.com/
105 .. _mercurial: http://mercurial.selenic.com/
98 .. _celery: http://celeryproject.org/
106 .. _celery: http://celeryproject.org/
99 .. _rabbitmq: http://www.rabbitmq.com/
107 .. _rabbitmq: http://www.rabbitmq.com/
@@ -1,107 +1,115 b''
1 .. _general:
1 .. _general:
2
2
3 =======================
3 =======================
4 General RhodeCode usage
4 General RhodeCode usage
5 =======================
5 =======================
6
6
7
7
8 Repository deleting
8 Repository deleting
9 -------------------
9 -------------------
10
10
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). There
17 is also a special command for cleaning such archived repos::
18
19 paster cleanup-repos --older-than=30d production.ini
20
21 This command will scan for archived repositories that are older than 30d,
22 display them and ask if you want to delete them (there's a --dont-ask flag also)
23 If you host big amount of repositories with forks that are constantly deleted
24 it's recommended that you run such command via crontab.
17
25
18 Follow current branch in file view
26 Follow current branch in file view
19 ----------------------------------
27 ----------------------------------
20
28
21 In file view when this checkbox is checked the << and >> arrows will jump
29 In file view when this checkbox is checked the << and >> arrows will jump
22 to changesets within the same branch currently viewing. So for example
30 to changesets within the same branch currently viewing. So for example
23 if someone is viewing files at 'beta' branch and marks `follow current branch`
31 if someone is viewing files at 'beta' branch and marks `follow current branch`
24 checkbox the << and >> buttons will only show him revisions for 'beta' branch
32 checkbox the << and >> buttons will only show him revisions for 'beta' branch
25
33
26
34
27 Compare view from changelog
35 Compare view from changelog
28 ---------------------------
36 ---------------------------
29
37
30 Checkboxes in compare view allow users to view combined compare view. You can
38 Checkboxes in compare view allow users to view combined compare view. You can
31 only show the range between the first and last checkbox (no cherry pick).
39 only show the range between the first and last checkbox (no cherry pick).
32 Clicking more than one checkbox will activate a link in top saying
40 Clicking more than one checkbox will activate a link in top saying
33 `Show selected changes <from-rev> -> <to-rev>` clicking this will bring
41 `Show selected changes <from-rev> -> <to-rev>` clicking this will bring
34 compare view
42 compare view. In this view also it's possible to switch to combined compare.
35
43
36 Compare view is also available from the journal on pushes having more than
44 Compare view is also available from the journal on pushes having more than
37 one changeset
45 one changeset
38
46
39
47
40 Non changeable repository urls
48 Non changeable repository urls
41 ------------------------------
49 ------------------------------
42
50
43 Due to complicated nature of repository grouping, often urls of repositories
51 Due to complicated nature of repository grouping, often urls of repositories
44 can change.
52 can change.
45
53
46 example::
54 example::
47
55
48 #before
56 #before
49 http://server.com/repo_name
57 http://server.com/repo_name
50 # after insertion to test_group group the url will be
58 # after insertion to test_group group the url will be
51 http://server.com/test_group/repo_name
59 http://server.com/test_group/repo_name
52
60
53 This can be an issue for build systems and any other hardcoded scripts, moving
61 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
62 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
63 overcome this RhodeCode introduces a non changable replacement url. It's
56 simply an repository ID prefixed with `_` above urls are also accessible as::
64 simply an repository ID prefixed with `_` above urls are also accessible as::
57
65
58 http://server.com/_<ID>
66 http://server.com/_<ID>
59
67
60 Since ID are always the same moving the repository will not affect such url.
68 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
69 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.
70 for changelogs, files and other can be exchanged with _<ID> syntax.
63
71
64
72
65 Mailing
73 Mailing
66 -------
74 -------
67
75
68 When administrator will fill up the mailing settings in .ini files
76 When administrator will fill up the mailing settings in .ini files
69 RhodeCode will send mails on user registration, or when RhodeCode errors occur
77 RhodeCode will send mails on user registration, or when RhodeCode errors occur
70 on errors the mails will have a detailed traceback of error.
78 on errors the mails will have a detailed traceback of error.
71
79
72
80
73 Mails are also sent for code comments. If someone comments on a changeset
81 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
82 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.
83 (if present in RhodeCode), and to all people mentioned with @mention system.
76
84
77
85
78 Trending source files
86 Trending source files
79 ---------------------
87 ---------------------
80
88
81 Trending source files are calculated based on pre defined dict of known
89 Trending source files are calculated based on pre defined dict of known
82 types and extensions. If You miss some extension or Would like to scan some
90 types and extensions. If You miss some extension or Would like to scan some
83 custom files it's possible to add new types in `LANGUAGES_EXTENSIONS_MAP` dict
91 custom files it's possible to add new types in `LANGUAGES_EXTENSIONS_MAP` dict
84 located in `/rhodecode/lib/celerylib/tasks.py`
92 located in `/rhodecode/lib/celerylib/tasks.py`
85
93
86
94
87 Cloning remote repositories
95 Cloning remote repositories
88 ---------------------------
96 ---------------------------
89
97
90 RhodeCode has an ability to clone remote repos from given remote locations.
98 RhodeCode has an ability to clone remote repos from given remote locations.
91 Currently it support following options:
99 Currently it support following options:
92
100
93 - hg -> hg clone
101 - hg -> hg clone
94 - svn -> hg clone
102 - svn -> hg clone
95 - git -> git clone
103 - git -> git clone
96
104
97
105
98 .. note::
106 .. note::
99
107
100 - *`svn -> hg` cloning requires `hgsubversion` library to be installed.*
108 * `svn -> hg` cloning requires `hgsubversion` library to be installed.*
101
109
102 If you need to clone repositories that are protected via basic auth, you
110 If you need to clone repositories that are protected via basic auth, you
103 might pass the url with stored credentials inside eg.
111 might pass the url with stored credentials inside eg.
104 `http://user:passw@remote.server/repo, RhodeCode will try to login and clone
112 `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
113 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
114 plaintext inside the database. RhodeCode will remove auth info when showing the
107 clone url in summary page.
115 clone url in summary page.
@@ -1,70 +1,82 b''
1 .. _troubleshooting:
1 .. _troubleshooting:
2
2
3
3
4 ===============
4 ===============
5 Troubleshooting
5 Troubleshooting
6 ===============
6 ===============
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
30 Apache, Nginx or other http servers kill the connection due to to large
30 Apache, Nginx or other http servers kill the connection due to to large
31 body.
31 body.
32
32
33 |
33 |
34
34
35 :Q: **Apache doesn't pass basicAuth on pull/push?**
35 :Q: **Apache doesn't pass basicAuth on pull/push?**
36 :A: Make sure you added `WSGIPassAuthorization true`.
36 :A: Make sure you added `WSGIPassAuthorization true`.
37
37
38 |
38 |
39
39
40 :Q: **Git fails on push/pull?**
40 :Q: **Git fails on push/pull?**
41 :A: Make sure you're using an wsgi http server that can handle chunked encoding
41 :A: Make sure you're using an wsgi http server that can handle chunked encoding
42 such as `waitress` or `gunicorn`
42 such as `waitress` or `gunicorn`
43
43
44 |
44 |
45
45
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
53 |
53 |
54
54
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 |
59
60 :Q: **UnicodeDecodeError on Apache mod_wsgi**
61 :A: Please read: https://docs.djangoproject.com/en/dev/howto/deployment/wsgi/modwsgi/#if-you-get-a-unicodeencodeerror
62
63 |
64
65 :Q: **Requests hanging on Windows**
66 :A: Please try out with disabled Antivirus software, there are some known problems with Eset Anitivirus. Make sure
67 you have installed latest windows patches (especially KB2789397)
68
69
70 For further questions search the `Issues tracker`_, or post a message in the
59 `google group rhodecode`_
71 `google group rhodecode`_
60
72
61 .. _virtualenv: http://pypi.python.org/pypi/virtualenv
73 .. _virtualenv: http://pypi.python.org/pypi/virtualenv
62 .. _python: http://www.python.org/
74 .. _python: http://www.python.org/
63 .. _mercurial: http://mercurial.selenic.com/
75 .. _mercurial: http://mercurial.selenic.com/
64 .. _celery: http://celeryproject.org/
76 .. _celery: http://celeryproject.org/
65 .. _rabbitmq: http://www.rabbitmq.com/
77 .. _rabbitmq: http://www.rabbitmq.com/
66 .. _python-ldap: http://www.python-ldap.org/
78 .. _python-ldap: http://www.python-ldap.org/
67 .. _mercurial-server: http://www.lshift.net/mercurial-server.html
79 .. _mercurial-server: http://www.lshift.net/mercurial-server.html
68 .. _PublishingRepositories: http://mercurial.selenic.com/wiki/PublishingRepositories
80 .. _PublishingRepositories: http://mercurial.selenic.com/wiki/PublishingRepositories
69 .. _Issues tracker: https://bitbucket.org/marcinkuzminski/rhodecode/issues
81 .. _Issues tracker: https://bitbucket.org/marcinkuzminski/rhodecode/issues
70 .. _google group rhodecode: http://groups.google.com/group/rhodecode No newline at end of file
82 .. _google group rhodecode: http://groups.google.com/group/rhodecode
General Comments 0
You need to be logged in to leave comments. Login now