RhodeCode - issues: Issueshttps://issues.rhodecode.com/https://issues.rhodecode.com/favicon.ico?16960560042023-10-17T16:32:54ZRhodeCode - issues
Redmine RhodeCode CE/EE - Bug #5698 (Resolved): 5.0.0 release - documentation 4.X -> 5.X migration step-b...https://issues.rhodecode.com/issues/56982023-10-17T16:32:54ZMarcin Kuzminski [CTO]marcin@rhodecode.com
<p>In order to smoothen the transition from 4.X release we need to write a guide how to move to 5.X series.</p>
RhodeCode CE/EE - Feature #5611 (Resolved): Add information "is the pull request up to date?" in ...https://issues.rhodecode.com/issues/56112020-04-05T01:20:30ZOlivier Renaud
<p>There is an information that I miss in the pull request page. I would like to know if the pull request is already up to date, or if there are new commits in the source branch that will create a new version of the PR if I click "update commits".</p>
<p>The only way I can think of getting this information today, is to click "expand commits" and memorize the sha1 of the last commit, and then to click the link to the source branch in "commit flow" and visualize in the log where the commit I memorized is located.</p>
<p>The UI I imagine:</p>
<ul>
<li>If the PR is up to date, the "update commits" button is disabled</li>
<li>If the PR is not, the "update commits" is enabled with the text "This PR can be updated with x new commits from the source branch", with an option to view the details of these commits.</li>
</ul>
RhodeCode CE/EE - Task #5537 (Resolved): Add owner to create_pull_request APIhttps://issues.rhodecode.com/issues/55372019-02-13T10:44:04ZMarcin Kuzminski [CTO]marcin@rhodecode.com
<p>Similar like:<br>
<a href="https://code.rhodecode.com/rhodecode-enterprise-ce/files/fd4b2bf5348f1def66ac9495be06eac1e60f8fae/rhodecode/api/views/repo_api.py#L562" class="external">https://code.rhodecode.com/rhodecode-enterprise-ce/files/fd4b2bf5348f1def66ac9495be06eac1e60f8fae/rhodecode/api/views/repo_api.py#L562</a><br>
<a href="https://code.rhodecode.com/rhodecode-enterprise-ce/files/fd4b2bf5348f1def66ac9495be06eac1e60f8fae/rhodecode/api/views/repo_api.py#L640" class="external">https://code.rhodecode.com/rhodecode-enterprise-ce/files/fd4b2bf5348f1def66ac9495be06eac1e60f8fae/rhodecode/api/views/repo_api.py#L640</a></p>
<p>We should expose this to create_pull_request.</p>
<p>ps. We should maybe check all other API functions and make this type of functionality consistent across all create_ type function</p>
RhodeCode CE/EE - Feature #5536 (Resolved): Ability to disable server-side SSH key generationhttps://issues.rhodecode.com/issues/55362019-02-11T19:42:50ZCatalin Salgau
<p>Generating a private/public SSH key pair may be user-friendly, but shipping this from the server can pose security concerns.<br>
Please add a way to disable key generation and/or provide client client-side key generation(Web Crypto APIs are available in most modern browsers)<br>
Thanks</p>
RhodeCode CE/EE - Bug #5502 (Resolved): 500 error when using multiple custom branch permissionshttps://issues.rhodecode.com/issues/55022018-10-25T00:57:14ZFrank Ecsedy
<p>We created 4 branch patterns with priorities 10, 20, 30 and 40. I created a new group that has force push permissions on those branches. When I add a user to the new group and try to view their permissions it is either wrong (no extra permissions show) or it throws a 500. Here is the exception log:</p>
<p>Traceback (most recent call last):<br>
File "/opt/rhodecode/store/mxgf7jxv7p2nw91a4y9c89y8jia712g5-python2.7-pyramid-1.9.2/lib/python2.7/site-packages/pyramid/tweens.py", line 39, in excview_tween<br>
response = handler(request)<br>
File "/opt/rhodecode/store/mxgf7jxv7p2nw91a4y9c89y8jia712g5-python2.7-pyramid-1.9.2/lib/python2.7/site-packages/pyramid/router.py", line 156, in handle_request<br>
view_name<br>
File "/opt/rhodecode/store/mxgf7jxv7p2nw91a4y9c89y8jia712g5-python2.7-pyramid-1.9.2/lib/python2.7/site-packages/pyramid/view.py", line 642, in <u>call_view<br>
response = view_callable(context, request)<br>
File "/opt/rhodecode/store/mxgf7jxv7p2nw91a4y9c89y8jia712g5-python2.7-pyramid-1.9.2/lib/python2.7/site-packages/pyramid/viewderivers.py", line 390, in attr_view<br>
return view(context, request)<br>
File "/opt/rhodecode/store/mxgf7jxv7p2nw91a4y9c89y8jia712g5-python2.7-pyramid-1.9.2/lib/python2.7/site-packages/pyramid/viewderivers.py", line 368, in predicate_wrapper<br>
return view(context, request)<br>
File "/opt/rhodecode/store/mxgf7jxv7p2nw91a4y9c89y8jia712g5-python2.7-pyramid-1.9.2/lib/python2.7/site-packages/pyramid/viewderivers.py", line 462, in rendered_view<br>
request, result, view_inst, context)<br>
File "/opt/rhodecode/store/mxgf7jxv7p2nw91a4y9c89y8jia712g5-python2.7-pyramid-1.9.2/lib/python2.7/site-packages/pyramid/renderers.py", line 435, in render_view<br>
return self.render_to_response(response, system, request=request)<br>
File "/opt/rhodecode/store/mxgf7jxv7p2nw91a4y9c89y8jia712g5-python2.7-pyramid-1.9.2/lib/python2.7/site-packages/pyramid/renderers.py", line 458, in render_to_response<br>
result = self.render(value, system_values, request=request)<br>
File "/opt/rhodecode/store/mxgf7jxv7p2nw91a4y9c89y8jia712g5-python2.7-pyramid-1.9.2/lib/python2.7/site-packages/pyramid/renderers.py", line 454, in render<br>
result = renderer(value, system_values)<br>
File "/opt/rhodecode/store/86qd4x71plpan4xz807ng3g09hcc2l3p-python2.7-pyramid-mako-1.0.2/lib/python2.7/site-packages/pyramid_mako/</u><u>init</u><u>.py", line 156, in __call</u>_<br>
reraise(MakoRenderingException(errtext), None, exc_info[2])<br>
File "/opt/rhodecode/store/86qd4x71plpan4xz807ng3g09hcc2l3p-python2.7-pyramid-mako-1.0.2/lib/python2.7/site-packages/pyramid_mako/<strong>init</strong>.py", line 148, in <strong>call</strong><br>
result = template.render_unicode(*<em>system)<br>
File "/opt/rhodecode/store/ida848f1ziml06glki8mawhi38h2k4fv-python2.7-mako-1.0.7/lib/python2.7/site-packages/mako/template.py", line 471, in render_unicode<br>
as_unicode=True)<br>
File "/opt/rhodecode/store/ida848f1ziml06glki8mawhi38h2k4fv-python2.7-mako-1.0.7/lib/python2.7/site-packages/mako/runtime.py", line 838, in _render<br>
*</em><u>kwargs_for_callable(callable</u>, data))<br>
File "/opt/rhodecode/store/ida848f1ziml06glki8mawhi38h2k4fv-python2.7-mako-1.0.7/lib/python2.7/site-packages/mako/runtime.py", line 873, in <u>render_context<br>
_exec_template(inherit, lclcontext, args=args, kwargs=kwargs)<br>
File "/opt/rhodecode/store/ida848f1ziml06glki8mawhi38h2k4fv-python2.7-mako-1.0.7/lib/python2.7/site-packages/mako/runtime.py", line 899, in _exec_template<br>
callable</u>(context, *args, **kwargs)<br>
File "<u>base_root_mako", line 99, in render_body<br>
File "_base_base_mako", line 54, in render_body<br>
File "rhodecode_templates_admin_users_user_edit_mako", line 133, in render_main<br>
File "/opt/rhodecode/store/ida848f1ziml06glki8mawhi38h2k4fv-python2.7-mako-1.0.7/lib/python2.7/site-packages/mako/runtime.py", line 761, in _include_file<br>
callable</u>(ctx, **kwargs)<br>
File "<u>admin_users_user_edit_perms_summary_mako", line 35, in render_body<br>
File "/opt/rhodecode/store/rq6n4kdw9z8d44km9njnr5rxxyh01p4h-python2.7-zope.cachedescriptors-4.3.1/lib/python2.7/site-packages/zope/cachedescriptors/property.py", line 106, in __get</u>_<br>
value = func(inst)<br>
File "/opt/rhodecode/store/rn12s997k08lbfzg074fca3x206ng6si-python2.7-rhodecode-enterprise-ce-4.13.3/lib/python2.7/site-packages/rhodecode/lib/auth.py", line 1076, in permissions_full_details<br>
user=self, cache=None, calculate_super_admin=True)<br>
File "/opt/rhodecode/store/rn12s997k08lbfzg074fca3x206ng6si-python2.7-rhodecode-enterprise-ce-4.13.3/lib/python2.7/site-packages/rhodecode/lib/auth.py", line 1211, in get_perms<br>
calculate_super_admin)<br>
File "/opt/rhodecode/store/rn12s997k08lbfzg074fca3x206ng6si-python2.7-rhodecode-enterprise-ce-4.13.3/lib/python2.7/site-packages/rhodecode/lib/rc_cache/utils.py", line 79, in decorate<br>
return self.get_or_create(key, creator, timeout, should_cache_fn)<br>
File "/opt/rhodecode/store/v33y23yxrp8sa4l232vf4i5nmwnclili-python2.7-dogpile.cache-0.6.6/lib/python2.7/site-packages/dogpile/cache/region.py", line 864, in get_or_create<br>
async_creator) as value:<br>
File "/opt/rhodecode/store/v33y23yxrp8sa4l232vf4i5nmwnclili-python2.7-dogpile.cache-0.6.6/lib/python2.7/site-packages/dogpile/lock.py", line 186, in <strong>enter</strong><br>
return self._enter()<br>
File "/opt/rhodecode/store/v33y23yxrp8sa4l232vf4i5nmwnclili-python2.7-dogpile.cache-0.6.6/lib/python2.7/site-packages/dogpile/lock.py", line 93, in _enter<br>
generated = self._enter_create(value, createdtime)<br>
File "/opt/rhodecode/store/v33y23yxrp8sa4l232vf4i5nmwnclili-python2.7-dogpile.cache-0.6.6/lib/python2.7/site-packages/dogpile/lock.py", line 179, in _enter_create<br>
return self.creator()<br>
File "/opt/rhodecode/store/v33y23yxrp8sa4l232vf4i5nmwnclili-python2.7-dogpile.cache-0.6.6/lib/python2.7/site-packages/dogpile/cache/region.py", line 831, in gen_value<br>
created_value = creator()<br>
File "/opt/rhodecode/store/rn12s997k08lbfzg074fca3x206ng6si-python2.7-rhodecode-enterprise-ce-4.13.3/lib/python2.7/site-packages/rhodecode/lib/rc_cache/utils.py", line 71, in creator<br>
return fn(*arg, **kw)<br>
File "/opt/rhodecode/store/rn12s997k08lbfzg074fca3x206ng6si-python2.7-rhodecode-enterprise-ce-4.13.3/lib/python2.7/site-packages/rhodecode/lib/auth.py", line 1205, in compute_perm_tree<br>
explicit, algo, calculate_super_admin)<br>
File "/opt/rhodecode/store/rn12s997k08lbfzg074fca3x206ng6si-python2.7-rhodecode-enterprise-ce-4.13.3/lib/python2.7/site-packages/rhodecode/lib/auth.py", line 320, in _cached_perms_data<br>
return permissions.calculate()<br>
File "/opt/rhodecode/store/rn12s997k08lbfzg074fca3x206ng6si-python2.7-rhodecode-enterprise-ce-4.13.3/lib/python2.7/site-packages/rhodecode/lib/auth.py", line 450, in calculate<br>
self._calculate_repository_branch_permissions()<br>
File "/opt/rhodecode/store/rn12s997k08lbfzg074fca3x206ng6si-python2.7-rhodecode-enterprise-ce-4.13.3/lib/python2.7/site-packages/rhodecode/lib/auth.py", line 789, in _calculate_repository_branch_permissions<br>
p = self._choose_permission(p, cur_perm)<br>
File "/opt/rhodecode/store/rn12s997k08lbfzg074fca3x206ng6si-python2.7-rhodecode-enterprise-ce-4.13.3/lib/python2.7/site-packages/rhodecode/lib/auth.py", line 942, in _choose_permission<br>
cur_perm_val = Permission.PERM_WEIGHTS[cur_perm]<br>
MakoRenderingException: </p>
<p>Traceback (most recent call last):<br>
File "/opt/rhodecode/store/86qd4x71plpan4xz807ng3g09hcc2l3p-python2.7-pyramid-mako-1.0.2/lib/python2.7/site-packages/pyramid_mako/<strong>init</strong>.py", line 148, in <strong>call</strong><br>
result = template.render_unicode(*<em>system)<br>
File "/opt/rhodecode/store/ida848f1ziml06glki8mawhi38h2k4fv-python2.7-mako-1.0.7/lib/python2.7/site-packages/mako/template.py", line 471, in render_unicode<br>
as_unicode=True)<br>
File "/opt/rhodecode/store/ida848f1ziml06glki8mawhi38h2k4fv-python2.7-mako-1.0.7/lib/python2.7/site-packages/mako/runtime.py", line 838, in _render<br>
*</em><u>kwargs_for_callable(callable</u>, data))<br>
File "/opt/rhodecode/store/ida848f1ziml06glki8mawhi38h2k4fv-python2.7-mako-1.0.7/lib/python2.7/site-packages/mako/runtime.py", line 873, in <u>render_context<br>
_exec_template(inherit, lclcontext, args=args, kwargs=kwargs)<br>
File "/opt/rhodecode/store/ida848f1ziml06glki8mawhi38h2k4fv-python2.7-mako-1.0.7/lib/python2.7/site-packages/mako/runtime.py", line 899, in _exec_template<br>
callable</u>(context, *args, **kwargs)<br>
File "/opt/rhodecode/store/rn12s997k08lbfzg074fca3x206ng6si-python2.7-rhodecode-enterprise-ce-4.13.3/lib/python2.7/site-packages/rhodecode/templates/base/root.mako", line 156, in render_body<br>
${next.body()}<br>
File "/opt/rhodecode/store/rn12s997k08lbfzg074fca3x206ng6si-python2.7-rhodecode-enterprise-ce-4.13.3/lib/python2.7/site-packages/rhodecode/templates/base/base.mako", line 32, in render_body<br>
${next.main()}<br>
File "/opt/rhodecode/store/rn12s997k08lbfzg074fca3x206ng6si-python2.7-rhodecode-enterprise-ce-4.13.3/lib/python2.7/site-packages/rhodecode/templates/admin/users/user_edit.mako", line 53, in render_main<br>
<%include file="/admin/users/user_edit_${c.active}.mako"/><br>
File "/opt/rhodecode/store/ida848f1ziml06glki8mawhi38h2k4fv-python2.7-mako-1.0.7/lib/python2.7/site-packages/mako/runtime.py", line 761, in <u>include_file<br>
callable</u>(ctx, **kwargs)<br>
File "/opt/rhodecode/store/rn12s997k08lbfzg074fca3x206ng6si-python2.7-rhodecode-enterprise-ce-4.13.3/lib/python2.7/site-packages/rhodecode/templates/admin/users/user_edit_perms_summary.mako", line 3, in render_body<br>
${p.perms_summary(c.perm_user.permissions_full_details, show_all=True, side_link=h.route_path('edit_user_perms_summary_json', user_id=c.user.user_id))}<br>
File "/opt/rhodecode/store/rq6n4kdw9z8d44km9njnr5rxxyh01p4h-python2.7-zope.cachedescriptors-4.3.1/lib/python2.7/site-packages/zope/cachedescriptors/property.py", line 106, in <strong>get</strong><br>
value = func(inst)<br>
File "/opt/rhodecode/store/rn12s997k08lbfzg074fca3x206ng6si-python2.7-rhodecode-enterprise-ce-4.13.3/lib/python2.7/site-packages/rhodecode/lib/auth.py", line 1076, in permissions_full_details<br>
user=self, cache=None, calculate_super_admin=True)<br>
File "/opt/rhodecode/store/rn12s997k08lbfzg074fca3x206ng6si-python2.7-rhodecode-enterprise-ce-4.13.3/lib/python2.7/site-packages/rhodecode/lib/auth.py", line 1211, in get_perms<br>
calculate_super_admin)<br>
File "/opt/rhodecode/store/rn12s997k08lbfzg074fca3x206ng6si-python2.7-rhodecode-enterprise-ce-4.13.3/lib/python2.7/site-packages/rhodecode/lib/rc_cache/utils.py", line 79, in decorate<br>
return self.get_or_create(key, creator, timeout, should_cache_fn)<br>
File "/opt/rhodecode/store/v33y23yxrp8sa4l232vf4i5nmwnclili-python2.7-dogpile.cache-0.6.6/lib/python2.7/site-packages/dogpile/cache/region.py", line 864, in get_or_create<br>
async_creator) as value:<br>
File "/opt/rhodecode/store/v33y23yxrp8sa4l232vf4i5nmwnclili-python2.7-dogpile.cache-0.6.6/lib/python2.7/site-packages/dogpile/lock.py", line 186, in <strong>enter</strong><br>
return self._enter()<br>
File "/opt/rhodecode/store/v33y23yxrp8sa4l232vf4i5nmwnclili-python2.7-dogpile.cache-0.6.6/lib/python2.7/site-packages/dogpile/lock.py", line 93, in _enter<br>
generated = self._enter_create(value, createdtime)<br>
File "/opt/rhodecode/store/v33y23yxrp8sa4l232vf4i5nmwnclili-python2.7-dogpile.cache-0.6.6/lib/python2.7/site-packages/dogpile/lock.py", line 179, in _enter_create<br>
return self.creator()<br>
File "/opt/rhodecode/store/v33y23yxrp8sa4l232vf4i5nmwnclili-python2.7-dogpile.cache-0.6.6/lib/python2.7/site-packages/dogpile/cache/region.py", line 831, in gen_value<br>
created_value = creator()<br>
File "/opt/rhodecode/store/rn12s997k08lbfzg074fca3x206ng6si-python2.7-rhodecode-enterprise-ce-4.13.3/lib/python2.7/site-packages/rhodecode/lib/rc_cache/utils.py", line 71, in creator<br>
return fn(*arg, **kw)<br>
File "/opt/rhodecode/store/rn12s997k08lbfzg074fca3x206ng6si-python2.7-rhodecode-enterprise-ce-4.13.3/lib/python2.7/site-packages/rhodecode/lib/auth.py", line 1205, in compute_perm_tree<br>
explicit, algo, calculate_super_admin)<br>
File "/opt/rhodecode/store/rn12s997k08lbfzg074fca3x206ng6si-python2.7-rhodecode-enterprise-ce-4.13.3/lib/python2.7/site-packages/rhodecode/lib/auth.py", line 320, in _cached_perms_data<br>
return permissions.calculate()<br>
File "/opt/rhodecode/store/rn12s997k08lbfzg074fca3x206ng6si-python2.7-rhodecode-enterprise-ce-4.13.3/lib/python2.7/site-packages/rhodecode/lib/auth.py", line 450, in calculate<br>
self._calculate_repository_branch_permissions()<br>
File "/opt/rhodecode/store/rn12s997k08lbfzg074fca3x206ng6si-python2.7-rhodecode-enterprise-ce-4.13.3/lib/python2.7/site-packages/rhodecode/lib/auth.py", line 789, in _calculate_repository_branch_permissions<br>
p = self._choose_permission(p, cur_perm)<br>
File "/opt/rhodecode/store/rn12s997k08lbfzg074fca3x206ng6si-python2.7-rhodecode-enterprise-ce-4.13.3/lib/python2.7/site-packages/rhodecode/lib/auth.py", line 942, in _choose_permission<br>
cur_perm_val = Permission.PERM_WEIGHTS[cur_perm]<br>
TypeError: unhashable type: 'OrderedDict'</p>
RhodeCode CE/EE - Task #4282 (Resolved): Add inode limit together with disk usagehttps://issues.rhodecode.com/issues/42822016-10-16T21:56:14ZMarcin Kuzminski [CTO]marcin@rhodecode.com
<p>From support, we had a case of [Errno 28] No space left on device, despite the suystem was 50% full. It turned out it was inode limit which was 100% full.</p>
<p>We should add that check into admin > system info. On linux this could be done via <code>df -i</code></p>
RhodeCode CE/EE - Bug #4274 (Resolved): 500 error when push big objectshttps://issues.rhodecode.com/issues/42742016-10-13T04:43:35Zfeng mu
<p>Counting objects: 123894, done.<br>
Delta compression using up to 8 threads.<br>
Compressing objects: 100% (49118/49118), done.<br>
Writing objects: 100% (123894/123894), 168.71 MiB | 3.52 MiB/s, done.<br>
Total 123894 (delta 66189), reused 123776 (delta 66106)<br>
error: RPC failed; result=22, HTTP code = 500<br>
fatal: The remote end hung up unexpectedly<br>
fatal: The remote end hung up unexpectedly<br>
Everything up-to-date</p>
RhodeCode CE/EE - Task #4251 (Feedback): [customer] Pull request with subreposhttps://issues.rhodecode.com/issues/42512016-09-29T13:41:00ZMarcin Kuzminski [CTO]marcin@rhodecode.com
<p>While a lot of time passed since we’ve exchanged emails last time, let me share some details about the way we work at R and what kind of Rhodecode improvements would be useful for us. </p>
<ul>
<li>Most of our iOS/Mac product repositories are Mercurial </li>
<li>We extensively use Mercurial’s subrepositories for internal dependencies: our internal libraries are Mercurial or git repositories, which are added to product repository as a subrepo. </li>
<li>I like github flow: creating feature branches (bookmarks in Mercurial), opening pull request to master (default), code-reviewing this pull request and merging it after review is finished</li>
</ul>
<p>Unfortunately Rhodecode does not allow to create pull request for Mercurial repository in case it contains any subrepo, even if there were no changes in that sub-repositories. </p>
<p>So that’s the main reason why we can’t use github flow with Rhodecode and that’s the reason why we have to Crucible. </p>
<p>I’ve shared these details with team about a year ago : <a href="https://rhodecode.tenderapp.com/help/discussions/support-tickets/1234-unable-to-create-pull-request" class="external">https://rhodecode.tenderapp.com/help/discussions/support-tickets/1234-unable-to-create-pull-request</a></p>
<p>Currently Rhodecode is more like a repository storage for us and while post-commit reviews are possible they are rarely used. That’s why most people at R almost never see Rhodecode web interface. </p>
<p>Let me know if you need any more details or have any workaround that would still allow us to use pull requests. </p>
RhodeCode CE/EE - Bug #4250 (Resolved): Adding a reviewer into existing PR doesn't set a reason.https://issues.rhodecode.com/issues/42502016-09-29T12:00:43ZMarcin Kuzminski [CTO]marcin@rhodecode.com
<p>I think it's usefull to know who was "added" after the PR was created. I think a text of <br>
'reviewer added by {user_string}" could be usefull. Currently when you add a reviewer it has a blank reason.</p>
RhodeCode CE/EE - Bug #4092 (Feedback): [ce, ee] Redmine/JIRA integrations - smart commitshttps://issues.rhodecode.com/issues/40922016-07-15T12:29:44ZDaniel Ddaniel@rhodecode.com
<p>For the redmine case there are 5 states for a ticket:</p>
<ul>
<li>new</li>
<li>in progress</li>
<li>resolved</li>
<li>feedback</li>
<li>closed'</li>
</ul>
<p>Commit messages should be able to auto close/resolve tickets using keywords such as <code>fixes #42</code></p>
<p>The thing to think about is that the user may want 'fixes #20' to set the redmine issue to any of 'resolved', 'feedback' or 'closed' - this should be set in the integration options.</p>
<p>Allowing custom multiple regex => state mappers per integration is the most powerful but might be overkill- making standard keywords might be better eg:</p>
<p>fixes => resolved<br>
closes => closed</p>
<p>Then again this might be no good for international users.</p>
RhodeCode CE/EE - Feature #3999 (Resolved): Add `send account information` to user creation pagehttps://issues.rhodecode.com/issues/39992016-06-08T21:47:51ZMarcin Kuzminski [CTO]marcin@rhodecode.com
<p>When creating new user it's good to send him an info about his account together with password. A simple chechbox that would send this via email template could be useful.<br>
We should also then add require to change password flag (this functionality is already there)</p>
RhodeCode CE/EE - Feature #3981 (Resolved): Add cloud hosting like Gitlab, GitHubhttps://issues.rhodecode.com/issues/39812016-06-05T21:37:34Ztomekj2ee tomekj2ee
<ul>
<li>free: up to 10 users (including one or more private repo)</li>
<li>paid: 10+ users</li>
</ul>
RhodeCode CE/EE - Bug #3549 (Resolved): [4.0.0 regression], file source links use last commit id ...https://issues.rhodecode.com/issues/35492016-04-21T13:20:01ZMarcin Kuzminski [CTO]marcin@rhodecode.com
<p>Case:</p>
<p>You're browsing a file tree at tag v2.2.8 - commit id XXX</p>
<p>When entering particular file (lets say setup.py), the links and headers are based on the last commit (YYY) of file instead of the XXX.</p>
<p>This causes few problems:</p>
<ul>
<li>the commit info suddenly changes when moving from tree view, to file view, since all info is taken from YYY</li>
<li>references suddenly change, so you're puzzled why the tag reference is suddenly missing, again since references are calculated from YYY</li>
<li>links like raw, annotate etc uses the last commit id (YYY), and clicking on them actually can show you totally different things since YYY can be a different branch last edit.</li>
</ul>
<p>We should always use XXX since this is the file tree you're browsing AT, and all things should be poiting to this commit.</p>
<p>I would also add additional link to what's the last commit of file, after XXX that will show YYY, so one can tell if actual XXX commit is one that changed file setup.py</p>
RhodeCode CE/EE - Task #3454 (Feedback): [ce/ee] visually differentiate the two editionshttps://issues.rhodecode.com/issues/34542016-04-07T15:38:27ZOliver Strobeloliver@rhodecode.com
<p>Currently we are only changing the footer to include Community vs. Enterprise differentiation.</p>
<p>Purpose: It should be possible to tell the difference in edition quickly when switching between CE/EE tabs.</p>
<p>Potential solutions:<br>
1) Add the edition name into the header after the logo on the top left<br>
2) Change the colour of the header between editions, eg.<br>
CE = dark grey<br>
EE = black</p>
<p>Thoughts?</p>
RhodeCode CE/EE - Feature #2539 (Feedback): Recursive deletion of resourceshttps://issues.rhodecode.com/issues/25392015-08-25T18:11:48ZMarcin Kuzminski [CTO]marcin@rhodecode.com
<p>Ticket from support: <a href="https://rhodecode.tenderapp.com/help/discussions/problems/7125-rc-225-after-deleting-repo-groups-on-file-system-then-rescan-the-repo-groups-are-always-in-the-db" class="external">https://rhodecode.tenderapp.com/help/discussions/problems/7125-rc-225-after-deleting-repo-groups-on-file-system-then-rescan-the-repo-groups-are-always-in-the-db</a></p>
<p>Use case:</p>
<ul>
<li>gemalto needs to often delete large repository groups, current system doesn't allow doing it from web interface</li>
<li>users need to delete manually each repo inside repo group and then delete the group itself</li>
</ul>
<p>Currently our system supports this operation in cleanup mode, so you can delete whole directory from the filesystem and run remap-and rescan. This is a workaround and should allow<br>
big cleanup, but it's far from being straightforward to do.</p>
<p>We need a consistent interface for deletion of resource that hold other resources. This should currently include two places</p>
<ul>
<li>user deletion (that hold repo groups/user groups/repositories)</li>
<li>repository group deletion (that hold other repositories)</li>
</ul>
<p>You can delete user or repository group in two ways, goind to admin > users or admin > repo groups and clicking delete.<br>
In case there are dependent objects, we should trigger a warning flash message, and redirect user to advanced settings section of user, or repo group. and allow them to do recursive delete.</p>
<p>There's already an interface for that in users advanced section, when you can select if you want to delete or transfer ownership of repositories or groups that user owns. <br>
We should re-use the logic, and make the same option available to deletion of repository groups. The user advanced section also needs some small improvements.</p>
<p>Recursive delete should have two options.</p>
<ul>
<li>delete resources</li>
<li>transfer ownership of resources to a different user in the system</li>
</ul>
<p>Currently part of that is implemented in user > settings > advanced where we have delete or detach option. <br>
Detach option unfortunetly picks the first super admin in the system which leads to<br>
odd results and you cannot control to whom you need to transfer the ownership.</p>