CommitView: Migrate diff displaying away from IndexController

This commit is contained in:
Pieter de Bie
2009-09-13 02:16:31 +02:00
parent 07417acd51
commit 64a52ad9e0
5 changed files with 11 additions and 44 deletions
+2
View File
@@ -12,6 +12,8 @@
@class PBGitIndexController, PBIconAndTextCell, PBWebChangesController, PBGitIndex;
@interface PBGitCommitController : PBViewController {
// This might have to transfer over to the PBGitRepository
// object sometime
PBGitIndex *index;
IBOutlet NSTextView *commitMessageView;
-3
View File
@@ -33,8 +33,5 @@
- (IBAction) rowClicked:(NSCell *) sender;
- (IBAction) tableClicked:(NSTableView *)tableView;
- (NSString *) stagedChangesForFile:(PBChangedFile *)file;
- (NSString *) unstagedChangesForFile:(PBChangedFile *)file;
- (NSMenu *) menuForTable:(NSTableView *)table;
@end
-27
View File
@@ -129,33 +129,6 @@
# pragma mark Displaying diffs
- (NSString *) stagedChangesForFile:(PBChangedFile *)file
{
NSString *indexPath = [@":0:" stringByAppendingString:file.path];
if (file.status == NEW)
return [commitController.repository outputForArguments:[NSArray arrayWithObjects:@"show", indexPath, nil]];
return [commitController.repository outputInWorkdirForArguments:[NSArray arrayWithObjects:@"diff-index", [self contextParameter], @"--cached", [commitController.index parentTree], @"--", file.path, nil]];
}
- (NSString *)unstagedChangesForFile:(PBChangedFile *)file
{
if (file.status == NEW) {
NSStringEncoding encoding;
NSError *error = nil;
NSString *path = [[commitController.repository workingDirectory] stringByAppendingPathComponent:file.path];
NSString *contents = [NSString stringWithContentsOfFile:path
usedEncoding:&encoding
error:&error];
if (error)
return nil;
return contents;
}
return [commitController.repository outputInWorkdirForArguments:[NSArray arrayWithObjects:@"diff-files", [self contextParameter], @"--", file.path, nil]];
}
- (void)discardChangesForFiles:(NSArray *)files force:(BOOL)force
{
+1 -1
View File
@@ -26,7 +26,7 @@
- (void) didLoad
{
[[self script] setValue:indexController forKey:@"IndexController"];
[[self script] setValue:controller.index forKey:@"Index"];
[self refresh];
}
+8 -13
View File
@@ -1,11 +1,13 @@
/* Commit: Interface for selecting, staging, discarding, and unstaging
hunks, individual lines, or ranges of lines. */
var contextLines = 5;
var showNewFile = function(file)
{
setTitle("New file: " + file.path);
var contents = IndexController.unstagedChangesForFile_(file);
var contents = Index.diffForFile_staged_contextLines_(file, false, contextLines);
if (!contents) {
notify("Can not display changes (Binary file?)", -1);
diff.innerHTML = "";
@@ -49,23 +51,16 @@ var showFileChanges = function(file, cached) {
hideState();
$("contextSize").oninput = function(element) {
Controller.setContextSize_($("contextSize").value);
contextSize = $("contextSize").value;
}
if (file.status == 0) // New file?
return showNewFile(file);
var changes;
if (cached) {
setTitle("Staged changes for " + file.path);
displayContext();
changes = IndexController.stagedChangesForFile_(file);
}
else {
setTitle("Unstaged changes for " + file.path);
displayContext();
changes = IndexController.unstagedChangesForFile_(file);
}
setTitle((cached ? "Staged": "Unstaged") + " changes for" + file.path);
displayContext();
var changes = Index.diffForFile_staged_contextLines_(file, cached, contextLines);
if (changes == "") {
notify("This file has no more changes", 1);