[PATCH] pullrequests: introduce limit to stop displaying additional changes

Mads Kiilerich mads at kiilerich.com
Wed Jan 18 10:17:11 UTC 2023


Thank you. Pushed to stable with some minor tweaks and additions.

/Mads


On 18/01/2023 07:45, Mathias De Mare wrote:
> # HG changeset patch
> # User Mathias De Mare <mathias.de_mare at nokia.com>
> # Date 1672834977 -3600
> #      Wed Jan 04 13:22:57 2023 +0100
> # Branch stable
> # Node ID ac278c9c011136b72de43d8dbd742f9cf3dbf020
> # Parent  b7efb8fdc45fb95ce8ece04e1aed7d965c300bae
> pullrequests: introduce limit to stop displaying additional changes
>
> The previous pull request threw away some of the changesets
> to keep the total amount more manageable, but this results
> in an (for the user) unpredictable subset of changesets being shown.
>
> To resolve this issue, we instead do not display any additional changes
> if the amount of additional changes is larger than a user-defined limit.
>
> This could be extended further with "too long to be shown - click here
> to show", but that was quite a bit of additional work
> and did not cover our use case of not allowing the display at all
> in case of too many additional changes.
>
> diff --git a/kallithea/controllers/pullrequests.py b/kallithea/controllers/pullrequests.py
> --- a/kallithea/controllers/pullrequests.py
> +++ b/kallithea/controllers/pullrequests.py
> @@ -35,6 +35,8 @@ from tg import tmpl_context as c
>   from tg.i18n import ugettext as _
>   from webob.exc import HTTPBadRequest, HTTPForbidden, HTTPFound, HTTPNotFound
>   
> +import kallithea
> +
>   import kallithea.lib.helpers as h
>   from kallithea.controllers import base
>   from kallithea.controllers.changeset import create_cs_pr_comment, delete_cs_pr_comment
> @@ -494,6 +496,8 @@ class PullrequestsController(base.BaseRe
>           except IndexError: # probably because c.cs_ranges is empty, probably because revisions are missing
>               pass
>   
> +        rev_limit = safe_int(kallithea.CONFIG.get('next_iteration_rev_limit'), 0)
> +
>           avail_revs = set()
>           avail_show = []
>           c.cs_branch_name = c.cs_ref_name
> @@ -563,9 +567,16 @@ class PullrequestsController(base.BaseRe
>           except ChangesetDoesNotExistError:
>               c.update_msg = _('Error: some changesets not found when displaying pull request from %s.') % c.cs_rev
>   
> -        c.avail_revs = avail_revs
> -        c.avail_cs = [org_scm_instance.get_changeset(r) for r in avail_show]
> -        c.avail_jsdata = graph_data(org_scm_instance, avail_show)
> +        if rev_limit and len(avail_revs) > rev_limit:
> +            c.update_msg = _('Additional changesets (%d) are not shown because they exceed the limit (%d).') % (len(avail_revs), rev_limit)
> +            c.avail_revs = []
> +            c.avail_cs = []
> +            c.avail_jsdata = None
> +        else:
> +            c.rev_limit_reached = False
> +            c.avail_revs = avail_revs
> +            c.avail_cs = [org_scm_instance.get_changeset(r) for r in avail_show]
> +            c.avail_jsdata = graph_data(org_scm_instance, avail_show)
>   
>           raw_ids = [x.raw_id for x in c.cs_ranges]
>           c.cs_comments = c.cs_repo.get_comments(raw_ids)
>
> _______________________________________________
> kallithea-general mailing list
> kallithea-general at sfconservancy.org
> https://lists.sfconservancy.org/mailman/listinfo/kallithea-general




More information about the kallithea-general mailing list