##// END OF EJS Templates
fixes #555 issues when comparing non-related repositories on pull requests or compare view
marcink -
r2810:4a5c56da beta
parent child Browse files
Show More
@@ -1,743 +1,744 b''
1 1 .. _changelog:
2 2
3 3 =========
4 4 Changelog
5 5 =========
6 6
7 7
8 8 1.4.1 (**2012-09-05**)
9 9 ----------------------
10 10
11 11 :status: in-progress
12 12 :branch: beta
13 13
14 14 news
15 15 ++++
16 16
17 17 - always put a comment about code-review status change even if user send
18 18 empty data
19 19 - modified_on column saves repository update and it's going to be used
20 20 later for light version of main page ref #500
21 21 - pull request notifications send much nicer emails with details about pull
22 22 request
23 23
24 24 fixes
25 25 +++++
26 26
27 27 - fixed migrations of permissions that can lead to inconsistency.
28 28 Some users sent feedback that after upgrading from older versions issues
29 29 with updating default permissions occurred. RhodeCode detects that now and
30 30 resets default user permission to initial state if there is a need for that.
31 31 Also forces users to set the default value for new forking permission.
32 32 - #535 improved apache wsgi example configuration in docs
33 33 - fixes #550 mercurial repositories comparision failed when origin repo had
34 34 additional not-common changesets
35 35 - fixed status of code-review in preview windows of pull request
36 36 - git forks were not initialized at bare repos
37 - fixes #555 fixes issues with comparing non-related repositories
37 38
38 39 1.4.0 (**2012-09-03**)
39 40 ----------------------
40 41
41 42 news
42 43 ++++
43 44
44 45 - new codereview system
45 46 - email map, allowing users to have multiple email addresses mapped into
46 47 their accounts
47 48 - improved git-hook system. Now all actions for git are logged into journal
48 49 including pushed revisions, user and IP address
49 50 - changed setup-app into setup-rhodecode and added default options to it.
50 51 - new git repos are created as bare now by default
51 52 - #464 added links to groups in permission box
52 53 - #465 mentions autocomplete inside comments boxes
53 54 - #469 added --update-only option to whoosh to re-index only given list
54 55 of repos in index
55 56 - rhodecode-api CLI client
56 57 - new git http protocol replaced buggy dulwich implementation.
57 58 Now based on pygrack & gitweb
58 59 - Improved RSS/ATOM feeds. Discoverable by browsers using proper headers, and
59 60 reformated based on user suggestions. Additional rss/atom feeds for user
60 61 journal
61 62 - various i18n improvements
62 63 - #478 permissions overview for admin in user edit view
63 64 - File view now displays small gravatars off all authors of given file
64 65 - Implemented landing revisions. Each repository will get landing_rev attribute
65 66 that defines 'default' revision/branch for generating readme files
66 67 - Implemented #509, RhodeCode enforces SSL for push/pulling if requested at
67 68 earliest possible call.
68 69 - Import remote svn repositories to mercurial using hgsubversion.
69 70 - Fixed #508 RhodeCode now has a option to explicitly set forking permissions
70 71 - RhodeCode can use alternative server for generating avatar icons
71 72 - implemented repositories locking. Pull locks, push unlocks. Also can be done
72 73 via API calls
73 74 - #538 form for permissions can handle multiple users at once
74 75
75 76 fixes
76 77 +++++
77 78
78 79 - improved translations
79 80 - fixes issue #455 Creating an archive generates an exception on Windows
80 81 - fixes #448 Download ZIP archive keeps file in /tmp open and results
81 82 in out of disk space
82 83 - fixes issue #454 Search results under Windows include proceeding
83 84 backslash
84 85 - fixed issue #450. Rhodecode no longer will crash when bad revision is
85 86 present in journal data.
86 87 - fix for issue #417, git execution was broken on windows for certain
87 88 commands.
88 89 - fixed #413. Don't disable .git directory for bare repos on deleting
89 90 - fixed issue #459. Changed the way of obtaining logger in reindex task.
90 91 - fixed #453 added ID field in whoosh SCHEMA that solves the issue of
91 92 reindexing modified files
92 93 - fixed #481 rhodecode emails are sent without Date header
93 94 - fixed #458 wrong count when no repos are present
94 95 - fixed issue #492 missing `\ No newline at end of file` test at the end of
95 96 new chunk in html diff
96 97 - full text search now works also for commit messages
97 98
98 99 1.3.6 (**2012-05-17**)
99 100 ----------------------
100 101
101 102 news
102 103 ++++
103 104
104 105 - chinese traditional translation
105 106 - changed setup-app into setup-rhodecode and added arguments for auto-setup
106 107 mode that doesn't need user interaction
107 108
108 109 fixes
109 110 +++++
110 111
111 112 - fixed no scm found warning
112 113 - fixed __future__ import error on rcextensions
113 114 - made simplejson required lib for speedup on JSON encoding
114 115 - fixes #449 bad regex could get more than revisions from parsing history
115 116 - don't clear DB session when CELERY_EAGER is turned ON
116 117
117 118 1.3.5 (**2012-05-10**)
118 119 ----------------------
119 120
120 121 news
121 122 ++++
122 123
123 124 - use ext_json for json module
124 125 - unified annotation view with file source view
125 126 - notification improvements, better inbox + css
126 127 - #419 don't strip passwords for login forms, make rhodecode
127 128 more compatible with LDAP servers
128 129 - Added HTTP_X_FORWARDED_FOR as another method of extracting
129 130 IP for pull/push logs. - moved all to base controller
130 131 - #415: Adding comment to changeset causes reload.
131 132 Comments are now added via ajax and doesn't reload the page
132 133 - #374 LDAP config is discarded when LDAP can't be activated
133 134 - limited push/pull operations are now logged for git in the journal
134 135 - bumped mercurial to 2.2.X series
135 136 - added support for displaying submodules in file-browser
136 137 - #421 added bookmarks in changelog view
137 138
138 139 fixes
139 140 +++++
140 141
141 142 - fixed dev-version marker for stable when served from source codes
142 143 - fixed missing permission checks on show forks page
143 144 - #418 cast to unicode fixes in notification objects
144 145 - #426 fixed mention extracting regex
145 146 - fixed remote-pulling for git remotes remopositories
146 147 - fixed #434: Error when accessing files or changesets of a git repository
147 148 with submodules
148 149 - fixed issue with empty APIKEYS for users after registration ref. #438
149 150 - fixed issue with getting README files from git repositories
150 151
151 152 1.3.4 (**2012-03-28**)
152 153 ----------------------
153 154
154 155 news
155 156 ++++
156 157
157 158 - Whoosh logging is now controlled by the .ini files logging setup
158 159 - added clone-url into edit form on /settings page
159 160 - added help text into repo add/edit forms
160 161 - created rcextensions module with additional mappings (ref #322) and
161 162 post push/pull/create repo hooks callbacks
162 163 - implemented #377 Users view for his own permissions on account page
163 164 - #399 added inheritance of permissions for users group on repos groups
164 165 - #401 repository group is automatically pre-selected when adding repos
165 166 inside a repository group
166 167 - added alternative HTTP 403 response when client failed to authenticate. Helps
167 168 solving issues with Mercurial and LDAP
168 169 - #402 removed group prefix from repository name when listing repositories
169 170 inside a group
170 171 - added gravatars into permission view and permissions autocomplete
171 172 - #347 when running multiple RhodeCode instances, properly invalidates cache
172 173 for all registered servers
173 174
174 175 fixes
175 176 +++++
176 177
177 178 - fixed #390 cache invalidation problems on repos inside group
178 179 - fixed #385 clone by ID url was loosing proxy prefix in URL
179 180 - fixed some unicode problems with waitress
180 181 - fixed issue with escaping < and > in changeset commits
181 182 - fixed error occurring during recursive group creation in API
182 183 create_repo function
183 184 - fixed #393 py2.5 fixes for routes url generator
184 185 - fixed #397 Private repository groups shows up before login
185 186 - fixed #396 fixed problems with revoking users in nested groups
186 187 - fixed mysql unicode issues + specified InnoDB as default engine with
187 188 utf8 charset
188 189 - #406 trim long branch/tag names in changelog to not break UI
189 190
190 191 1.3.3 (**2012-03-02**)
191 192 ----------------------
192 193
193 194 news
194 195 ++++
195 196
196 197
197 198 fixes
198 199 +++++
199 200
200 201 - fixed some python2.5 compatibility issues
201 202 - fixed issues with removed repos was accidentally added as groups, after
202 203 full rescan of paths
203 204 - fixes #376 Cannot edit user (using container auth)
204 205 - fixes #378 Invalid image urls on changeset screen with proxy-prefix
205 206 configuration
206 207 - fixed initial sorting of repos inside repo group
207 208 - fixes issue when user tried to resubmit same permission into user/user_groups
208 209 - bumped beaker version that fixes #375 leap error bug
209 210 - fixed raw_changeset for git. It was generated with hg patch headers
210 211 - fixed vcs issue with last_changeset for filenodes
211 212 - fixed missing commit after hook delete
212 213 - fixed #372 issues with git operation detection that caused a security issue
213 214 for git repos
214 215
215 216 1.3.2 (**2012-02-28**)
216 217 ----------------------
217 218
218 219 news
219 220 ++++
220 221
221 222
222 223 fixes
223 224 +++++
224 225
225 226 - fixed git protocol issues with repos-groups
226 227 - fixed git remote repos validator that prevented from cloning remote git repos
227 228 - fixes #370 ending slashes fixes for repo and groups
228 229 - fixes #368 improved git-protocol detection to handle other clients
229 230 - fixes #366 When Setting Repository Group To Blank Repo Group Wont Be
230 231 Moved To Root
231 232 - fixes #371 fixed issues with beaker/sqlalchemy and non-ascii cache keys
232 233 - fixed #373 missing cascade drop on user_group_to_perm table
233 234
234 235 1.3.1 (**2012-02-27**)
235 236 ----------------------
236 237
237 238 news
238 239 ++++
239 240
240 241
241 242 fixes
242 243 +++++
243 244
244 245 - redirection loop occurs when remember-me wasn't checked during login
245 246 - fixes issues with git blob history generation
246 247 - don't fetch branch for git in file history dropdown. Causes unneeded slowness
247 248
248 249 1.3.0 (**2012-02-26**)
249 250 ----------------------
250 251
251 252 news
252 253 ++++
253 254
254 255 - code review, inspired by github code-comments
255 256 - #215 rst and markdown README files support
256 257 - #252 Container-based and proxy pass-through authentication support
257 258 - #44 branch browser. Filtering of changelog by branches
258 259 - mercurial bookmarks support
259 260 - new hover top menu, optimized to add maximum size for important views
260 261 - configurable clone url template with possibility to specify protocol like
261 262 ssh:// or http:// and also manually alter other parts of clone_url.
262 263 - enabled largefiles extension by default
263 264 - optimized summary file pages and saved a lot of unused space in them
264 265 - #239 option to manually mark repository as fork
265 266 - #320 mapping of commit authors to RhodeCode users
266 267 - #304 hashes are displayed using monospace font
267 268 - diff configuration, toggle white lines and context lines
268 269 - #307 configurable diffs, whitespace toggle, increasing context lines
269 270 - sorting on branches, tags and bookmarks using YUI datatable
270 271 - improved file filter on files page
271 272 - implements #330 api method for listing nodes ar particular revision
272 273 - #73 added linking issues in commit messages to chosen issue tracker url
273 274 based on user defined regular expression
274 275 - added linking of changesets in commit messages
275 276 - new compact changelog with expandable commit messages
276 277 - firstname and lastname are optional in user creation
277 278 - #348 added post-create repository hook
278 279 - #212 global encoding settings is now configurable from .ini files
279 280 - #227 added repository groups permissions
280 281 - markdown gets codehilite extensions
281 282 - new API methods, delete_repositories, grante/revoke permissions for groups
282 283 and repos
283 284
284 285
285 286 fixes
286 287 +++++
287 288
288 289 - rewrote dbsession management for atomic operations, and better error handling
289 290 - fixed sorting of repo tables
290 291 - #326 escape of special html entities in diffs
291 292 - normalized user_name => username in api attributes
292 293 - fixes #298 ldap created users with mixed case emails created conflicts
293 294 on saving a form
294 295 - fixes issue when owner of a repo couldn't revoke permissions for users
295 296 and groups
296 297 - fixes #271 rare JSON serialization problem with statistics
297 298 - fixes #337 missing validation check for conflicting names of a group with a
298 299 repositories group
299 300 - #340 fixed session problem for mysql and celery tasks
300 301 - fixed #331 RhodeCode mangles repository names if the a repository group
301 302 contains the "full path" to the repositories
302 303 - #355 RhodeCode doesn't store encrypted LDAP passwords
303 304
304 305 1.2.5 (**2012-01-28**)
305 306 ----------------------
306 307
307 308 news
308 309 ++++
309 310
310 311 fixes
311 312 +++++
312 313
313 314 - #340 Celery complains about MySQL server gone away, added session cleanup
314 315 for celery tasks
315 316 - #341 "scanning for repositories in None" log message during Rescan was missing
316 317 a parameter
317 318 - fixed creating archives with subrepos. Some hooks were triggered during that
318 319 operation leading to crash.
319 320 - fixed missing email in account page.
320 321 - Reverted Mercurial to 2.0.1 for windows due to bug in Mercurial that makes
321 322 forking on windows impossible
322 323
323 324 1.2.4 (**2012-01-19**)
324 325 ----------------------
325 326
326 327 news
327 328 ++++
328 329
329 330 - RhodeCode is bundled with mercurial series 2.0.X by default, with
330 331 full support to largefiles extension. Enabled by default in new installations
331 332 - #329 Ability to Add/Remove Groups to/from a Repository via AP
332 333 - added requires.txt file with requirements
333 334
334 335 fixes
335 336 +++++
336 337
337 338 - fixes db session issues with celery when emailing admins
338 339 - #331 RhodeCode mangles repository names if the a repository group
339 340 contains the "full path" to the repositories
340 341 - #298 Conflicting e-mail addresses for LDAP and RhodeCode users
341 342 - DB session cleanup after hg protocol operations, fixes issues with
342 343 `mysql has gone away` errors
343 344 - #333 doc fixes for get_repo api function
344 345 - #271 rare JSON serialization problem with statistics enabled
345 346 - #337 Fixes issues with validation of repository name conflicting with
346 347 a group name. A proper message is now displayed.
347 348 - #292 made ldap_dn in user edit readonly, to get rid of confusion that field
348 349 doesn't work
349 350 - #316 fixes issues with web description in hgrc files
350 351
351 352 1.2.3 (**2011-11-02**)
352 353 ----------------------
353 354
354 355 news
355 356 ++++
356 357
357 358 - added option to manage repos group for non admin users
358 359 - added following API methods for get_users, create_user, get_users_groups,
359 360 get_users_group, create_users_group, add_user_to_users_groups, get_repos,
360 361 get_repo, create_repo, add_user_to_repo
361 362 - implements #237 added password confirmation for my account
362 363 and admin edit user.
363 364 - implements #291 email notification for global events are now sent to all
364 365 administrator users, and global config email.
365 366
366 367 fixes
367 368 +++++
368 369
369 370 - added option for passing auth method for smtp mailer
370 371 - #276 issue with adding a single user with id>10 to usergroups
371 372 - #277 fixes windows LDAP settings in which missing values breaks the ldap auth
372 373 - #288 fixes managing of repos in a group for non admin user
373 374
374 375 1.2.2 (**2011-10-17**)
375 376 ----------------------
376 377
377 378 news
378 379 ++++
379 380
380 381 - #226 repo groups are available by path instead of numerical id
381 382
382 383 fixes
383 384 +++++
384 385
385 386 - #259 Groups with the same name but with different parent group
386 387 - #260 Put repo in group, then move group to another group -> repo becomes unavailable
387 388 - #258 RhodeCode 1.2 assumes egg folder is writable (lockfiles problems)
388 389 - #265 ldap save fails sometimes on converting attributes to booleans,
389 390 added getter and setter into model that will prevent from this on db model level
390 391 - fixed problems with timestamps issues #251 and #213
391 392 - fixes #266 RhodeCode allows to create repo with the same name and in
392 393 the same parent as group
393 394 - fixes #245 Rescan of the repositories on Windows
394 395 - fixes #248 cannot edit repos inside a group on windows
395 396 - fixes #219 forking problems on windows
396 397
397 398 1.2.1 (**2011-10-08**)
398 399 ----------------------
399 400
400 401 news
401 402 ++++
402 403
403 404
404 405 fixes
405 406 +++++
406 407
407 408 - fixed problems with basic auth and push problems
408 409 - gui fixes
409 410 - fixed logger
410 411
411 412 1.2.0 (**2011-10-07**)
412 413 ----------------------
413 414
414 415 news
415 416 ++++
416 417
417 418 - implemented #47 repository groups
418 419 - implemented #89 Can setup google analytics code from settings menu
419 420 - implemented #91 added nicer looking archive urls with more download options
420 421 like tags, branches
421 422 - implemented #44 into file browsing, and added follow branch option
422 423 - implemented #84 downloads can be enabled/disabled for each repository
423 424 - anonymous repository can be cloned without having to pass default:default
424 425 into clone url
425 426 - fixed #90 whoosh indexer can index chooses repositories passed in command
426 427 line
427 428 - extended journal with day aggregates and paging
428 429 - implemented #107 source code lines highlight ranges
429 430 - implemented #93 customizable changelog on combined revision ranges -
430 431 equivalent of githubs compare view
431 432 - implemented #108 extended and more powerful LDAP configuration
432 433 - implemented #56 users groups
433 434 - major code rewrites optimized codes for speed and memory usage
434 435 - raw and diff downloads are now in git format
435 436 - setup command checks for write access to given path
436 437 - fixed many issues with international characters and unicode. It uses utf8
437 438 decode with replace to provide less errors even with non utf8 encoded strings
438 439 - #125 added API KEY access to feeds
439 440 - #109 Repository can be created from external Mercurial link (aka. remote
440 441 repository, and manually updated (via pull) from admin panel
441 442 - beta git support - push/pull server + basic view for git repos
442 443 - added followers page and forks page
443 444 - server side file creation (with binary file upload interface)
444 445 and edition with commits powered by codemirror
445 446 - #111 file browser file finder, quick lookup files on whole file tree
446 447 - added quick login sliding menu into main page
447 448 - changelog uses lazy loading of affected files details, in some scenarios
448 449 this can improve speed of changelog page dramatically especially for
449 450 larger repositories.
450 451 - implements #214 added support for downloading subrepos in download menu.
451 452 - Added basic API for direct operations on rhodecode via JSON
452 453 - Implemented advanced hook management
453 454
454 455 fixes
455 456 +++++
456 457
457 458 - fixed file browser bug, when switching into given form revision the url was
458 459 not changing
459 460 - fixed propagation to error controller on simplehg and simplegit middlewares
460 461 - fixed error when trying to make a download on empty repository
461 462 - fixed problem with '[' chars in commit messages in journal
462 463 - fixed #99 Unicode errors, on file node paths with non utf-8 characters
463 464 - journal fork fixes
464 465 - removed issue with space inside renamed repository after deletion
465 466 - fixed strange issue on formencode imports
466 467 - fixed #126 Deleting repository on Windows, rename used incompatible chars.
467 468 - #150 fixes for errors on repositories mapped in db but corrupted in
468 469 filesystem
469 470 - fixed problem with ascendant characters in realm #181
470 471 - fixed problem with sqlite file based database connection pool
471 472 - whoosh indexer and code stats share the same dynamic extensions map
472 473 - fixes #188 - relationship delete of repo_to_perm entry on user removal
473 474 - fixes issue #189 Trending source files shows "show more" when no more exist
474 475 - fixes issue #197 Relative paths for pidlocks
475 476 - fixes issue #198 password will require only 3 chars now for login form
476 477 - fixes issue #199 wrong redirection for non admin users after creating a repository
477 478 - fixes issues #202, bad db constraint made impossible to attach same group
478 479 more than one time. Affects only mysql/postgres
479 480 - fixes #218 os.kill patch for windows was missing sig param
480 481 - improved rendering of dag (they are not trimmed anymore when number of
481 482 heads exceeds 5)
482 483
483 484 1.1.8 (**2011-04-12**)
484 485 ----------------------
485 486
486 487 news
487 488 ++++
488 489
489 490 - improved windows support
490 491
491 492 fixes
492 493 +++++
493 494
494 495 - fixed #140 freeze of python dateutil library, since new version is python2.x
495 496 incompatible
496 497 - setup-app will check for write permission in given path
497 498 - cleaned up license info issue #149
498 499 - fixes for issues #137,#116 and problems with unicode and accented characters.
499 500 - fixes crashes on gravatar, when passed in email as unicode
500 501 - fixed tooltip flickering problems
501 502 - fixed came_from redirection on windows
502 503 - fixed logging modules, and sql formatters
503 504 - windows fixes for os.kill issue #133
504 505 - fixes path splitting for windows issues #148
505 506 - fixed issue #143 wrong import on migration to 1.1.X
506 507 - fixed problems with displaying binary files, thanks to Thomas Waldmann
507 508 - removed name from archive files since it's breaking ui for long repo names
508 509 - fixed issue with archive headers sent to browser, thanks to Thomas Waldmann
509 510 - fixed compatibility for 1024px displays, and larger dpi settings, thanks to
510 511 Thomas Waldmann
511 512 - fixed issue #166 summary pager was skipping 10 revisions on second page
512 513
513 514
514 515 1.1.7 (**2011-03-23**)
515 516 ----------------------
516 517
517 518 news
518 519 ++++
519 520
520 521 fixes
521 522 +++++
522 523
523 524 - fixed (again) #136 installation support for FreeBSD
524 525
525 526
526 527 1.1.6 (**2011-03-21**)
527 528 ----------------------
528 529
529 530 news
530 531 ++++
531 532
532 533 fixes
533 534 +++++
534 535
535 536 - fixed #136 installation support for FreeBSD
536 537 - RhodeCode will check for python version during installation
537 538
538 539 1.1.5 (**2011-03-17**)
539 540 ----------------------
540 541
541 542 news
542 543 ++++
543 544
544 545 - basic windows support, by exchanging pybcrypt into sha256 for windows only
545 546 highly inspired by idea of mantis406
546 547
547 548 fixes
548 549 +++++
549 550
550 551 - fixed sorting by author in main page
551 552 - fixed crashes with diffs on binary files
552 553 - fixed #131 problem with boolean values for LDAP
553 554 - fixed #122 mysql problems thanks to striker69
554 555 - fixed problem with errors on calling raw/raw_files/annotate functions
555 556 with unknown revisions
556 557 - fixed returned rawfiles attachment names with international character
557 558 - cleaned out docs, big thanks to Jason Harris
558 559
559 560 1.1.4 (**2011-02-19**)
560 561 ----------------------
561 562
562 563 news
563 564 ++++
564 565
565 566 fixes
566 567 +++++
567 568
568 569 - fixed formencode import problem on settings page, that caused server crash
569 570 when that page was accessed as first after server start
570 571 - journal fixes
571 572 - fixed option to access repository just by entering http://server/<repo_name>
572 573
573 574 1.1.3 (**2011-02-16**)
574 575 ----------------------
575 576
576 577 news
577 578 ++++
578 579
579 580 - implemented #102 allowing the '.' character in username
580 581 - added option to access repository just by entering http://server/<repo_name>
581 582 - celery task ignores result for better performance
582 583
583 584 fixes
584 585 +++++
585 586
586 587 - fixed ehlo command and non auth mail servers on smtp_lib. Thanks to
587 588 apollo13 and Johan Walles
588 589 - small fixes in journal
589 590 - fixed problems with getting setting for celery from .ini files
590 591 - registration, password reset and login boxes share the same title as main
591 592 application now
592 593 - fixed #113: to high permissions to fork repository
593 594 - fixed problem with '[' chars in commit messages in journal
594 595 - removed issue with space inside renamed repository after deletion
595 596 - db transaction fixes when filesystem repository creation failed
596 597 - fixed #106 relation issues on databases different than sqlite
597 598 - fixed static files paths links to use of url() method
598 599
599 600 1.1.2 (**2011-01-12**)
600 601 ----------------------
601 602
602 603 news
603 604 ++++
604 605
605 606
606 607 fixes
607 608 +++++
608 609
609 610 - fixes #98 protection against float division of percentage stats
610 611 - fixed graph bug
611 612 - forced webhelpers version since it was making troubles during installation
612 613
613 614 1.1.1 (**2011-01-06**)
614 615 ----------------------
615 616
616 617 news
617 618 ++++
618 619
619 620 - added force https option into ini files for easier https usage (no need to
620 621 set server headers with this options)
621 622 - small css updates
622 623
623 624 fixes
624 625 +++++
625 626
626 627 - fixed #96 redirect loop on files view on repositories without changesets
627 628 - fixed #97 unicode string passed into server header in special cases (mod_wsgi)
628 629 and server crashed with errors
629 630 - fixed large tooltips problems on main page
630 631 - fixed #92 whoosh indexer is more error proof
631 632
632 633 1.1.0 (**2010-12-18**)
633 634 ----------------------
634 635
635 636 news
636 637 ++++
637 638
638 639 - rewrite of internals for vcs >=0.1.10
639 640 - uses mercurial 1.7 with dotencode disabled for maintaining compatibility
640 641 with older clients
641 642 - anonymous access, authentication via ldap
642 643 - performance upgrade for cached repos list - each repository has its own
643 644 cache that's invalidated when needed.
644 645 - performance upgrades on repositories with large amount of commits (20K+)
645 646 - main page quick filter for filtering repositories
646 647 - user dashboards with ability to follow chosen repositories actions
647 648 - sends email to admin on new user registration
648 649 - added cache/statistics reset options into repository settings
649 650 - more detailed action logger (based on hooks) with pushed changesets lists
650 651 and options to disable those hooks from admin panel
651 652 - introduced new enhanced changelog for merges that shows more accurate results
652 653 - new improved and faster code stats (based on pygments lexers mapping tables,
653 654 showing up to 10 trending sources for each repository. Additionally stats
654 655 can be disabled in repository settings.
655 656 - gui optimizations, fixed application width to 1024px
656 657 - added cut off (for large files/changesets) limit into config files
657 658 - whoosh, celeryd, upgrade moved to paster command
658 659 - other than sqlite database backends can be used
659 660
660 661 fixes
661 662 +++++
662 663
663 664 - fixes #61 forked repo was showing only after cache expired
664 665 - fixes #76 no confirmation on user deletes
665 666 - fixes #66 Name field misspelled
666 667 - fixes #72 block user removal when he owns repositories
667 668 - fixes #69 added password confirmation fields
668 669 - fixes #87 RhodeCode crashes occasionally on updating repository owner
669 670 - fixes #82 broken annotations on files with more than 1 blank line at the end
670 671 - a lot of fixes and tweaks for file browser
671 672 - fixed detached session issues
672 673 - fixed when user had no repos he would see all repos listed in my account
673 674 - fixed ui() instance bug when global hgrc settings was loaded for server
674 675 instance and all hgrc options were merged with our db ui() object
675 676 - numerous small bugfixes
676 677
677 678 (special thanks for TkSoh for detailed feedback)
678 679
679 680
680 681 1.0.2 (**2010-11-12**)
681 682 ----------------------
682 683
683 684 news
684 685 ++++
685 686
686 687 - tested under python2.7
687 688 - bumped sqlalchemy and celery versions
688 689
689 690 fixes
690 691 +++++
691 692
692 693 - fixed #59 missing graph.js
693 694 - fixed repo_size crash when repository had broken symlinks
694 695 - fixed python2.5 crashes.
695 696
696 697
697 698 1.0.1 (**2010-11-10**)
698 699 ----------------------
699 700
700 701 news
701 702 ++++
702 703
703 704 - small css updated
704 705
705 706 fixes
706 707 +++++
707 708
708 709 - fixed #53 python2.5 incompatible enumerate calls
709 710 - fixed #52 disable mercurial extension for web
710 711 - fixed #51 deleting repositories don't delete it's dependent objects
711 712
712 713
713 714 1.0.0 (**2010-11-02**)
714 715 ----------------------
715 716
716 717 - security bugfix simplehg wasn't checking for permissions on commands
717 718 other than pull or push.
718 719 - fixed doubled messages after push or pull in admin journal
719 720 - templating and css corrections, fixed repo switcher on chrome, updated titles
720 721 - admin menu accessible from options menu on repository view
721 722 - permissions cached queries
722 723
723 724 1.0.0rc4 (**2010-10-12**)
724 725 --------------------------
725 726
726 727 - fixed python2.5 missing simplejson imports (thanks to Jens BΓ€ckman)
727 728 - removed cache_manager settings from sqlalchemy meta
728 729 - added sqlalchemy cache settings to ini files
729 730 - validated password length and added second try of failure on paster setup-app
730 731 - fixed setup database destroy prompt even when there was no db
731 732
732 733
733 734 1.0.0rc3 (**2010-10-11**)
734 735 -------------------------
735 736
736 737 - fixed i18n during installation.
737 738
738 739 1.0.0rc2 (**2010-10-11**)
739 740 -------------------------
740 741
741 742 - Disabled dirsize in file browser, it's causing nasty bug when dir renames
742 743 occure. After vcs is fixed it'll be put back again.
743 744 - templating/css rewrites, optimized css. No newline at end of file
@@ -1,260 +1,262 b''
1 1 # -*- coding: utf-8 -*-
2 2 """
3 3 rhodecode.model.pull_request
4 4 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
5 5
6 6 pull request model for RhodeCode
7 7
8 8 :created_on: Jun 6, 2012
9 9 :author: marcink
10 10 :copyright: (C) 2012-2012 Marcin Kuzminski <marcin@python-works.com>
11 11 :license: GPLv3, see COPYING for more details.
12 12 """
13 13 # This program is free software: you can redistribute it and/or modify
14 14 # it under the terms of the GNU General Public License as published by
15 15 # the Free Software Foundation, either version 3 of the License, or
16 16 # (at your option) any later version.
17 17 #
18 18 # This program is distributed in the hope that it will be useful,
19 19 # but WITHOUT ANY WARRANTY; without even the implied warranty of
20 20 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 21 # GNU General Public License for more details.
22 22 #
23 23 # You should have received a copy of the GNU General Public License
24 24 # along with this program. If not, see <http://www.gnu.org/licenses/>.
25 25
26 26 import logging
27 27 import binascii
28 28 import datetime
29 29
30 30 from pylons.i18n.translation import _
31 31
32 32 from rhodecode.model.meta import Session
33 33 from rhodecode.lib import helpers as h
34 34 from rhodecode.model import BaseModel
35 35 from rhodecode.model.db import PullRequest, PullRequestReviewers, Notification
36 36 from rhodecode.model.notification import NotificationModel
37 37 from rhodecode.lib.utils2 import safe_unicode
38 38
39 39 from rhodecode.lib.vcs.utils.hgcompat import discovery, localrepo, scmutil, \
40 40 findcommonoutgoing
41 41
42 42 log = logging.getLogger(__name__)
43 43
44 44
45 45 class PullRequestModel(BaseModel):
46 46
47 47 cls = PullRequest
48 48
49 49 def __get_pull_request(self, pull_request):
50 50 return self._get_instance(PullRequest, pull_request)
51 51
52 52 def get_all(self, repo):
53 53 repo = self._get_repo(repo)
54 54 return PullRequest.query().filter(PullRequest.other_repo == repo).all()
55 55
56 56 def create(self, created_by, org_repo, org_ref, other_repo,
57 57 other_ref, revisions, reviewers, title, description=None):
58 58
59 59 created_by_user = self._get_user(created_by)
60 60 org_repo = self._get_repo(org_repo)
61 61 other_repo = self._get_repo(other_repo)
62 62
63 63 new = PullRequest()
64 64 new.org_repo = org_repo
65 65 new.org_ref = org_ref
66 66 new.other_repo = other_repo
67 67 new.other_ref = other_ref
68 68 new.revisions = revisions
69 69 new.title = title
70 70 new.description = description
71 71 new.author = created_by_user
72 72 self.sa.add(new)
73 73 Session().flush()
74 74 #members
75 75 for member in reviewers:
76 76 _usr = self._get_user(member)
77 77 reviewer = PullRequestReviewers(_usr, new)
78 78 self.sa.add(reviewer)
79 79
80 80 #notification to reviewers
81 81 notif = NotificationModel()
82 82
83 83 pr_url = h.url('pullrequest_show', repo_name=other_repo.repo_name,
84 84 pull_request_id=new.pull_request_id,
85 85 qualified=True,
86 86 )
87 87 subject = safe_unicode(
88 88 h.link_to(
89 89 _('%(user)s wants you to review pull request #%(pr_id)s') % \
90 90 {'user': created_by_user.username,
91 91 'pr_id': new.pull_request_id},
92 92 pr_url
93 93 )
94 94 )
95 95 body = description
96 96 kwargs = {
97 97 'pr_title': title,
98 98 'pr_user_created': h.person(created_by_user.email),
99 99 'pr_repo_url': h.url('summary_home', repo_name=other_repo.repo_name,
100 100 qualified=True,),
101 101 'pr_url': pr_url,
102 102 'pr_revisions': revisions
103 103 }
104 104 notif.create(created_by=created_by_user, subject=subject, body=body,
105 105 recipients=reviewers,
106 106 type_=Notification.TYPE_PULL_REQUEST, email_kwargs=kwargs)
107 107 return new
108 108
109 109 def update_reviewers(self, pull_request, reviewers_ids):
110 110 reviewers_ids = set(reviewers_ids)
111 111 pull_request = self.__get_pull_request(pull_request)
112 112 current_reviewers = PullRequestReviewers.query()\
113 113 .filter(PullRequestReviewers.pull_request==
114 114 pull_request)\
115 115 .all()
116 116 current_reviewers_ids = set([x.user.user_id for x in current_reviewers])
117 117
118 118 to_add = reviewers_ids.difference(current_reviewers_ids)
119 119 to_remove = current_reviewers_ids.difference(reviewers_ids)
120 120
121 121 log.debug("Adding %s reviewers" % to_add)
122 122 log.debug("Removing %s reviewers" % to_remove)
123 123
124 124 for uid in to_add:
125 125 _usr = self._get_user(uid)
126 126 reviewer = PullRequestReviewers(_usr, pull_request)
127 127 self.sa.add(reviewer)
128 128
129 129 for uid in to_remove:
130 130 reviewer = PullRequestReviewers.query()\
131 131 .filter(PullRequestReviewers.user_id==uid,
132 132 PullRequestReviewers.pull_request==pull_request)\
133 133 .scalar()
134 134 if reviewer:
135 135 self.sa.delete(reviewer)
136 136
137 137 def delete(self, pull_request):
138 138 pull_request = self.__get_pull_request(pull_request)
139 139 Session().delete(pull_request)
140 140
141 141 def close_pull_request(self, pull_request):
142 142 pull_request = self.__get_pull_request(pull_request)
143 143 pull_request.status = PullRequest.STATUS_CLOSED
144 144 pull_request.updated_on = datetime.datetime.now()
145 145 self.sa.add(pull_request)
146 146
147 147 def _get_changesets(self, org_repo, org_ref, other_repo, other_ref,
148 148 discovery_data):
149 149 """
150 150 Returns a list of changesets that are incoming from org_repo@org_ref
151 151 to other_repo@other_ref
152 152
153 153 :param org_repo:
154 154 :type org_repo:
155 155 :param org_ref:
156 156 :type org_ref:
157 157 :param other_repo:
158 158 :type other_repo:
159 159 :param other_ref:
160 160 :type other_ref:
161 161 :param tmp:
162 162 :type tmp:
163 163 """
164 164 changesets = []
165 165 #case two independent repos
166 166 common, incoming, rheads = discovery_data
167 167 if org_repo != other_repo and incoming:
168 168 obj = findcommonoutgoing(org_repo._repo,
169 localrepo.locallegacypeer(other_repo._repo.local()))
169 localrepo.locallegacypeer(other_repo._repo.local()),
170 force=True)
170 171 revs = obj.missing
171 172
172 173 for cs in reversed(map(binascii.hexlify, revs)):
173 174 changesets.append(org_repo.get_changeset(cs))
174 175 else:
175 176 _revset_predicates = {
176 177 'branch': 'branch',
177 178 'book': 'bookmark',
178 179 'tag': 'tag',
179 180 'rev': 'id',
180 181 }
181 182
182 183 revs = [
183 184 "ancestors(%s('%s')) and not ancestors(%s('%s'))" % (
184 185 _revset_predicates[org_ref[0]], org_ref[1],
185 186 _revset_predicates[other_ref[0]], other_ref[1]
186 187 )
187 188 ]
188 189
189 190 out = scmutil.revrange(org_repo._repo, revs)
190 191 for cs in reversed(out):
191 192 changesets.append(org_repo.get_changeset(cs))
192 193
193 194 return changesets
194 195
195 196 def _get_discovery(self, org_repo, org_ref, other_repo, other_ref):
196 197 """
197 198 Get's mercurial discovery data used to calculate difference between
198 199 repos and refs
199 200
200 201 :param org_repo:
201 202 :type org_repo:
202 203 :param org_ref:
203 204 :type org_ref:
204 205 :param other_repo:
205 206 :type other_repo:
206 207 :param other_ref:
207 208 :type other_ref:
208 209 """
209 210
210 211 _org_repo = org_repo._repo
211 212 org_rev_type, org_rev = org_ref
212 213
213 214 _other_repo = other_repo._repo
214 215 other_rev_type, other_rev = other_ref
215 216
216 217 log.debug('Doing discovery for %s@%s vs %s@%s' % (
217 218 org_repo, org_ref, other_repo, other_ref)
218 219 )
220
219 221 #log.debug('Filter heads are %s[%s]' % ('', org_ref[1]))
220 222 org_peer = localrepo.locallegacypeer(_org_repo.local())
221 223 tmp = discovery.findcommonincoming(
222 224 repo=_other_repo, # other_repo we check for incoming
223 225 remote=org_peer, # org_repo source for incoming
224 226 heads=[_other_repo[other_rev].node(),
225 227 _org_repo[org_rev].node()],
226 force=False
228 force=True
227 229 )
228 230 return tmp
229 231
230 232 def get_compare_data(self, org_repo, org_ref, other_repo, other_ref):
231 233 """
232 234 Returns a tuple of incomming changesets, and discoverydata cache
233 235
234 236 :param org_repo:
235 237 :type org_repo:
236 238 :param org_ref:
237 239 :type org_ref:
238 240 :param other_repo:
239 241 :type other_repo:
240 242 :param other_ref:
241 243 :type other_ref:
242 244 """
243 245
244 246 if len(org_ref) != 2 or not isinstance(org_ref, (list, tuple)):
245 247 raise Exception('org_ref must be a two element list/tuple')
246 248
247 249 if len(other_ref) != 2 or not isinstance(org_ref, (list, tuple)):
248 250 raise Exception('other_ref must be a two element list/tuple')
249 251
250 252 discovery_data = self._get_discovery(org_repo.scm_instance,
251 253 org_ref,
252 254 other_repo.scm_instance,
253 255 other_ref)
254 256 cs_ranges = self._get_changesets(org_repo.scm_instance,
255 257 org_ref,
256 258 other_repo.scm_instance,
257 259 other_ref,
258 260 discovery_data)
259 261
260 262 return cs_ranges, discovery_data
General Comments 0
You need to be logged in to leave comments. Login now