- Revision
- 295611
- Author
- [email protected]
- Date
- 2022-06-16 13:41:38 -0700 (Thu, 16 Jun 2022)
Log Message
Prefer using commit identifier to build commit URL.
https://bugs.webkit.org/show_bug.cgi?id=241646
rdar://93104485
Reviewed by Jonathan Bedard.
Use commit identifier to construct commit URL and blame URL when available.
This simplifies URL construction for Git transition.
* Websites/perf.webkit.org/public/v3/models/commit-log.js: Added code to prefer using commit identifiers
when available.
(CommitLog.prototype.url):
(CommitLog.prototype.diff):
* Websites/perf.webkit.org/unit-tests/commit-log-tests.js: Added a unit test for diff.
(assert.deepStrictEqual.webkitGitCommitWithRevisionIdentifier.diff.oldWebKitGitCommitWithRevisionIdentifier):
* Websites/perf.webkit.org/unit-tests/commit-set-tests.js: Updated unit test.
* Websites/perf.webkit.org/unit-tests/resources/mock-v3-models.js: Added 'blameUrl' to 'WebKitGit' mock repository.
(MockModels.inject):
Canonical link: https://commits.webkit.org/251616@main
Modified Paths
Diff
Modified: trunk/Websites/perf.webkit.org/public/v3/models/commit-log.js (295610 => 295611)
--- trunk/Websites/perf.webkit.org/public/v3/models/commit-log.js 2022-06-16 20:37:38 UTC (rev 295610)
+++ trunk/Websites/perf.webkit.org/public/v3/models/commit-log.js 2022-06-16 20:41:38 UTC (rev 295611)
@@ -42,7 +42,7 @@
revision() { return this._rawData['revision']; }
revisionIdentifier() { return this._rawData['revisionIdentifier']; }
message() { return this._rawData['message']; }
- url() { return this._repository.urlForRevision(this._rawData['revision']); }
+ url() { return this._repository.urlForRevision(this.revisionIdentifier() || this.revision()); }
ownsCommits() { return this._rawData['ownsCommits']; }
ownedCommits() { return this._ownedCommits; }
ownerCommit() { return this._ownerCommit; }
@@ -105,7 +105,10 @@
return revisionRange;
})(identifierPattern.exec(previousCommit.revisionIdentifier()), identifierPattern.exec(this.revisionIdentifier()));
- return {repository, label, url: repository.urlForRevisionRange(fromRevision, toRevision)};
+ const from = previousCommit.revisionIdentifier() || fromRevision;
+ const to = this.revisionIdentifier() || toRevision;
+
+ return {repository, label, url: repository.urlForRevisionRange(from, to)};
}
static fetchLatestCommitForPlatform(repository, platform)
Modified: trunk/Websites/perf.webkit.org/unit-tests/commit-log-tests.js (295610 => 295611)
--- trunk/Websites/perf.webkit.org/unit-tests/commit-log-tests.js 2022-06-16 20:37:38 UTC (rev 295610)
+++ trunk/Websites/perf.webkit.org/unit-tests/commit-log-tests.js 2022-06-16 20:41:38 UTC (rev 295611)
@@ -28,6 +28,18 @@
});
}
+function webkitGitCommitWithRevisionIdentifier()
+{
+ return new CommitLog(1, {
+ id: 1,
+ repository: MockModels.webkitGit,
+ revision: '200805',
+ revisionIdentifier: '184276@main',
+ time: +(new Date('2016-05-13T00:55:57.841344Z')),
+ });
+
+}
+
function oldWebKitCommit()
{
return new CommitLog(2, {
@@ -49,6 +61,17 @@
});
}
+function oldWebKitGitCommitWithRevisionIdentifier()
+{
+ return new CommitLog(2, {
+ id: 2,
+ repository: MockModels.webkitGit,
+ revision: '200574',
+ revisionIdentifier: '175605@main',
+ time: +(new Date('2016-05-09T14:59:23.553767Z')),
+ });
+}
+
function gitWebKitCommit()
{
return new CommitLog(3, {
@@ -308,6 +331,14 @@
});
});
+ it('should prefer using identifiers create blame URL', () => {
+ assert.deepStrictEqual(webkitGitCommitWithRevisionIdentifier().diff((oldWebKitGitCommitWithRevisionIdentifier())), {
+ label: '175605-184276@main (r200574-r200805)',
+ url: 'https://commits.webkit.org/compare/[email protected]@main',
+ repository: MockModels.webkitGit
+ });
+ });
+
});
describe('hasOrdering', () => {
Modified: trunk/Websites/perf.webkit.org/unit-tests/commit-set-tests.js (295610 => 295611)
--- trunk/Websites/perf.webkit.org/unit-tests/commit-set-tests.js 2022-06-16 20:37:38 UTC (rev 295610)
+++ trunk/Websites/perf.webkit.org/unit-tests/commit-set-tests.js 2022-06-16 20:41:38 UTC (rev 295611)
@@ -423,7 +423,7 @@
assert.equal(CommitSet.diff(oneCommitSet(), commitSetWithAnotherWebKitCommit()), 'WebKit: webkit-commit-0 - webkit-commit-1');
assert.equal(CommitSet.diff(commitSetWithSVNCommit(), anotherCommitSetWithSVNCommit()), 'WebKit: r12345-r45678');
assert.equal(CommitSet.diff(commitSetWithGitCommit(), anotherCommitSetWithGitCommit()), 'WebKit-Git: 13a0590d34f2..2f8dd3321d4f');
- assert.equal(CommitSet.diff(commitSetWithTwoCommits(), anotherCommitSetWithTwoCommits()), 'WebKit: r12345-r45678 WebKit-Git: 13a0590d34f2..2f8dd3321d4f');
+ assert.equal(CommitSet.diff(commitSetWithTwoCommits(), anotherCommitSetWithTwoCommits()), 'WebKit-Git: 13a0590d34f2..2f8dd3321d4f WebKit: r12345-r45678');
});
it('should describe commit root and patch difference', () => {
Modified: trunk/Websites/perf.webkit.org/unit-tests/resources/mock-v3-models.js (295610 => 295611)
--- trunk/Websites/perf.webkit.org/unit-tests/resources/mock-v3-models.js 2022-06-16 20:37:38 UTC (rev 295610)
+++ trunk/Websites/perf.webkit.org/unit-tests/resources/mock-v3-models.js 2022-06-16 20:41:38 UTC (rev 295611)
@@ -25,7 +25,7 @@
MockModels.sharedRepository = Repository.ensureSingleton(16, {name: 'Shared'});
MockModels.ownerRepository = Repository.ensureSingleton(111, {name: 'Owner Repository'});
MockModels.ownedRepository = Repository.ensureSingleton(112, {name: 'Owned Repository', owner: 111});
- MockModels.webkitGit = Repository.ensureSingleton(17, {name: 'WebKit-Git'});
+ MockModels.webkitGit = Repository.ensureSingleton(17, {name: 'WebKit-Git', blameUrl: 'https://commits.webkit.org/compare/$1...$2'});
MockModels.builder = new Builder(176, {name: 'WebKit Perf Builder', buildUrl: 'http://build.webkit.org/builders/$builderName/$buildTag'});
MockModels.someTest = Test.ensureSingleton(1, {name: 'Some test'});