Show More
@@ -0,0 +1,47 b'' | |||
|
1 | |RCE| 4.16.1 |RNS| | |
|
2 | ------------------ | |
|
3 | ||
|
4 | Release Date | |
|
5 | ^^^^^^^^^^^^ | |
|
6 | ||
|
7 | - 2019-03-07 | |
|
8 | ||
|
9 | ||
|
10 | New Features | |
|
11 | ^^^^^^^^^^^^ | |
|
12 | ||
|
13 | ||
|
14 | ||
|
15 | General | |
|
16 | ^^^^^^^ | |
|
17 | ||
|
18 | - Docs: added missing reference for the user bookmarks feature. | |
|
19 | ||
|
20 | ||
|
21 | Security | |
|
22 | ^^^^^^^^ | |
|
23 | ||
|
24 | - Comments: prevent from allowing to resolve TODO comments across projects. In certain | |
|
25 | conditions users could resolve TODOs not belonging to the same project. | |
|
26 | ||
|
27 | ||
|
28 | Performance | |
|
29 | ^^^^^^^^^^^ | |
|
30 | ||
|
31 | ||
|
32 | ||
|
33 | Fixes | |
|
34 | ^^^^^ | |
|
35 | ||
|
36 | - Downloads: fixed archive links from file tree view. | |
|
37 | - Markdown: fixed sanitization of checkbox extensions that removed "checked" attribute. | |
|
38 | - Upgrade: fixed upgrades from older versions of RhodeCode. | |
|
39 | - Pull Requests: handle non-ascii branches from short branch selector via URL. | |
|
40 | - Hooks: fixed again unicode problems with new pull request link generator. | |
|
41 | ||
|
42 | ||
|
43 | ||
|
44 | Upgrade notes | |
|
45 | ^^^^^^^^^^^^^ | |
|
46 | ||
|
47 | - Scheduled release addressing problems in 4.16.X releases. |
@@ -50,3 +50,4 b' 4b34ce0d2c3c10510626b3b65044939bb7a2cddf' | |||
|
50 | 50 | 14502561d22e6b70613674cd675ae9a604b7989f v4.15.1 |
|
51 | 51 | 4aaa40b605b01af78a9f6882eca561c54b525ef0 v4.15.2 |
|
52 | 52 | 797744642eca86640ed20bef2cd77445780abaec v4.16.0 |
|
53 | 6c3452c7c25ed35ff269690929e11960ed6ad7d3 v4.16.1 |
@@ -9,6 +9,7 b' Release Notes' | |||
|
9 | 9 | .. toctree:: |
|
10 | 10 | :maxdepth: 1 |
|
11 | 11 | |
|
12 | release-notes-4.16.1.rst | |
|
12 | 13 | release-notes-4.16.0.rst |
|
13 | 14 | release-notes-4.15.2.rst |
|
14 | 15 | release-notes-4.15.1.rst |
@@ -70,7 +70,7 b' markdown_attrs = {' | |||
|
70 | 70 | "abbr": ["title"], |
|
71 | 71 | "acronym": ["title"], |
|
72 | 72 | "pre": ["lang"], |
|
73 | "input": ["type", "disabled"] | |
|
73 | "input": ["type", "disabled", "checked"] | |
|
74 | 74 | } |
|
75 | 75 | |
|
76 | 76 | standard_styles = [ |
@@ -270,7 +270,7 b' def post_push(extras):' | |||
|
270 | 270 | # make lock is a tri state False, True, None. We only release lock on False |
|
271 | 271 | if extras.make_lock is False and not is_shadow_repo(extras): |
|
272 | 272 | Repository.unlock(Repository.get_by_repo_name(extras.repository)) |
|
273 |
msg = 'Released lock on repo ` |
|
|
273 | msg = 'Released lock on repo `{}`\n'.format(safe_str(extras.repository)) | |
|
274 | 274 | output += msg |
|
275 | 275 | |
|
276 | 276 | if extras.locked_by[0]: |
@@ -284,8 +284,8 b' def post_push(extras):' | |||
|
284 | 284 | output += _http_ret.title |
|
285 | 285 | |
|
286 | 286 | if extras.new_refs: |
|
287 | tmpl = extras.server_url + '/' + extras.repository + \ | |
|
288 | "/pull-request/new?{ref_type}={ref_name}" | |
|
287 | tmpl = '{}/{}/pull-request/new?{{ref_type}}={{ref_name}}'.format( | |
|
288 | safe_str(extras.server_url), safe_str(extras.repository)) | |
|
289 | 289 | |
|
290 | 290 | for branch_name in extras.new_refs['branches']: |
|
291 | 291 | output += 'RhodeCode: open pull request link: {}\n'.format( |
@@ -18,26 +18,11 b'' | |||
|
18 | 18 | # RhodeCode Enterprise Edition, including its added features, Support services, |
|
19 | 19 | # and proprietary license terms, please see https://rhodecode.com/licenses/ |
|
20 | 20 | |
|
21 | import re | |
|
22 | ||
|
23 | 21 | import markdown |
|
24 | 22 | |
|
25 | 23 | from mdx_gfm import GithubFlavoredMarkdownExtension # pragma: no cover |
|
26 | 24 | |
|
27 | 25 | |
|
28 | class FlavoredCheckboxPostprocessor(markdown.postprocessors.Postprocessor): | |
|
29 | """ | |
|
30 | Adds `flavored_checkbox_list` class to list of checkboxes | |
|
31 | """ | |
|
32 | ||
|
33 | pattern = re.compile(r'^([*-]) \[([ x])\]') | |
|
34 | ||
|
35 | def run(self, html): | |
|
36 | before = '<ul>\n<li><input type="checkbox"' | |
|
37 | after = '<ul class="flavored_checkbox_list">\n<li><input type="checkbox"' | |
|
38 | return html.replace(before, after) | |
|
39 | ||
|
40 | ||
|
41 | 26 | # Global Vars |
|
42 | 27 | URLIZE_RE = '(%s)' % '|'.join([ |
|
43 | 28 | r'<(?:f|ht)tps?://[^>]*>', |
@@ -26,7 +26,8 b' log = logging.getLogger(__name__)' | |||
|
26 | 26 | |
|
27 | 27 | |
|
28 | 28 | class UpgradeDb(BasePasterCommand): |
|
29 | """Command used for paster to upgrade our database to newer version | |
|
29 | """ | |
|
30 | Command used for paster to upgrade our database to newer version | |
|
30 | 31 | """ |
|
31 | 32 | |
|
32 | 33 | max_args = 1 |
@@ -41,7 +42,7 b' class UpgradeDb(BasePasterCommand):' | |||
|
41 | 42 | def command(self): |
|
42 | 43 | from rhodecode.lib.rc_commands import upgrade_db |
|
43 | 44 | upgrade_db.command( |
|
44 | self.path_to_ini_file, self.options.__dict__.get('force_ask')) | |
|
45 | self.path_to_ini_file, self.options.__dict__.get('force_ask'), None) | |
|
45 | 46 | |
|
46 | 47 | def update_parser(self): |
|
47 | 48 | self.parser.add_option('--sql', |
@@ -1420,8 +1420,8 b' class PullRequestModel(BaseModel):' | |||
|
1420 | 1420 | _ = translator or get_current_request().translate |
|
1421 | 1421 | |
|
1422 | 1422 | commit_id = safe_str(commit_id) if commit_id else None |
|
1423 |
branch = safe_ |
|
|
1424 |
bookmark = safe_ |
|
|
1423 | branch = safe_unicode(branch) if branch else None | |
|
1424 | bookmark = safe_unicode(bookmark) if bookmark else None | |
|
1425 | 1425 | |
|
1426 | 1426 | selected = None |
|
1427 | 1427 | |
@@ -1439,10 +1439,11 b' class PullRequestModel(BaseModel):' | |||
|
1439 | 1439 | ) |
|
1440 | 1440 | |
|
1441 | 1441 | groups = [] |
|
1442 | ||
|
1442 | 1443 | for group_key, ref_list, group_name, match in sources: |
|
1443 | 1444 | group_refs = [] |
|
1444 | 1445 | for ref_name, ref_id in ref_list: |
|
1445 |
ref_key = ' |
|
|
1446 | ref_key = u'{}:{}:{}'.format(group_key, ref_name, ref_id) | |
|
1446 | 1447 | group_refs.append((ref_key, ref_name)) |
|
1447 | 1448 | |
|
1448 | 1449 | if not selected: |
@@ -1456,11 +1457,11 b' class PullRequestModel(BaseModel):' | |||
|
1456 | 1457 | ref = commit_id or branch or bookmark |
|
1457 | 1458 | if ref: |
|
1458 | 1459 | raise CommitDoesNotExistError( |
|
1459 |
'No commit refs could be found matching: |
|
|
1460 | u'No commit refs could be found matching: {}'.format(ref)) | |
|
1460 | 1461 | elif repo.DEFAULT_BRANCH_NAME in repo.branches: |
|
1461 |
selected = 'branch: |
|
|
1462 | repo.DEFAULT_BRANCH_NAME, | |
|
1463 | repo.branches[repo.DEFAULT_BRANCH_NAME] | |
|
1462 | selected = u'branch:{}:{}'.format( | |
|
1463 | safe_unicode(repo.DEFAULT_BRANCH_NAME), | |
|
1464 | safe_unicode(repo.branches[repo.DEFAULT_BRANCH_NAME]) | |
|
1464 | 1465 | ) |
|
1465 | 1466 | elif repo.commit_ids: |
|
1466 | 1467 | # make the user select in this case |
@@ -30,7 +30,7 b'' | |||
|
30 | 30 | % if c.enable_downloads: |
|
31 | 31 | <% at_path = '{}.zip'.format(request.GET.get('at') or c.commit.raw_id[:6]) %> |
|
32 | 32 | <div title="${_('Download tree at {}').format(at_path)}" class="btn btn-default new-file"> |
|
33 |
<a href="${h.route_path('repo_archivefile',repo_name=c.repo_name, fname= |
|
|
33 | <a href="${h.route_path('repo_archivefile',repo_name=c.repo_name, fname='{}.zip'.format(c.commit.raw_id))}"> | |
|
34 | 34 | ${_('Download tree at {}').format(at_path)} |
|
35 | 35 | </a> |
|
36 | 36 | </div> |
General Comments 0
You need to be logged in to leave comments.
Login now