#3146 Commit browser needs to be more efficient

v1.0.0
closed
nobody
SCM
nobody
2015-08-20
2011-11-01
No

Frontend should only load 250 commits at a time and load more with ajax, instead of loading all at once with a hard max limit of 2000. It should also remove items from the canvas when it loads more at the end (since it seems that some browsers have trouble with lots and lots of commits - even if less than 2000).

Backend should support such pagination. IIRC, it also needs efficiency improvements for the tree computations - perhaps using the new scm data structures like CommitRuns

Related

Tickets: #3577

Discussion

  • Dave Brondsema

    Dave Brondsema - 2012-01-17
    • labels: scmrefactor --> scmrefactor, performance
    • milestone: forge-backlog --> forge-jan-20
     
  • Dave Brondsema

    Dave Brondsema - 2012-01-20
    • size: --> 4
     
  • Rick Copeland - 2012-01-23
    • status: open --> in-progress
    • assigned_to: Rick Copeland ☕
     
  • Rick Copeland - 2012-02-02
     
  • Rick Copeland - 2012-02-02

    rc/3146. To test, push allura into a repo and then browse it. It should have nice colors and pagination and be fast.

    • status: in-progress --> code-review
    • qa: Jenny Steele
     
  • Jenny Steele - 2012-02-02
    • status: code-review --> closed
     
  • Dave Brondsema

    Dave Brondsema - 2012-02-10
    Module allura.controllers.repository:181 in commit_browser_data
    <<      def commit_browser_data(self):
                   head_ids = [ head.object_id for head in c.app.repo.heads ]
                   commit_ids = list(M.repo.commitlog(head_ids))
                   log.info('Grab %d commit objects by ID', len(commit_ids))
                   commits_by_id = dict(
    >>  commit_ids = list(M.repo.commitlog(head_ids))
    Module allura.model.repo:402 in _gen_ids
    <<              # parents to the 'ready set'
                       new_parent = None
                       for oid in ci_parents[ci]:
                           children = ci_children[oid]
                           children.discard(ci)
    >>  for oid in ci_parents[ci]:
    KeyError: u'fe0c660f87d355d39886d3d013868a6d83a65643'
    
     
  • Dave Brondsema

    Dave Brondsema - 2012-02-10
    • status: closed --> open
    • milestone: forge-feb-03 --> limbo
     
  • Dave Brondsema

    Dave Brondsema - 2012-02-13
    • milestone: limbo --> forge-feb-17
     
  • Dave Brondsema

    Dave Brondsema - 2012-02-14
    • assigned_to: Rick Copeland ☕ --> nobody
    • qa: Jenny Steele --> nobody
     
  • Dave Brondsema

    Dave Brondsema - 2012-02-17
    • status: open --> closed
     
  • Dave Brondsema

    Dave Brondsema - 2012-02-17

    Filed [#3759] for the bug in prod.

     

    Related

    Tickets: #3759


Log in to post a comment.