#529 Friendlier ui for huge pull requests
Closed: Fixed None Opened 8 years ago by mikem.

If a pull request is very large, pagure will still put the entire thing on a page. E.g.

https://pagure.io/koji/pull-request/3

Such requests can take a very long time to load and cause a browser to churn. It would be nice to in such cases see either just a summary, or the first page of a pagination.


the new pagure UI now puts the diffs of a PR in a seperate sub-tab.

Although, it is all still just in the page that is loaded, so i assume the same browser churn will happen

I think the solution here would be to have a async call that pulls down that content if the user flips to that tab.

I like the async loading idea.

Tab or otherwise, would it be feasible to dynamically load the data as the user scrolls? I know many websites do this, but having never implemented it, I have no idea how hard it is to accomplish. Failing that, dynamically loading the whole thing on the tag switch (as you suggest) could certainly be an improvement, especially if there is some indication of the size of the patch (e.g. diff stat output on main tab).

Tab or otherwise, would it be feasible to dynamically load the data as the
user scrolls? I know many websites do this, but having never implemented it, I
have no idea how hard it is to accomplish.

It's easy to do when a list is paginated but that's not the case for a diff.
Eventually, we could do it per file but the way the diff are built is won't
make it easy if at all possible.

Failing that, dynamically loading the whole thing on the tag switch (as you
suggest) could certainly be an improvement, especially if there is some
indication of the size of the patch (e.g. diff stat output on main tab).

I'm not sure but maybe worth a try :)

Okay, just submitted #1017 to try to fix this one.

I made the assumption that primarily this will be hit when adding or removing large files, so the PR above will display the diff of an added or removed file if it is under 100 lines, if it is over 100 lines, it does not display the diff, instead provides a link to the file in the tree so the user can view the file that was added or removed.

In my testing (i used about 20 SVGs ranging from 100 lines to 20K lines), it used to take about 1min to render everything. Now the wait is on par with most other page renders on pagure.

Login to comment on this ticket.

Metadata