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