Skip to content

Commit e8131c3

Browse files
committed
Add a diff window
This allows you to do something like gitx --diff to display a diff similar to 'git diff', but with GitX prettification. It accepts all git diff parameters, so you can do something like gitx --diff HEAD~10 to show the diff compared to the last 10 commits. Or, you can something like git diff | gitx to pipe anything that produces a diff to GitX
1 parent e054a17 commit e8131c3

10 files changed

+547
-39
lines changed

GitX.xcodeproj/project.pbxproj

+33-1
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,9 @@
6363
F5C007750E731B48007B84B2 /* PBGitRef.m in Sources */ = {isa = PBXBuildFile; fileRef = F5C007740E731B48007B84B2 /* PBGitRef.m */; };
6464
F5C6F68D0E65FF9300478D97 /* PBGitLane.m in Sources */ = {isa = PBXBuildFile; fileRef = F5C6F68C0E65FF9300478D97 /* PBGitLane.m */; };
6565
F5DFFA6C0E075D8800617813 /* PBEasyFS.m in Sources */ = {isa = PBXBuildFile; fileRef = F5DFFA6B0E075D8800617813 /* PBEasyFS.m */; };
66+
F5E424110EA3E4D60046E362 /* PBDiffWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = F5E424100EA3E4D60046E362 /* PBDiffWindow.xib */; };
67+
F5E424150EA3E4E10046E362 /* PBDiffWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = F5E424130EA3E4E10046E362 /* PBDiffWindowController.m */; };
68+
F5E424180EA3E4EB0046E362 /* PBWebDiffController.m in Sources */ = {isa = PBXBuildFile; fileRef = F5E424160EA3E4EB0046E362 /* PBWebDiffController.m */; };
6669
F5E4DBFB0EAB58D90013FAFC /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F5E4DBFA0EAB58D90013FAFC /* SystemConfiguration.framework */; };
6770
F5E926060E8827D300056E75 /* PBViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = F5E926050E8827D300056E75 /* PBViewController.m */; };
6871
F5E927F80E883E7200056E75 /* PBChangedFile.m in Sources */ = {isa = PBXBuildFile; fileRef = F5E927F70E883E7200056E75 /* PBChangedFile.m */; };
@@ -190,6 +193,11 @@
190193
F5D2DC850EA401A80034AD24 /* PBGitConfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PBGitConfig.h; sourceTree = "<group>"; };
191194
F5DFFA6A0E075D8800617813 /* PBEasyFS.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PBEasyFS.h; sourceTree = "<group>"; };
192195
F5DFFA6B0E075D8800617813 /* PBEasyFS.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PBEasyFS.m; sourceTree = "<group>"; };
196+
F5E424100EA3E4D60046E362 /* PBDiffWindow.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = PBDiffWindow.xib; sourceTree = "<group>"; };
197+
F5E424130EA3E4E10046E362 /* PBDiffWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PBDiffWindowController.m; sourceTree = "<group>"; };
198+
F5E424140EA3E4E10046E362 /* PBDiffWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PBDiffWindowController.h; sourceTree = "<group>"; };
199+
F5E424160EA3E4EB0046E362 /* PBWebDiffController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PBWebDiffController.m; sourceTree = "<group>"; };
200+
F5E424170EA3E4EB0046E362 /* PBWebDiffController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PBWebDiffController.h; sourceTree = "<group>"; };
193201
F5E4DBFA0EAB58D90013FAFC /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = /System/Library/Frameworks/SystemConfiguration.framework; sourceTree = "<absolute>"; };
194202
F5E926040E8827D300056E75 /* PBViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PBViewController.h; sourceTree = "<group>"; };
195203
F5E926050E8827D300056E75 /* PBViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PBViewController.m; sourceTree = "<group>"; };
@@ -311,6 +319,7 @@
311319
089C165CFE840E0CC02AAC07 /* InfoPlist.strings */,
312320
F5B721C20E05CF7E00AF29DC /* MainMenu.xib */,
313321
911111E00E58BD5A00BF76B4 /* RepositoryWindow.xib */,
322+
F5E424100EA3E4D60046E362 /* PBDiffWindow.xib */,
314323
F52BCE020E84208300AA3741 /* PBGitHistoryView.xib */,
315324
F59116E50E843BB50072CCB1 /* PBGitCommitView.xib */,
316325
);
@@ -347,6 +356,7 @@
347356
F56174540E05887E001DCD79 /* Git */ = {
348357
isa = PBXGroup;
349358
children = (
359+
F5E424120EA3E4DD0046E362 /* Diff */,
350360
F5E927E30E883D6800056E75 /* Commit */,
351361
F5E927E10E883D2E00056E75 /* History */,
352362
F5945E150E02B0C200706420 /* PBGitRepository.h */,
@@ -362,6 +372,7 @@
362372
F57CC3850E05DDC1000472E2 /* Controllers */ = {
363373
isa = PBXGroup;
364374
children = (
375+
F5B161BB0EAB6E0C005A1DE1 /* Diff */,
365376
F5EF8C880E9D498F0050906B /* History */,
366377
F5E927F90E883EF600056E75 /* Commit */,
367378
77C8280B06725ACE000B614F /* ApplicationController.h */,
@@ -421,6 +432,15 @@
421432
name = HTML;
422433
sourceTree = "<group>";
423434
};
435+
F5B161BB0EAB6E0C005A1DE1 /* Diff */ = {
436+
isa = PBXGroup;
437+
children = (
438+
F5E424140EA3E4E10046E362 /* PBDiffWindowController.h */,
439+
F5E424130EA3E4E10046E362 /* PBDiffWindowController.m */,
440+
);
441+
name = Diff;
442+
sourceTree = "<group>";
443+
};
424444
F5C6F6750E65FE2B00478D97 /* Graphing */ = {
425445
isa = PBXGroup;
426446
children = (
@@ -438,6 +458,15 @@
438458
name = Graphing;
439459
sourceTree = "<group>";
440460
};
461+
F5E424120EA3E4DD0046E362 /* Diff */ = {
462+
isa = PBXGroup;
463+
children = (
464+
F5E424160EA3E4EB0046E362 /* PBWebDiffController.m */,
465+
F5E424170EA3E4EB0046E362 /* PBWebDiffController.h */,
466+
);
467+
name = Diff;
468+
sourceTree = "<group>";
469+
};
441470
F5E927E10E883D2E00056E75 /* History */ = {
442471
isa = PBXGroup;
443472
children = (
@@ -575,6 +604,7 @@
575604
F5E92A230E88569500056E75 /* new_file.png in Resources */,
576605
F5EC2DAD0E8C235C000FA381 /* spinner.gif in Resources */,
577606
F57240BB0E9678EA00D8EE66 /* deleted_file.png in Resources */,
607+
F5E424110EA3E4D60046E362 /* PBDiffWindow.xib in Resources */,
578608
);
579609
runOnlyForDeploymentPostprocessing = 0;
580610
};
@@ -620,8 +650,10 @@
620650
F53C4DF70E97FC630022AD59 /* PBGitBinary.m in Sources */,
621651
F593DF780E9E636C003A8559 /* PBFileChangesTableView.m in Sources */,
622652
93F7857F0EA3ABF100C1F443 /* PBCommitMessageView.m in Sources */,
623-
93FCCBA90EA8AF450061B02B /* PBGitConfig.m in Sources */,
624653
93CB42C20EAB7B2200530609 /* PBGitDefaults.m in Sources */,
654+
F5D2DC870EA401A80034AD24 /* PBGitConfig.m in Sources */,
655+
F5E424150EA3E4E10046E362 /* PBDiffWindowController.m in Sources */,
656+
F5E424180EA3E4EB0046E362 /* PBWebDiffController.m in Sources */,
625657
);
626658
runOnlyForDeploymentPostprocessing = 0;
627659
};

PBCLIProxy.h

+1
Original file line numberDiff line numberDiff line change
@@ -21,4 +21,5 @@
2121

2222
@protocol GitXCliToolProtocol
2323
- (BOOL)openRepository:(NSURL*)repositoryPath arguments: (NSArray*) args error:(NSError**)error;
24+
- (void)openDiffWindowWithDiff:(NSString *)diff;
2425
@end

PBCLIProxy.mm

+8
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
#import "PBGitRepository.h"
1313
#import "PBGitWindowController.h"
1414
#import "PBGitBinary.h"
15+
#import "PBDiffWindowController.h"
1516

1617
@implementation PBCLIProxy
1718
@synthesize connection;
@@ -61,4 +62,11 @@ - (BOOL)openRepository:(NSURL*)repositoryPath arguments: (NSArray*) args error:(
6162

6263
return YES;
6364
}
65+
66+
- (void)openDiffWindowWithDiff:(NSString *)diff
67+
{
68+
PBDiffWindowController *diffController = [[PBDiffWindowController alloc] initWithDiff:[diff copy]];
69+
[diffController showWindow:nil];
70+
[[NSApplication sharedApplication] activateIgnoringOtherApps:YES];
71+
}
6472
@end

0 commit comments

Comments
 (0)