Based on the change that is going to be introduced on #1024958: Commitlog should provide RSS feeds of each view, we need to change this module views accordingly, and maybe provide another point of rss as IIRC we have another URL for the project commits, but not sure about it.

Comments

marvil07’s picture

Status: Active » Needs review
StatusFileSize
new10.44 KB

Ready!

It naturally depends on the patch at #1024958-10: Commitlog should provide RSS feeds of each view.

eliza411’s picture

Apply and test after rebuild.

sdboyer’s picture

Status: Needs review » Needs work

First and most important, I think you disabled vfv query aggregation. Because I'm seeing a bunch of these queries being run in sequence:

SELECT versioncontrol_item_revisions.item_revision_id AS item_revision_id,
   versioncontrol_repositories.name AS versioncontrol_repositories_name,
   versioncontrol_item_revisions.path AS versioncontrol_item_revisions_path,
   versioncontrol_repositories.vcs AS versioncontrol_repositories_vcs,
   versioncontrol_repositories.repo_id AS versioncontrol_repositories_repo_id,
   versioncontrol_item_revisions.line_changes_added AS versioncontrol_item_revisions_line_changes_added,
   versioncontrol_item_revisions.line_changes_removed AS versioncontrol_item_revisions_line_changes_removed,
   versioncontrol_operations.vc_op_id AS versioncontrol_operations_vc_op_id
 FROM versioncontrol_item_revisions versioncontrol_item_revisions 
 INNER JOIN versioncontrol_repositories versioncontrol_repositories ON versioncontrol_item_revisions.repo_id = versioncontrol_repositories.repo_id
 INNER JOIN versioncontrol_operations versioncontrol_operations ON versioncontrol_item_revisions.vc_op_id = versioncontrol_operations.vc_op_id
 WHERE versioncontrol_operations.vc_op_id IN (960909);
# Time: 2011-02-12T21:24:57
# User@Host: git_dev[git_dev] @ stagingvm.drupal.org:38330 []
# Query_time: 0.000000  Lock_time: 0.000000  Rows_sent: 0  Rows_examined: 0
use git_dev;
SELECT versioncontrol_item_revisions.item_revision_id AS item_revision_id,
   versioncontrol_repositories.name AS versioncontrol_repositories_name,
   versioncontrol_item_revisions.path AS versioncontrol_item_revisions_path,
   versioncontrol_repositories.vcs AS versioncontrol_repositories_vcs,
   versioncontrol_repositories.repo_id AS versioncontrol_repositories_repo_id,
   versioncontrol_item_revisions.line_changes_added AS versioncontrol_item_revisions_line_changes_added,
   versioncontrol_item_revisions.line_changes_removed AS versioncontrol_item_revisions_line_changes_removed,
   versioncontrol_operations.vc_op_id AS versioncontrol_operations_vc_op_id
 FROM versioncontrol_item_revisions versioncontrol_item_revisions 
 INNER JOIN versioncontrol_repositories versioncontrol_repositories ON versioncontrol_item_revisions.repo_id = versioncontrol_repositories.repo_id
 INNER JOIN versioncontrol_operations versioncontrol_operations ON versioncontrol_item_revisions.vc_op_id = versioncontrol_operations.vc_op_id
 WHERE versioncontrol_operations.vc_op_id IN (959434);
# Time: 2011-02-12T21:24:59
# User@Host: git_dev[git_dev] @ stagingvm.drupal.org:38330 []
# Query_time: 0.000000  Lock_time: 0.000000  Rows_sent: 0  Rows_examined: 0
use git_dev;
SELECT versioncontrol_item_revisions.item_revision_id AS item_revision_id,
   versioncontrol_repositories.name AS versioncontrol_repositories_name,
   versioncontrol_item_revisions.path AS versioncontrol_item_revisions_path,
   versioncontrol_repositories.vcs AS versioncontrol_repositories_vcs,
   versioncontrol_repositories.repo_id AS versioncontrol_repositories_repo_id,
   versioncontrol_item_revisions.line_changes_added AS versioncontrol_item_revisions_line_changes_added,
   versioncontrol_item_revisions.line_changes_removed AS versioncontrol_item_revisions_line_changes_removed,
   versioncontrol_operations.vc_op_id AS versioncontrol_operations_vc_op_id
 FROM versioncontrol_item_revisions versioncontrol_item_revisions 
 INNER JOIN versioncontrol_repositories versioncontrol_repositories ON versioncontrol_item_revisions.repo_id = versioncontrol_repositories.repo_id
 INNER JOIN versioncontrol_operations versioncontrol_operations ON versioncontrol_item_revisions.vc_op_id = versioncontrol_operations.vc_op_id
 WHERE versioncontrol_operations.vc_op_id IN (959714);
# Time: 2011-02-12T21:25:01
# User@Host: git_dev[git_dev] @ stagingvm.drupal.org:38330 []
# Query_time: 1.000000  Lock_time: 0.000000  Rows_sent: 0  Rows_examined: 0
use git_dev;
SELECT versioncontrol_item_revisions.item_revision_id AS item_revision_id,
   versioncontrol_repositories.name AS versioncontrol_repositories_name,
   versioncontrol_item_revisions.path AS versioncontrol_item_revisions_path,
   versioncontrol_repositories.vcs AS versioncontrol_repositories_vcs,
   versioncontrol_repositories.repo_id AS versioncontrol_repositories_repo_id,
   versioncontrol_item_revisions.line_changes_added AS versioncontrol_item_revisions_line_changes_added,
   versioncontrol_item_revisions.line_changes_removed AS versioncontrol_item_revisions_line_changes_removed,
   versioncontrol_operations.vc_op_id AS versioncontrol_operations_vc_op_id
 FROM versioncontrol_item_revisions versioncontrol_item_revisions 
 INNER JOIN versioncontrol_repositories versioncontrol_repositories ON versioncontrol_item_revisions.repo_id = versioncontrol_repositories.repo_id
 INNER JOIN versioncontrol_operations versioncontrol_operations ON versioncontrol_item_revisions.vc_op_id = versioncontrol_operations.vc_op_id
 WHERE versioncontrol_operations.vc_op_id IN (959889);
# Time: 2011-02-12T21:25:03
# User@Host: git_dev[git_dev] @ stagingvm.drupal.org:38330 []
# Query_time: 0.000000  Lock_time: 0.000000  Rows_sent: 0  Rows_examined: 0
use git_dev;
SELECT versioncontrol_item_revisions.item_revision_id AS item_revision_id,
   versioncontrol_repositories.name AS versioncontrol_repositories_name,
   versioncontrol_item_revisions.path AS versioncontrol_item_revisions_path,
   versioncontrol_repositories.vcs AS versioncontrol_repositories_vcs,
   versioncontrol_repositories.repo_id AS versioncontrol_repositories_repo_id,
   versioncontrol_item_revisions.line_changes_added AS versioncontrol_item_revisions_line_changes_added,
   versioncontrol_item_revisions.line_changes_removed AS versioncontrol_item_revisions_line_changes_removed,
   versioncontrol_operations.vc_op_id AS versioncontrol_operations_vc_op_id
 FROM versioncontrol_item_revisions versioncontrol_item_revisions 
 INNER JOIN versioncontrol_repositories versioncontrol_repositories ON versioncontrol_item_revisions.repo_id = versioncontrol_repositories.repo_id
 INNER JOIN versioncontrol_operations versioncontrol_operations ON versioncontrol_item_revisions.vc_op_id = versioncontrol_operations.vc_op_id
 WHERE versioncontrol_operations.vc_op_id IN (960404);
# Time: 2011-02-12T21:25:05
# User@Host: git_dev[git_dev] @ stagingvm.drupal.org:45330 []
# Query_time: 0.000000  Lock_time: 0.000000  Rows_sent: 0  Rows_examined: 0
use git_dev;
SELECT data, item_id FROM queue q WHERE expire = 0 AND name = "versioncontrol_git_repo_activity_stream" ORDER BY created ASC LIMIT 0, 1;
# Time: 2011-02-12T21:25:07
# User@Host: git_dev[git_dev] @ stagingvm.drupal.org:38330 []
# Query_time: 0.000000  Lock_time: 0.000000  Rows_sent: 0  Rows_examined: 0
use git_dev;
SELECT versioncontrol_item_revisions.item_revision_id AS item_revision_id,
   versioncontrol_repositories.name AS versioncontrol_repositories_name,
   versioncontrol_item_revisions.path AS versioncontrol_item_revisions_path,
   versioncontrol_repositories.vcs AS versioncontrol_repositories_vcs,
   versioncontrol_repositories.repo_id AS versioncontrol_repositories_repo_id,
   versioncontrol_item_revisions.line_changes_added AS versioncontrol_item_revisions_line_changes_added,
   versioncontrol_item_revisions.line_changes_removed AS versioncontrol_item_revisions_line_changes_removed,
   versioncontrol_operations.vc_op_id AS versioncontrol_operations_vc_op_id
 FROM versioncontrol_item_revisions versioncontrol_item_revisions 
 INNER JOIN versioncontrol_repositories versioncontrol_repositories ON versioncontrol_item_revisions.repo_id = versioncontrol_repositories.repo_id
 INNER JOIN versioncontrol_operations versioncontrol_operations ON versioncontrol_item_revisions.vc_op_id = versioncontrol_operations.vc_op_id
 WHERE versioncontrol_operations.vc_op_id IN (960799);
# Time: 2011-02-12T21:25:09
# User@Host: git_dev[git_dev] @ stagingvm.drupal.org:38330 []
# Query_time: 1.000000  Lock_time: 0.000000  Rows_sent: 0  Rows_examined: 0
use git_dev;
SELECT versioncontrol_item_revisions.item_revision_id AS item_revision_id,
   versioncontrol_repositories.name AS versioncontrol_repositories_name,
   versioncontrol_item_revisions.path AS versioncontrol_item_revisions_path,
   versioncontrol_repositories.vcs AS versioncontrol_repositories_vcs,
   versioncontrol_repositories.repo_id AS versioncontrol_repositories_repo_id,
   versioncontrol_item_revisions.line_changes_added AS versioncontrol_item_revisions_line_changes_added,
   versioncontrol_item_revisions.line_changes_removed AS versioncontrol_item_revisions_line_changes_removed,
   versioncontrol_operations.vc_op_id AS versioncontrol_operations_vc_op_id
 FROM versioncontrol_item_revisions versioncontrol_item_revisions 
 INNER JOIN versioncontrol_repositories versioncontrol_repositories ON versioncontrol_item_revisions.repo_id = versioncontrol_repositories.repo_id
 INNER JOIN versioncontrol_operations versioncontrol_operations ON versioncontrol_item_revisions.vc_op_id = versioncontrol_operations.vc_op_id
 WHERE versioncontrol_operations.vc_op_id IN (960869);

and things are really noticeably slower.

Second, the only output that's coming out for anything is

<?xml version="1.0" encoding="utf-8" ?><rss version="2.0" xml:base="http://git-dev.drupal.org/versioncontrol/garbage/path/343333" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title></title>
    <link>http://git-dev.drupal.org/versioncontrol/garbage/path/343333</link>
    <description></description>
    <language>en</language>
          </channel>
</rss>

What's the garbage path for?

marvil07’s picture

Since the main patch is on the other issue, I am answering there #1024958-13: Commitlog should provide RSS feeds of each view

marvil07’s picture

Status: Needs work » Needs review
StatusFileSize
new105.43 KB
new108.33 KB

Finally I have a patch!

What's new:

  • Update vc_project_commit_view, vc_project_global_commits, vc_project_user_commits, vc_git_project_commit_view, vc_git_project_global_commits, and vc_git_project_user_commits views.
  • Use the project repository to define the view to show on node/nid/commits.

Update: I forgot to mention that this patch requires a versioncontrol_git patch. It is on #1064086-1: Add author and committer git specific views fields.

marvil07’s picture

Hard code-freeze left this out.

marvil07’s picture

Assigned: marvil07 » sdboyer

@sdboyer: It would be great to receive your review here.

sdboyer’s picture

I'll do another pass during office hours on Wednesday.

sdboyer’s picture

Status: Needs review » Needs work

All in all, looks good - pretty small stuff.

Nit:

+++ versioncontrol_project.module
@@ -586,10 +594,24 @@ function versioncontrol_project_project_page_link_alter(&$links, $node) {
+  if (is_a($node->versioncontrol_project['repo'], 'VersioncontrolRepository')) {

I prefer instanceof to is_a(). Up to you.

Nit:

+++ views/default_views/vc_git_project_commit_view.view.php
@@ -1,8 +1,9 @@
+// $Id$

Ick.

Nit:

+++ views/default_views/vc_git_project_commit_view.view.php
@@ -1,8 +1,9 @@
 $view->name = 'vc_git_project_commit_view';
-$view->description = 'Commitlog Global Commit Log';
+$view->description = 'VersionControl Project Commit Log';

if its the vc_git_project_commit_view, then it's neither the Commitlog global commit log nor the generic Versioncontrol Project commit log. Let's fix that description.

More general question - there are a number of settings that appear to have switched around in that views dump, but it's always hard to tell with dumps whether those are just changes in how views decided to order its export output, or if they're actual changes you made. E.g.,

+++ views/default_views/vc_git_project_commit_view.view.php
@@ -56,8 +57,8 @@ $handler->override_option('fields', array(
       'help' => '',
       'trim' => 0,
       'max_length' => '',
-      'word_boundary' => 1,
-      'ellipsis' => 1,
+      'word_boundary' => 0,
+      'ellipsis' => 0,

was this an intentional change?

I would like to see these changes pushed up as a topic branch so that I can easily tweak with direct commits. patches--

Powered by Dreditor.

marvil07’s picture

Assigned: sdboyer » marvil07
Status: Needs work » Fixed
StatusFileSize
new109.55 KB

So, after pushing the dependency #1064086: Add author and committer git specific views fields., and changing what sdboyer mentioned, I am also pushing this.

About is_a(), you are right, calling a function is always slower than calling a language operator ;-)

About the views dump, well, AFAIR I checked it one by one, so this should be the right changes. In the other side, we need to fix the date change, but that's another issue #1203268: Change default views to follow versioncontrol api change on views data.

Status: Fixed » Closed (fixed)
Issue tags: -git sprint 10, -git phase 2 leftovers

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