Skip to content

Commit 3d59981

Browse files
committed
Merge remote branch 'pieter/master' into integration
2 parents 7a1019f + a256210 commit 3d59981

File tree

5 files changed

+345
-3
lines changed

5 files changed

+345
-3
lines changed

GitX.xcodeproj/project.pbxproj

Lines changed: 161 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,15 @@
6565
F56524F00E02D45200F03B52 /* PBGitCommit.m in Sources */ = {isa = PBXBuildFile; fileRef = F56524EF0E02D45200F03B52 /* PBGitCommit.m */; };
6666
F56526240E03D85900F03B52 /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F56526230E03D85900F03B52 /* WebKit.framework */; };
6767
F565262B0E03D89B00F03B52 /* PBWebHistoryController.m in Sources */ = {isa = PBXBuildFile; fileRef = F565262A0E03D89B00F03B52 /* PBWebHistoryController.m */; };
68+
F567CC64106E6BC80059BB9D /* PBGitRepository.m in Sources */ = {isa = PBXBuildFile; fileRef = F5945E160E02B0C200706420 /* PBGitRepository.m */; };
69+
F567CC65106E6BC90059BB9D /* PBGitBinary.m in Sources */ = {isa = PBXBuildFile; fileRef = F53C4DF60E97FC630022AD59 /* PBGitBinary.m */; };
70+
F567CC66106E6BC90059BB9D /* PBGitConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = 93FCCBA80EA8AF450061B02B /* PBGitConfig.m */; };
71+
F567CC67106E6BD00059BB9D /* PBGitRepository.h in Headers */ = {isa = PBXBuildFile; fileRef = F5945E150E02B0C200706420 /* PBGitRepository.h */; };
72+
F567CC68106E6BD00059BB9D /* PBGitBinary.h in Headers */ = {isa = PBXBuildFile; fileRef = F53C4DF50E97FC630022AD59 /* PBGitBinary.h */; };
73+
F567CC69106E6BD00059BB9D /* PBGitConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D2DC850EA401A80034AD24 /* PBGitConfig.h */; };
74+
F567CC7B106E6BF70059BB9D /* PBGitRef.h in Headers */ = {isa = PBXBuildFile; fileRef = F5C007730E731B48007B84B2 /* PBGitRef.h */; };
75+
F567CC7F106E6C470059BB9D /* libgit2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F5C580E40EDA250900995434 /* libgit2.a */; };
76+
F567CC8E106E6FC40059BB9D /* PBEasyPipe.m in Sources */ = {isa = PBXBuildFile; fileRef = F57CC3900E05DDF2000472E2 /* PBEasyPipe.m */; };
6877
F569AE930F2CBD7C00C2FFA7 /* Credits.html in Resources */ = {isa = PBXBuildFile; fileRef = F569AE920F2CBD7C00C2FFA7 /* Credits.html */; };
6978
F56ADDD90ED19F9E002AC78F /* AddBranchTemplate.png in Resources */ = {isa = PBXBuildFile; fileRef = F56ADDD70ED19F9E002AC78F /* AddBranchTemplate.png */; };
7079
F56ADDDA0ED19F9E002AC78F /* AddLabelTemplate.png in Resources */ = {isa = PBXBuildFile; fileRef = F56ADDD80ED19F9E002AC78F /* AddLabelTemplate.png */; };
@@ -104,6 +113,13 @@
104113
F5C580E50EDA250900995434 /* libgit2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F5C580E40EDA250900995434 /* libgit2.a */; };
105114
F5C580F50EDA251100995434 /* libgit2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F5C580E40EDA250900995434 /* libgit2.a */; };
106115
F5C6F68D0E65FF9300478D97 /* PBGitLane.mm in Sources */ = {isa = PBXBuildFile; fileRef = F5C6F68C0E65FF9300478D97 /* PBGitLane.mm */; };
116+
F5D376B9107511C500AAAC80 /* PBGitIndex.m in Sources */ = {isa = PBXBuildFile; fileRef = F59F1DD4105C4FF300115F88 /* PBGitIndex.m */; };
117+
F5D376C91075134D00AAAC80 /* PBGitRevList.mm in Sources */ = {isa = PBXBuildFile; fileRef = F5FF4E170E0829C20006317A /* PBGitRevList.mm */; };
118+
F5D376CF1075139B00AAAC80 /* PBGitRef.m in Sources */ = {isa = PBXBuildFile; fileRef = F5C007740E731B48007B84B2 /* PBGitRef.m */; };
119+
F5D376D01075139B00AAAC80 /* PBGitRevSpecifier.m in Sources */ = {isa = PBXBuildFile; fileRef = F53FF2040E7ABB5300389171 /* PBGitRevSpecifier.m */; };
120+
F5D376E0107516A700AAAC80 /* PBChangedFile.m in Sources */ = {isa = PBXBuildFile; fileRef = F5E927F70E883E7200056E75 /* PBChangedFile.m */; };
121+
F5D3772610753BD700AAAC80 /* PBChangedFile.h in Headers */ = {isa = PBXBuildFile; fileRef = F5E927F60E883E7200056E75 /* PBChangedFile.h */; };
122+
F5D3772710753BD700AAAC80 /* PBGitIndex.h in Headers */ = {isa = PBXBuildFile; fileRef = F59F1DD3105C4FF300115F88 /* PBGitIndex.h */; };
107123
F5DFFA6C0E075D8800617813 /* PBEasyFS.m in Sources */ = {isa = PBXBuildFile; fileRef = F5DFFA6B0E075D8800617813 /* PBEasyFS.m */; };
108124
F5E424110EA3E4D60046E362 /* PBDiffWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = F5E424100EA3E4D60046E362 /* PBDiffWindow.xib */; };
109125
F5E424150EA3E4E10046E362 /* PBDiffWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = F5E424130EA3E4E10046E362 /* PBDiffWindowController.m */; };
@@ -228,6 +244,8 @@
228244
F56526230E03D85900F03B52 /* WebKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = /System/Library/Frameworks/WebKit.framework; sourceTree = "<absolute>"; };
229245
F56526290E03D89B00F03B52 /* PBWebHistoryController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PBWebHistoryController.h; sourceTree = "<group>"; };
230246
F565262A0E03D89B00F03B52 /* PBWebHistoryController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PBWebHistoryController.m; sourceTree = "<group>"; };
247+
F567CC39106E6B910059BB9D /* GitXTesting.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = GitXTesting.framework; sourceTree = BUILT_PRODUCTS_DIR; };
248+
F567CC3A106E6B910059BB9D /* GitXTesting-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "GitXTesting-Info.plist"; sourceTree = "<group>"; };
231249
F569AE920F2CBD7C00C2FFA7 /* Credits.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = Credits.html; sourceTree = "<group>"; };
232250
F56ADDD70ED19F9E002AC78F /* AddBranchTemplate.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = AddBranchTemplate.png; path = Images/AddBranchTemplate.png; sourceTree = "<group>"; };
233251
F56ADDD80ED19F9E002AC78F /* AddLabelTemplate.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = AddLabelTemplate.png; path = Images/AddLabelTemplate.png; sourceTree = "<group>"; };
@@ -317,6 +335,14 @@
317335
);
318336
runOnlyForDeploymentPostprocessing = 0;
319337
};
338+
F567CC37106E6B910059BB9D /* Frameworks */ = {
339+
isa = PBXFrameworksBuildPhase;
340+
buildActionMask = 2147483647;
341+
files = (
342+
F567CC7F106E6C470059BB9D /* libgit2.a in Frameworks */,
343+
);
344+
runOnlyForDeploymentPostprocessing = 0;
345+
};
320346
F5886A0E0ED5D33D0066E74C /* Frameworks */ = {
321347
isa = PBXFrameworksBuildPhase;
322348
buildActionMask = 2147483647;
@@ -364,6 +390,7 @@
364390
8D1107320486CEB800E47090 /* GitX.app */,
365391
913D5E490E55644600CECEA2 /* gitx */,
366392
F5886A100ED5D33D0066E74C /* SpeedTest.app */,
393+
F567CC39106E6B910059BB9D /* GitXTesting.framework */,
367394
);
368395
name = Products;
369396
sourceTree = "<group>";
@@ -384,6 +411,7 @@
384411
29B97323FDCFA39411CA2CEA /* Frameworks */,
385412
19C28FACFE9D520D11CA2CBB /* Products */,
386413
F5886A120ED5D33D0066E74C /* SpeedTest-Info.plist */,
414+
F567CC3A106E6B910059BB9D /* GitXTesting-Info.plist */,
387415
);
388416
name = GitTest;
389417
sourceTree = "<group>";
@@ -656,6 +684,22 @@
656684
};
657685
/* End PBXGroup section */
658686

687+
/* Begin PBXHeadersBuildPhase section */
688+
F567CC34106E6B910059BB9D /* Headers */ = {
689+
isa = PBXHeadersBuildPhase;
690+
buildActionMask = 2147483647;
691+
files = (
692+
F567CC7B106E6BF70059BB9D /* PBGitRef.h in Headers */,
693+
F5D3772610753BD700AAAC80 /* PBChangedFile.h in Headers */,
694+
F5D3772710753BD700AAAC80 /* PBGitIndex.h in Headers */,
695+
F567CC67106E6BD00059BB9D /* PBGitRepository.h in Headers */,
696+
F567CC68106E6BD00059BB9D /* PBGitBinary.h in Headers */,
697+
F567CC69106E6BD00059BB9D /* PBGitConfig.h in Headers */,
698+
);
699+
runOnlyForDeploymentPostprocessing = 0;
700+
};
701+
/* End PBXHeadersBuildPhase section */
702+
659703
/* Begin PBXNativeTarget section */
660704
8D1107260486CEB800E47090 /* GitX */ = {
661705
isa = PBXNativeTarget;
@@ -696,6 +740,24 @@
696740
productReference = 913D5E490E55644600CECEA2 /* gitx */;
697741
productType = "com.apple.product-type.tool";
698742
};
743+
F567CC38106E6B910059BB9D /* GitXTesting */ = {
744+
isa = PBXNativeTarget;
745+
buildConfigurationList = F567CC3D106E6B920059BB9D /* Build configuration list for PBXNativeTarget "GitXTesting" */;
746+
buildPhases = (
747+
F567CC34106E6B910059BB9D /* Headers */,
748+
F567CC35106E6B910059BB9D /* Resources */,
749+
F567CC36106E6B910059BB9D /* Sources */,
750+
F567CC37106E6B910059BB9D /* Frameworks */,
751+
);
752+
buildRules = (
753+
);
754+
dependencies = (
755+
);
756+
name = GitXTesting;
757+
productName = GitXTesting;
758+
productReference = F567CC39106E6B910059BB9D /* GitXTesting.framework */;
759+
productType = "com.apple.product-type.framework";
760+
};
699761
F5886A0F0ED5D33D0066E74C /* SpeedTest */ = {
700762
isa = PBXNativeTarget;
701763
buildConfigurationList = F5886A150ED5D33E0066E74C /* Build configuration list for PBXNativeTarget "SpeedTest" */;
@@ -729,6 +791,7 @@
729791
913D5E480E55644600CECEA2 /* cli tool */,
730792
F5886A0F0ED5D33D0066E74C /* SpeedTest */,
731793
F56439F70F792B2100A579C2 /* Generate PList Prefix */,
794+
F567CC38106E6B910059BB9D /* GitXTesting */,
732795
);
733796
};
734797
/* End PBXProject section */
@@ -763,6 +826,13 @@
763826
);
764827
runOnlyForDeploymentPostprocessing = 0;
765828
};
829+
F567CC35106E6B910059BB9D /* Resources */ = {
830+
isa = PBXResourcesBuildPhase;
831+
buildActionMask = 2147483647;
832+
files = (
833+
);
834+
runOnlyForDeploymentPostprocessing = 0;
835+
};
766836
F5886A0C0ED5D33D0066E74C /* Resources */ = {
767837
isa = PBXResourcesBuildPhase;
768838
buildActionMask = 2147483647;
@@ -885,6 +955,22 @@
885955
);
886956
runOnlyForDeploymentPostprocessing = 0;
887957
};
958+
F567CC36106E6B910059BB9D /* Sources */ = {
959+
isa = PBXSourcesBuildPhase;
960+
buildActionMask = 2147483647;
961+
files = (
962+
F567CC64106E6BC80059BB9D /* PBGitRepository.m in Sources */,
963+
F567CC65106E6BC90059BB9D /* PBGitBinary.m in Sources */,
964+
F5D376B9107511C500AAAC80 /* PBGitIndex.m in Sources */,
965+
F567CC66106E6BC90059BB9D /* PBGitConfig.m in Sources */,
966+
F5D376E0107516A700AAAC80 /* PBChangedFile.m in Sources */,
967+
F5D376CF1075139B00AAAC80 /* PBGitRef.m in Sources */,
968+
F5D376D01075139B00AAAC80 /* PBGitRevSpecifier.m in Sources */,
969+
F5D376C91075134D00AAAC80 /* PBGitRevList.mm in Sources */,
970+
F567CC8E106E6FC40059BB9D /* PBEasyPipe.m in Sources */,
971+
);
972+
runOnlyForDeploymentPostprocessing = 0;
973+
};
888974
F5886A0D0ED5D33D0066E74C /* Sources */ = {
889975
isa = PBXSourcesBuildPhase;
890976
buildActionMask = 2147483647;
@@ -1111,6 +1197,72 @@
11111197
};
11121198
name = Release;
11131199
};
1200+
F567CC3B106E6B920059BB9D /* Debug */ = {
1201+
isa = XCBuildConfiguration;
1202+
buildSettings = {
1203+
ALWAYS_SEARCH_USER_PATHS = NO;
1204+
COPY_PHASE_STRIP = NO;
1205+
DYLIB_COMPATIBILITY_VERSION = 1;
1206+
DYLIB_CURRENT_VERSION = 1;
1207+
FRAMEWORK_VERSION = A;
1208+
GCC_DYNAMIC_NO_PIC = NO;
1209+
GCC_ENABLE_FIX_AND_CONTINUE = YES;
1210+
GCC_MODEL_TUNING = G5;
1211+
GCC_OPTIMIZATION_LEVEL = 0;
1212+
GCC_PRECOMPILE_PREFIX_HEADER = YES;
1213+
GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h";
1214+
HEADER_SEARCH_PATHS = libgit2/src;
1215+
INFOPLIST_FILE = "GitXTesting-Info.plist";
1216+
INSTALL_PATH = "$(HOME)/Library/Frameworks";
1217+
LIBRARY_SEARCH_PATHS = (
1218+
"$(inherited)",
1219+
"\"$(SRCROOT)/libgit2\"",
1220+
);
1221+
OTHER_CFLAGS = "-DCLI";
1222+
OTHER_LDFLAGS = (
1223+
"-undefined",
1224+
dynamic_lookup,
1225+
"-framework",
1226+
Foundation,
1227+
"-framework",
1228+
AppKit,
1229+
);
1230+
PREBINDING = NO;
1231+
PRODUCT_NAME = GitXTesting;
1232+
};
1233+
name = Debug;
1234+
};
1235+
F567CC3C106E6B920059BB9D /* Release */ = {
1236+
isa = XCBuildConfiguration;
1237+
buildSettings = {
1238+
ALWAYS_SEARCH_USER_PATHS = NO;
1239+
COPY_PHASE_STRIP = YES;
1240+
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
1241+
DYLIB_COMPATIBILITY_VERSION = 1;
1242+
DYLIB_CURRENT_VERSION = 1;
1243+
FRAMEWORK_VERSION = A;
1244+
GCC_ENABLE_FIX_AND_CONTINUE = NO;
1245+
GCC_MODEL_TUNING = G5;
1246+
GCC_PRECOMPILE_PREFIX_HEADER = YES;
1247+
GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h";
1248+
INFOPLIST_FILE = "GitXTesting-Info.plist";
1249+
INSTALL_PATH = "$(HOME)/Library/Frameworks";
1250+
LIBRARY_SEARCH_PATHS = (
1251+
"$(inherited)",
1252+
"\"$(SRCROOT)/libgit2\"",
1253+
);
1254+
OTHER_LDFLAGS = (
1255+
"-framework",
1256+
Foundation,
1257+
"-framework",
1258+
AppKit,
1259+
);
1260+
PREBINDING = NO;
1261+
PRODUCT_NAME = GitXTesting;
1262+
ZERO_LINK = NO;
1263+
};
1264+
name = Release;
1265+
};
11141266
F5886A130ED5D33E0066E74C /* Debug */ = {
11151267
isa = XCBuildConfiguration;
11161268
buildSettings = {
@@ -1205,6 +1357,15 @@
12051357
defaultConfigurationIsVisible = 0;
12061358
defaultConfigurationName = Release;
12071359
};
1360+
F567CC3D106E6B920059BB9D /* Build configuration list for PBXNativeTarget "GitXTesting" */ = {
1361+
isa = XCConfigurationList;
1362+
buildConfigurations = (
1363+
F567CC3B106E6B920059BB9D /* Debug */,
1364+
F567CC3C106E6B920059BB9D /* Release */,
1365+
);
1366+
defaultConfigurationIsVisible = 0;
1367+
defaultConfigurationName = Release;
1368+
};
12081369
F5886A150ED5D33E0066E74C /* Build configuration list for PBXNativeTarget "SpeedTest" */ = {
12091370
isa = XCConfigurationList;
12101371
buildConfigurations = (

GitXTesting-Info.plist

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3+
<plist version="1.0">
4+
<dict>
5+
<key>CFBundleDevelopmentRegion</key>
6+
<string>English</string>
7+
<key>CFBundleExecutable</key>
8+
<string>${EXECUTABLE_NAME}</string>
9+
<key>CFBundleIdentifier</key>
10+
<string>com.yourcompany.${PRODUCT_NAME:identifier}</string>
11+
<key>CFBundleInfoDictionaryVersion</key>
12+
<string>6.0</string>
13+
<key>CFBundlePackageType</key>
14+
<string>FMWK</string>
15+
<key>CFBundleSignature</key>
16+
<string>????</string>
17+
<key>CFBundleVersion</key>
18+
<string>1.0</string>
19+
</dict>
20+
</plist>

PBGitIndex.m

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -417,28 +417,28 @@ - (void)indexRefreshFinished:(NSNotification *)notification
417417
NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
418418

419419
// Other files (not tracked, not ignored)
420+
refreshStatus++;
420421
NSFileHandle *handle = [PBEasyPipe handleForCommand:[PBGitBinary path]
421422
withArgs:[NSArray arrayWithObjects:@"ls-files", @"--others", @"--exclude-standard", @"-z", nil]
422423
inDir:[workingDirectory path]];
423424
[nc addObserver:self selector:@selector(readOtherFiles:) name:NSFileHandleReadToEndOfFileCompletionNotification object:handle];
424425
[handle readToEndOfFileInBackgroundAndNotify];
425-
refreshStatus++;
426426

427427
// Unstaged files
428+
refreshStatus++;
428429
handle = [PBEasyPipe handleForCommand:[PBGitBinary path]
429430
withArgs:[NSArray arrayWithObjects:@"diff-files", @"-z", nil]
430431
inDir:[workingDirectory path]];
431432
[nc addObserver:self selector:@selector(readUnstagedFiles:) name:NSFileHandleReadToEndOfFileCompletionNotification object:handle];
432433
[handle readToEndOfFileInBackgroundAndNotify];
433-
refreshStatus++;
434434

435435
// Staged files
436+
refreshStatus++;
436437
handle = [PBEasyPipe handleForCommand:[PBGitBinary path]
437438
withArgs:[NSArray arrayWithObjects:@"diff-index", @"--cached", @"-z", [self parentTree], nil]
438439
inDir:[workingDirectory path]];
439440
[nc addObserver:self selector:@selector(readStagedFiles:) name:NSFileHandleReadToEndOfFileCompletionNotification object:handle];
440441
[handle readToEndOfFileInBackgroundAndNotify];
441-
refreshStatus++;
442442
}
443443

444444
- (void)readOtherFiles:(NSNotification *)notification
@@ -491,6 +491,8 @@ - (void) addFilesFromDictionary:(NSMutableDictionary *)dictionary staged:(BOOL)s
491491
file.hasStagedChanges = YES;
492492
else
493493
file.hasUnstagedChanges = YES;
494+
if ([[fileStatus objectAtIndex:4] isEqualToString:@"D"])
495+
file.status = DELETED;
494496
} else {
495497
// Untracked file, set status to NEW, only unstaged changes
496498
file.hasStagedChanges = NO;

test/framework.rb

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
#!/usr/bin/env arch -i386 macruby
2+
3+
require 'fileutils'
4+
5+
TEST_DIR = File.dirname(__FILE__)
6+
FRAMEWORK_DIR = File.join(TEST_DIR, "..", "build", "Debug", "GitXTesting.framework")
7+
8+
framework FRAMEWORK_DIR
9+
framework 'Cocoa'
10+
11+
TEST_TMP_DIR = File.join(TEST_DIR, "tmp")
12+
FileUtils.mkdir_p(TEST_TMP_DIR)

0 commit comments

Comments
 (0)