OLD | NEW |
| (Empty) |
1 <!-- | |
2 Copyright 2014 The Chromium Authors. All rights reserved. | |
3 Use of this source code is governed by a BSD-style license that can be | |
4 found in the LICENSE file. | |
5 --> | |
6 | |
7 <script> | |
8 function CTCommit() {} | |
9 | |
10 CTCommit.create = function(author, message, baseUrl, repository) { | |
11 var commit = new CTCommit(); | |
12 var revision = CTCommit.findRevision(message); | |
13 commit.complete(author, message, revision); | |
14 commit.url = commit._url(baseUrl); | |
15 commit.repository = repository; | |
16 return commit; | |
17 } | |
18 | |
19 // This is for cases where we can't get the commit data off the | |
20 // repository for some reason. | |
21 CTCommit.createIncomplete = function(baseUrl, revision, repository) { | |
22 var commit = new CTCommit(); | |
23 commit.revision = revision; | |
24 commit.url = commit._url(baseUrl); | |
25 commit.repository = repository; | |
26 return commit; | |
27 } | |
28 | |
29 CTCommit.findRevision = function(message) { | |
30 var svnRegexp = /^git-svn-id:[^@]*@(\d+).*$/m; | |
31 var gitRegexp = /^Cr-Commit-Position\:\ refs\/heads\/master@\{#(\d+)\}.*$/m; | |
32 | |
33 var match = svnRegexp.exec(message); | |
34 if (!match) | |
35 match = gitRegexp.exec(message); | |
36 | |
37 if (match) | |
38 return parseInt(match[1], 10); | |
39 return null; | |
40 } | |
41 | |
42 CTCommit.prototype.complete = function(author, message, revision) { | |
43 this.author = author; | |
44 this.message = message; | |
45 this.revision = revision; | |
46 this.summary = this._findSummary(); | |
47 this.isComplete = true; | |
48 } | |
49 | |
50 CTCommit.prototype._url = function(baseUrl) { | |
51 return baseUrl.assign({revision: this.revision}); | |
52 } | |
53 | |
54 CTCommit.prototype._findSummary = function() { | |
55 var index = this.message.indexOf('\n'); | |
56 return this.message.substring(0, index); | |
57 } | |
58 </script> | |
OLD | NEW |