<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[179591] trunk/Websites/perf.webkit.org</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/179591">179591</a></dd>
<dt>Author</dt> <dd>rniwa@webkit.org</dd>
<dt>Date</dt> <dd>2015-02-03 21:40:34 -0800 (Tue, 03 Feb 2015)</dd>
</dl>

<h3>Log Message</h3>
<pre>Don’t use repository names as id’s.
https://bugs.webkit.org/show_bug.cgi?id=141226

Reviewed by Chris Dumez.

Not using repository names as their id's reduces the need to fetch the entire repositories table.
Since names of repositories are available in manifest.json, we can resolve their names in the front end.

* Websites/perf.webkit.org/public/api/runs.php:
(parse_revisions_array): No longer uses $repository_id_to_name.
(main): No longer populates $repository_id_to_name.

* Websites/perf.webkit.org/public/api/triggerables.php:
(main): Don't resolve repository names.

* Websites/perf.webkit.org/public/include/manifest.php:
(ManifestGenerator::repositories): Use repositories ids as keys in the result and include their names.
(ManifestGenerator::bug_trackers): Don't resolve repository names.

* Websites/perf.webkit.org/public/js/helper-classes.js:
(TestBuild): Renamed repositoryName to repositoryId.
(TestBuild.revision): Ditto.
(TestBuild.formattedRevisions): Ditto. Continue to use the repository name in the formatted result
since this is the text shown to human.

* Websites/perf.webkit.org/public/v2/app.js:
(App.pane.searchCommit): Renamed repositoryName to repositoryId.
(App.PaneController._updateDetails): Ditto.
(App.AnalysisTaskController.updateRoots): Ditto.

* Websites/perf.webkit.org/public/v2/data.js:
(Measurement): Ditto.
(Measurement.prototype.commitTimeForRepository): Ditto.
(Measurement.prototype.formattedRevisions): Ditto.

* Websites/perf.webkit.org/public/v2/index.html: Use the repository name and the repository id as
select element's label and value respectively.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkWebsitesperfwebkitorgChangeLog">trunk/Websites/perf.webkit.org/ChangeLog</a></li>
<li><a href="#trunkWebsitesperfwebkitorgpublicapicommitsphp">trunk/Websites/perf.webkit.org/public/api/commits.php</a></li>
<li><a href="#trunkWebsitesperfwebkitorgpublicapirunsphp">trunk/Websites/perf.webkit.org/public/api/runs.php</a></li>
<li><a href="#trunkWebsitesperfwebkitorgpublicapitriggerablesphp">trunk/Websites/perf.webkit.org/public/api/triggerables.php</a></li>
<li><a href="#trunkWebsitesperfwebkitorgpublicincludemanifestphp">trunk/Websites/perf.webkit.org/public/include/manifest.php</a></li>
<li><a href="#trunkWebsitesperfwebkitorgpublicjshelperclassesjs">trunk/Websites/perf.webkit.org/public/js/helper-classes.js</a></li>
<li><a href="#trunkWebsitesperfwebkitorgpublicv2appjs">trunk/Websites/perf.webkit.org/public/v2/app.js</a></li>
<li><a href="#trunkWebsitesperfwebkitorgpublicv2datajs">trunk/Websites/perf.webkit.org/public/v2/data.js</a></li>
<li><a href="#trunkWebsitesperfwebkitorgpublicv2indexhtml">trunk/Websites/perf.webkit.org/public/v2/index.html</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkWebsitesperfwebkitorgChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Websites/perf.webkit.org/ChangeLog (179590 => 179591)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Websites/perf.webkit.org/ChangeLog        2015-02-04 05:06:15 UTC (rev 179590)
+++ trunk/Websites/perf.webkit.org/ChangeLog        2015-02-04 05:40:34 UTC (rev 179591)
</span><span class="lines">@@ -1,5 +1,45 @@
</span><span class="cx"> 2015-02-03  Ryosuke Niwa  &lt;rniwa@webkit.org&gt;
</span><span class="cx"> 
</span><ins>+        Don’t use repository names as id’s.
+        https://bugs.webkit.org/show_bug.cgi?id=141226
+
+        Reviewed by Chris Dumez.
+
+        Not using repository names as their id's reduces the need to fetch the entire repositories table.
+        Since names of repositories are available in manifest.json, we can resolve their names in the front end.
+
+        * Websites/perf.webkit.org/public/api/runs.php:
+        (parse_revisions_array): No longer uses $repository_id_to_name.
+        (main): No longer populates $repository_id_to_name.
+
+        * Websites/perf.webkit.org/public/api/triggerables.php:
+        (main): Don't resolve repository names.
+
+        * Websites/perf.webkit.org/public/include/manifest.php:
+        (ManifestGenerator::repositories): Use repositories ids as keys in the result and include their names.
+        (ManifestGenerator::bug_trackers): Don't resolve repository names.
+
+        * Websites/perf.webkit.org/public/js/helper-classes.js:
+        (TestBuild): Renamed repositoryName to repositoryId.
+        (TestBuild.revision): Ditto.
+        (TestBuild.formattedRevisions): Ditto. Continue to use the repository name in the formatted result
+        since this is the text shown to human.
+
+        * Websites/perf.webkit.org/public/v2/app.js:
+        (App.pane.searchCommit): Renamed repositoryName to repositoryId.
+        (App.PaneController._updateDetails): Ditto.
+        (App.AnalysisTaskController.updateRoots): Ditto.
+
+        * Websites/perf.webkit.org/public/v2/data.js:
+        (Measurement): Ditto.
+        (Measurement.prototype.commitTimeForRepository): Ditto.
+        (Measurement.prototype.formattedRevisions): Ditto.
+
+        * Websites/perf.webkit.org/public/v2/index.html: Use the repository name and the repository id as
+        select element's label and value respectively.
+
+2015-02-03  Ryosuke Niwa  &lt;rniwa@webkit.org&gt;
+
</ins><span class="cx">         Unreviewed build fix. Declare $repository_id_to_name in the global scope.
</span><span class="cx"> 
</span><span class="cx">         * public/api/runs.php:
</span></span></pre></div>
<a id="trunkWebsitesperfwebkitorgpublicapicommitsphp"></a>
<div class="modfile"><h4>Modified: trunk/Websites/perf.webkit.org/public/api/commits.php (179590 => 179591)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Websites/perf.webkit.org/public/api/commits.php        2015-02-04 05:06:15 UTC (rev 179590)
+++ trunk/Websites/perf.webkit.org/public/api/commits.php        2015-02-04 05:40:34 UTC (rev 179591)
</span><span class="lines">@@ -10,11 +10,7 @@
</span><span class="cx">     if (!$db-&gt;connect())
</span><span class="cx">         exit_with_error('DatabaseConnectionFailure');
</span><span class="cx"> 
</span><del>-    $repository_name = $paths[0];
-    $repository_row = $db-&gt;select_first_row('repositories', 'repository', array('name' =&gt; $repository_name));
-    if (!$repository_row)
-        exit_with_error('RepositoryNotFound', array('repositoryName' =&gt; $repository_name));
-    $repository_id = $repository_row['repository_id'];
</del><ins>+    $repository_id = intval($paths[0]);
</ins><span class="cx"> 
</span><span class="cx">     $filter = array_get($paths, 1);
</span><span class="cx">     $single_commit = NULL;
</span></span></pre></div>
<a id="trunkWebsitesperfwebkitorgpublicapirunsphp"></a>
<div class="modfile"><h4>Modified: trunk/Websites/perf.webkit.org/public/api/runs.php (179590 => 179591)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Websites/perf.webkit.org/public/api/runs.php        2015-02-04 05:06:15 UTC (rev 179590)
+++ trunk/Websites/perf.webkit.org/public/api/runs.php        2015-02-04 05:40:34 UTC (rev 179591)
</span><span class="lines">@@ -22,8 +22,6 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> function parse_revisions_array($postgres_array) {
</span><del>-    global $repository_id_to_name;
-
</del><span class="cx">     // e.g. {&quot;(WebKit,131456,\&quot;2012-10-16 14:53:00\&quot;)&quot;,&quot;(Chromium,162004,)&quot;}
</span><span class="cx">     $outer_array = json_decode('[' . trim($postgres_array, '{}') . ']');
</span><span class="cx">     $revisions = array();
</span><span class="lines">@@ -32,7 +30,7 @@
</span><span class="cx">         if (!$name_and_revision[0])
</span><span class="cx">             continue;
</span><span class="cx">         $time = strtotime(trim($name_and_revision[2], '&quot;')) * 1000;
</span><del>-        $revisions[$repository_id_to_name[trim($name_and_revision[0], '&quot;')]] = array(trim($name_and_revision[1], '&quot;'), $time);
</del><ins>+        $revisions[trim($name_and_revision[0], '&quot;')] = array(trim($name_and_revision[1], '&quot;'), $time);
</ins><span class="cx">     }
</span><span class="cx">     return $revisions;
</span><span class="cx"> }
</span><span class="lines">@@ -50,11 +48,7 @@
</span><span class="cx">         'builder' =&gt; $run['build_builder']);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-$repository_id_to_name = array();
-
</del><span class="cx"> function main($path) {
</span><del>-    global $repository_id_to_name;
-
</del><span class="cx">     if (count($path) != 1)
</span><span class="cx">         exit_with_error('InvalidRequest');
</span><span class="cx"> 
</span><span class="lines">@@ -78,11 +72,6 @@
</span><span class="cx">     if (!$config_rows)
</span><span class="cx">         exit_with_error('ConfigurationNotFound');
</span><span class="cx"> 
</span><del>-    if ($repository_table = $db-&gt;fetch_table('repositories')) {
-        foreach ($repository_table as $repository)
-            $repository_id_to_name[$repository['repository_id']] = $repository['repository_name'];
-    }
-
</del><span class="cx">     $results = array();
</span><span class="cx">     foreach ($config_rows as $config) {
</span><span class="cx">         if ($runs = fetch_runs_for_config($db, $config))
</span></span></pre></div>
<a id="trunkWebsitesperfwebkitorgpublicapitriggerablesphp"></a>
<div class="modfile"><h4>Modified: trunk/Websites/perf.webkit.org/public/api/triggerables.php (179590 => 179591)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Websites/perf.webkit.org/public/api/triggerables.php        2015-02-04 05:06:15 UTC (rev 179590)
+++ trunk/Websites/perf.webkit.org/public/api/triggerables.php        2015-02-04 05:40:34 UTC (rev 179591)
</span><span class="lines">@@ -26,14 +26,10 @@
</span><span class="cx">         $id_to_triggerable[$id] = array('id' =&gt; $id, 'name' =&gt; $row['triggerable_name'], 'acceptedRepositories' =&gt; &amp;$repositories);
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    $repository_id_to_name = array();
-    foreach ($db-&gt;select_rows('repositories', 'repository', array(), 'name') as $row)
-        $repository_id_to_name[$row['repository_id']] = $row['repository_name'];
-
</del><span class="cx">     foreach ($db-&gt;select_rows('triggerable_repositories', 'trigrepo', array()) as $row) {
</span><span class="cx">         $triggerable = $id_to_triggerable[$row['trigrepo_triggerable']];
</span><span class="cx">         if ($triggerable)
</span><del>-            array_push($triggerable['acceptedRepositories'], $repository_id_to_name[$row['trigrepo_repository']]);
</del><ins>+            array_push($triggerable['acceptedRepositories'], $row['trigrepo_repository']);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     exit_with_success(array('triggerables' =&gt; array_values($id_to_triggerable)));
</span></span></pre></div>
<a id="trunkWebsitesperfwebkitorgpublicincludemanifestphp"></a>
<div class="modfile"><h4>Modified: trunk/Websites/perf.webkit.org/public/include/manifest.php (179590 => 179591)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Websites/perf.webkit.org/public/include/manifest.php        2015-02-04 05:06:15 UTC (rev 179590)
+++ trunk/Websites/perf.webkit.org/public/include/manifest.php        2015-02-04 05:40:34 UTC (rev 179591)
</span><span class="lines">@@ -100,7 +100,8 @@
</span><span class="cx">         if (!$repositories_table)
</span><span class="cx">             return $repositories;
</span><span class="cx">         foreach ($repositories_table as $row) {
</span><del>-            $repositories[$row['repository_name']] = array(
</del><ins>+            $repositories[$row['repository_id']] = array(
+                'name' =&gt; $row['repository_name'],
</ins><span class="cx">                 'url' =&gt; $row['repository_url'],
</span><span class="cx">                 'blameUrl' =&gt; $row['repository_blame_url'],
</span><span class="cx">                 'hasReportedCommits' =&gt; in_array($row['repository_id'], $repositories_with_commit));
</span><span class="lines">@@ -121,18 +122,12 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     private function bug_trackers($repositories_table) {
</span><del>-        $repository_id_to_name = array();
-        if ($repositories_table) {
-            foreach ($repositories_table as $row)
-                $repository_id_to_name[$row['repository_id']] = $row['repository_name'];
-        }
-
</del><span class="cx">         $tracker_id_to_repositories = array();
</span><span class="cx">         $tracker_repositories_table = $this-&gt;db-&gt;fetch_table('tracker_repositories');
</span><span class="cx">         if ($tracker_repositories_table) {
</span><span class="cx">             foreach ($tracker_repositories_table as $row) {
</span><span class="cx">                 array_push(array_ensure_item_has_array($tracker_id_to_repositories, $row['tracrepo_tracker']),
</span><del>-                    $repository_id_to_name[$row['tracrepo_repository']]);
</del><ins>+                    $row['tracrepo_repository']);
</ins><span class="cx">             }
</span><span class="cx">         }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkWebsitesperfwebkitorgpublicjshelperclassesjs"></a>
<div class="modfile"><h4>Modified: trunk/Websites/perf.webkit.org/public/js/helper-classes.js (179590 => 179591)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Websites/perf.webkit.org/public/js/helper-classes.js        2015-02-04 05:06:15 UTC (rev 179590)
+++ trunk/Websites/perf.webkit.org/public/js/helper-classes.js        2015-02-04 05:40:34 UTC (rev 179591)
</span><span class="lines">@@ -51,8 +51,8 @@
</span><span class="cx">     const revisions = rawRun.revisions;
</span><span class="cx">     var maxTime = 0;
</span><span class="cx">     var revisionCount = 0;
</span><del>-    for (var repositoryName in revisions) {
-        maxTime = Math.max(maxTime, revisions[repositoryName][1]); // Revision is an pair (revision, time)
</del><ins>+    for (var repositoryId in revisions) {
+        maxTime = Math.max(maxTime, revisions[repositoryId][1]); // Revision is an pair (revision, time)
</ins><span class="cx">         revisionCount++;
</span><span class="cx">     }
</span><span class="cx">     if (!maxTime)
</span><span class="lines">@@ -81,14 +81,14 @@
</span><span class="cx">         return template ? template.replace(/\$buildNumber/g, this.buildNumber()) : null;
</span><span class="cx">     }
</span><span class="cx">     this.platform = function () { return platform; }
</span><del>-    this.revision = function(repositoryName) { return revisions[repositoryName][0]; }
</del><ins>+    this.revision = function(repositoryId) { return revisions[repositoryId][0]; }
</ins><span class="cx">     this.formattedRevisions = function (previousBuild) {
</span><span class="cx">         var result = {};
</span><del>-        for (var repositoryName in repositories) {
-            if (!revisions[repositoryName])
</del><ins>+        for (var repositoryId in repositories) {
+            if (!revisions[repositoryId])
</ins><span class="cx">                 continue;
</span><del>-            var previousRevision = previousBuild ? previousBuild.revision(repositoryName) : undefined;
-            var currentRevision = this.revision(repositoryName);
</del><ins>+            var previousRevision = previousBuild ? previousBuild.revision(repositoryId) : undefined;
+            var currentRevision = this.revision(repositoryId);
</ins><span class="cx">             if (previousRevision === currentRevision)
</span><span class="cx">                 previousRevision = undefined;
</span><span class="cx"> 
</span><span class="lines">@@ -119,7 +119,7 @@
</span><span class="cx">             }
</span><span class="cx"> 
</span><span class="cx">             var url;
</span><del>-            var repository = repositories[repositoryName];
</del><ins>+            var repository = repositories[repositoryId];
</ins><span class="cx">             if (repository) {
</span><span class="cx">                 if (previousRevision)
</span><span class="cx">                     url = (repository['blameUrl'] || '').replace(/\$1/g, previousRevision).replace(/\$2/g, currentRevision);
</span><span class="lines">@@ -127,7 +127,7 @@
</span><span class="cx">                     url = (repository['url'] || '').replace(/\$1/g, currentRevision);
</span><span class="cx">             }
</span><span class="cx"> 
</span><del>-            result[repositoryName] = {
</del><ins>+            result[repository.name] = {
</ins><span class="cx">                 'label': labelForThisRepository,
</span><span class="cx">                 'currentRevision': currentRevision,
</span><span class="cx">                 'previousRevision': previousRevision,
</span></span></pre></div>
<a id="trunkWebsitesperfwebkitorgpublicv2appjs"></a>
<div class="modfile"><h4>Modified: trunk/Websites/perf.webkit.org/public/v2/app.js (179590 => 179591)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Websites/perf.webkit.org/public/v2/app.js        2015-02-04 05:06:15 UTC (rev 179590)
+++ trunk/Websites/perf.webkit.org/public/v2/app.js        2015-02-04 05:40:34 UTC (rev 179591)
</span><span class="lines">@@ -276,8 +276,8 @@
</span><span class="cx">     selectedItem: null,
</span><span class="cx">     searchCommit: function (repository, keyword) {
</span><span class="cx">         var self = this;
</span><del>-        var repositoryName = repository.get('id');
-        CommitLogs.fetchForTimeRange(repositoryName, null, null, keyword).then(function (commits) {
</del><ins>+        var repositoryId = repository.get('id');
+        CommitLogs.fetchForTimeRange(repositoryId, null, null, keyword).then(function (commits) {
</ins><span class="cx">             if (self.isDestroyed || !self.get('chartData') || !commits.length)
</span><span class="cx">                 return;
</span><span class="cx">             var currentRuns = self.get('chartData').current.timeSeriesByCommitTime().series();
</span><span class="lines">@@ -288,7 +288,7 @@
</span><span class="cx">             var commitIndex = 0;
</span><span class="cx">             for (var runIndex = 0; runIndex &lt; currentRuns.length &amp;&amp; commitIndex &lt; commits.length; runIndex++) {
</span><span class="cx">                 var measurement = currentRuns[runIndex].measurement;
</span><del>-                var commitTime = measurement.commitTimeForRepository(repositoryName);
</del><ins>+                var commitTime = measurement.commitTimeForRepository(repositoryId);
</ins><span class="cx">                 if (!commitTime)
</span><span class="cx">                     continue;
</span><span class="cx">                 if (commits[commitIndex].time &lt;= commitTime) {
</span><span class="lines">@@ -727,12 +727,11 @@
</span><span class="cx">         var revisions = App.Manifest.get('repositories')
</span><span class="cx">             .filter(function (repository) { return formattedRevisions[repository.get('id')]; })
</span><span class="cx">             .map(function (repository) {
</span><del>-            var repositoryName = repository.get('id');
-            var revision = Ember.Object.create(formattedRevisions[repositoryName]);
</del><ins>+            var revision = Ember.Object.create(formattedRevisions[repository.get('id')]);
</ins><span class="cx">             revision['url'] = revision.previousRevision
</span><span class="cx">                 ? repository.urlForRevisionRange(revision.previousRevision, revision.currentRevision)
</span><span class="cx">                 : repository.urlForRevision(revision.currentRevision);
</span><del>-            revision['name'] = repositoryName;
</del><ins>+            revision['name'] = repository.get('name');
</ins><span class="cx">             revision['repository'] = repository;
</span><span class="cx">             return revision; 
</span><span class="cx">         });
</span><span class="lines">@@ -888,11 +887,11 @@
</span><span class="cx">         var repositoryToRevisions = {};
</span><span class="cx">         analysisPoints.forEach(function (point, pointIndex) {
</span><span class="cx">             var revisions = point.measurement.formattedRevisions();
</span><del>-            for (var repositoryName in revisions) {
-                if (!repositoryToRevisions[repositoryName])
-                    repositoryToRevisions[repositoryName] = new Array(analysisPoints.length);
-                var revision = revisions[repositoryName];
-                repositoryToRevisions[repositoryName][pointIndex] = {
</del><ins>+            for (var repositoryId in revisions) {
+                if (!repositoryToRevisions[repositoryId])
+                    repositoryToRevisions[repositoryId] = new Array(analysisPoints.length);
+                var revision = revisions[repositoryId];
+                repositoryToRevisions[repositoryId][pointIndex] = {
</ins><span class="cx">                     label: point.label + ': ' + revision.label,
</span><span class="cx">                     value: revision.currentRevision,
</span><span class="cx">                 };
</span><span class="lines">@@ -905,15 +904,15 @@
</span><span class="cx">                 return;
</span><span class="cx"> 
</span><span class="cx">             self.set('roots', triggerable.get('acceptedRepositories').map(function (repository) {
</span><del>-                var repositoryName = repository.get('id');
-                var revisions = [{value: ' ', label: 'None'}].concat(repositoryToRevisions[repositoryName]);
</del><ins>+                var repositoryId = repository.get('id');
+                var revisions = [{value: ' ', label: 'None'}].concat(repositoryToRevisions[repositoryId]);
</ins><span class="cx">                 return Ember.Object.create({
</span><del>-                    name: repositoryName,
</del><ins>+                    name: repository.get('name'),
</ins><span class="cx">                     sets: [
</span><del>-                        Ember.Object.create({name: 'A[' + repositoryName + ']',
</del><ins>+                        Ember.Object.create({name: 'A[' + repositoryId + ']',
</ins><span class="cx">                             revisions: revisions,
</span><span class="cx">                             selection: revisions[1]}),
</span><del>-                        Ember.Object.create({name: 'B[' + repositoryName + ']',
</del><ins>+                        Ember.Object.create({name: 'B[' + repositoryId + ']',
</ins><span class="cx">                             revisions: revisions,
</span><span class="cx">                             selection: revisions[revisions.length - 1]}),
</span><span class="cx">                     ],
</span></span></pre></div>
<a id="trunkWebsitesperfwebkitorgpublicv2datajs"></a>
<div class="modfile"><h4>Modified: trunk/Websites/perf.webkit.org/public/v2/data.js (179590 => 179591)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Websites/perf.webkit.org/public/v2/data.js        2015-02-04 05:06:15 UTC (rev 179590)
+++ trunk/Websites/perf.webkit.org/public/v2/data.js        2015-02-04 05:40:34 UTC (rev 179591)
</span><span class="lines">@@ -141,8 +141,8 @@
</span><span class="cx">         revisions = {};
</span><span class="cx">     this._raw['revisions'] = revisions;
</span><span class="cx"> 
</span><del>-    for (var repositoryName in revisions) {
-        var commitTimeOrUndefined = revisions[repositoryName][1]; // e.g. [&quot;162190&quot;, 1389945046000]
</del><ins>+    for (var repositoryId in revisions) {
+        var commitTimeOrUndefined = revisions[repositoryId][1]; // e.g. [&quot;162190&quot;, 1389945046000]
</ins><span class="cx">         if (latestTime &lt; commitTimeOrUndefined)
</span><span class="cx">             latestTime = commitTimeOrUndefined;
</span><span class="cx">     }
</span><span class="lines">@@ -152,10 +152,10 @@
</span><span class="cx">     this._formattedRevisions = undefined;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Measurement.prototype.commitTimeForRepository = function (repositoryName)
</del><ins>+Measurement.prototype.commitTimeForRepository = function (repositoryId)
</ins><span class="cx"> {
</span><span class="cx">     var revisions = this._raw['revisions'];
</span><del>-    var rawData = revisions[repositoryName];
</del><ins>+    var rawData = revisions[repositoryId];
</ins><span class="cx">     if (!rawData)
</span><span class="cx">         return null;
</span><span class="cx">     return new Date(rawData[1]);
</span><span class="lines">@@ -166,11 +166,11 @@
</span><span class="cx">     var revisions = this._raw['revisions'];
</span><span class="cx">     var previousRevisions = previousMeasurement ? previousMeasurement._raw['revisions'] : null;
</span><span class="cx">     var formattedRevisions = {};
</span><del>-    for (var repositoryName in revisions) {
-        var currentRevision = revisions[repositoryName][0];
-        var previousRevision = previousRevisions ? previousRevisions[repositoryName][0] : null;
</del><ins>+    for (var repositoryId in revisions) {
+        var currentRevision = revisions[repositoryId][0];
+        var previousRevision = previousRevisions ? previousRevisions[repositoryId][0] : null;
</ins><span class="cx">         var formatttedRevision = this._formatRevisionRange(previousRevision, currentRevision);
</span><del>-        formattedRevisions[repositoryName] = formatttedRevision;
</del><ins>+        formattedRevisions[repositoryId] = formatttedRevision;
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     return formattedRevisions;
</span></span></pre></div>
<a id="trunkWebsitesperfwebkitorgpublicv2indexhtml"></a>
<div class="modfile"><h4>Modified: trunk/Websites/perf.webkit.org/public/v2/index.html (179590 => 179591)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Websites/perf.webkit.org/public/v2/index.html        2015-02-04 05:06:15 UTC (rev 179590)
+++ trunk/Websites/perf.webkit.org/public/v2/index.html        2015-02-04 05:40:34 UTC (rev 179591)
</span><span class="lines">@@ -188,8 +188,10 @@
</span><span class="cx"> 
</span><span class="cx">                 &lt;form {{bind-attr class=&quot;:search-pane showingSearchPane::hidden&quot;}}&gt;
</span><span class="cx">                     &lt;span class=&quot;repositories&quot;&gt;
</span><del>-                        {{view Ember.Select content=App.Manifest.repositoriesWithReportedCommits
-                            optionLabelPath='content.id'
</del><ins>+                        {{view Ember.Select
+                            content=App.Manifest.repositoriesWithReportedCommits
+                            optionValuePath='content.id'
+                            optionLabelPath='content.name'
</ins><span class="cx">                             selection=commitSearchRepository}}
</span><span class="cx">                     &lt;/span&gt;
</span><span class="cx">                     {{input action=&quot;searchCommit&quot; placeholder=&quot;Name or email&quot; value=commitSearchKeyword}}
</span></span></pre>
</div>
</div>

</body>
</html>