mirror of
https://github.com/kennethreitz-archive/gitx.git
synced 2026-06-05 23:40:18 +00:00
Only display a diff when it is small enough
The diff display is rather slow now, probably because everything is put into one big pre tag. Before we can fix this, we have to parse the diff better. For now, just display a message.
This commit is contained in:
+18
-15
@@ -1,21 +1,29 @@
|
||||
var Commit = Class.create({
|
||||
initialize: function(obj) {
|
||||
this.raw = obj.details();
|
||||
this.sha = this.raw.match(/^commit ([0-9a-f]{40,40})/)[1];
|
||||
var messageStart = this.raw.indexOf("\n\n") + 2;
|
||||
var diffStart = this.raw.indexOf("\ndiff ");
|
||||
|
||||
var match = this.raw.match(/\nauthor (.*) <(.*@.*)> ([0-9].*)/);
|
||||
this.header = this.raw.substring(0, messageStart);
|
||||
|
||||
this.sha = this.header.match(/^commit ([0-9a-f]{40,40})/)[1];
|
||||
|
||||
var match = this.header.match(/\nauthor (.*) <(.*@.*)> ([0-9].*)/);
|
||||
this.author_name = match[1];
|
||||
this.author_email = match[2];
|
||||
this.author_date = new Date(parseInt(match[3]) * 1000);
|
||||
|
||||
match = this.raw.match(/\ncommitter (.*) <(.*@.*)> ([0-9].*)/);
|
||||
match = this.header.match(/\ncommitter (.*) <(.*@.*)> ([0-9].*)/);
|
||||
this.committer_name = match[1];
|
||||
this.committer_email = match[2];
|
||||
this.committer_date = new Date(parseInt(match[3]) * 1000);
|
||||
|
||||
this.parents = $A(this.raw.match(/\nparent ([0-9a-f]{40,40})/g)).map(function(x) {
|
||||
this.parents = $A(this.header.match(/\nparent ([0-9a-f]{40,40})/g)).map(function(x) {
|
||||
return x.replace("\nparent ","");
|
||||
});
|
||||
|
||||
this.message = this.raw.substring(messageStart, diffStart);
|
||||
this.diff = this.raw.substring(diffStart);
|
||||
},
|
||||
});
|
||||
|
||||
@@ -35,15 +43,10 @@ var doeHet = function() {
|
||||
new_row.innerHTML = "<td class='property_name'>Parent:</td><td><a href=''>" + parent + "</a></td>";
|
||||
});
|
||||
|
||||
details = CommitObject.details();
|
||||
messageStart = details.indexOf("\n\n") + 2;
|
||||
diffStart = details.indexOf("diff");
|
||||
|
||||
header = details.substring(0, messageStart);
|
||||
message = details.substring(messageStart, diffStart);
|
||||
details = details.substring(diffStart);
|
||||
|
||||
|
||||
$("message").innerHTML = message.replace(/\n/g,"<br>");
|
||||
$("details").innerHTML = details;
|
||||
$("message").innerHTML = commit.message.replace(/\n/g,"<br>");
|
||||
if (commit.diff.length < 1000) {
|
||||
$("details").innerHTML = commit.diff;
|
||||
} else {
|
||||
$("details").innerHTML = "This diff is currently too large to watch in detailed mode";
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user