It's dumb to have our own custom repository listing logic. We do it with Views, it becomes exportable, can expose filters, takes care of paging for us, etc. So I want to split up the logic such that there's a local task for each of the backends that are installed under admin/project/versioncontrol-repositories/, then build out exported views for each one. Or rather, there can be a default, bland 'parent' view that's used in the event that a particular backend hasn't created its own. One more step in the direction of minimizing the overuse of hooks for internal communication.

I'm marking this Phase 2, b/c even though it's not strictly necessary for launch, it will be a HUGE boon to d.o administrators. Without it, there'll be thousands upon thousands of repositories up on that page, and way too much object creation, too.

Comments

sdboyer’s picture

Issue tags: +git phase 2

forgot to tag

sdboyer’s picture

Priority: Normal » Critical
tizzo’s picture

Assigned: sdboyer » tizzo
tizzo’s picture

I have started working on this but wanted to pose this question:

If we want to duplicate this functionality with views we need include these fields in the list:

  • Update method
  • Last updated
  • Locking

Each of these is stored in the versioncontrol_repositories table but it is stored in the data column in a serialized array. This seems silly to me because every vcs repository is going to need to provide this data and we will need somewhat sophisticated handlers to trick views into loading all of these values out of the data column when we could just add these columns to the schema.

This would also allow us to filter on these columns when trouble shooting the enormous number of repositories that this page will be managing on d.o.

Thoughts?

marvil07’s picture

Completely +1 to add those fields to the repo table(/me remembering me thinking the same)

@tizzo: It would be great if you can provide a patch to test

marvil07’s picture

Issue tags: +views integration

tagging

tizzo’s picture

I created a preliminary patch and posted it to the related issue: #945130: Update versioncontrol_repositories table to have update method and updated columns.

I think it's pretty close and I have a preliminary patch to get versioncontrol_git working with it as well posted to #947664: Update versioncontrol_git to use new update method, updated, and locked columns.

tizzo’s picture

Assigned: tizzo » Unassigned
Status: Active » Needs review
StatusFileSize
new11.87 KB
sdboyer’s picture

Issue tags: +git phase 3

tagging

sdboyer’s picture

Issue tags: -git phase 3 +git sprint 3

...with the right tag :)

tizzo’s picture

StatusFileSize
new21.23 KB

This patch should roll all of the above patches together (and make things a bit simpler).

Rolled by hand, hopefully it works ok.

tizzo’s picture

Status: Needs review » Closed (fixed)

After Sam's review and OK, I have committed the above master-patch (with a few fixes).

tizzo’s picture

Status: Closed (fixed) » Fixed
marvil07’s picture

Committed a minor follow-up for make the views dependency real: http://drupal.org/cvs?commit=446470

Status: Fixed » Closed (fixed)
Issue tags: -views integration, -git phase 2, -git sprint 3

Automatically closed -- issue fixed for 2 weeks with no activity.

  • Commit c1147ef on repository-families, drush-vc-sync-unlock by tizzo:
    #854926, made the repositories list views based
    
    
  • Commit 133eb7f on repository-families, drush-vc-sync-unlock by marvil07:
    #854926 follow-up: include views as dependency.
    
    

  • Commit c1147ef on repository-families by tizzo:
    #854926, made the repositories list views based
    
    
  • Commit 133eb7f on repository-families by marvil07:
    #854926 follow-up: include views as dependency.