mirror of
https://github.com/kennethreitz-archive/gitx.git
synced 2026-06-05 15:30:18 +00:00
fix parent handling
This commit is contained in:
+13
-10
@@ -95,26 +95,29 @@ const NSString *kAuthorKeyDate = @"date";
|
||||
// In case the commit is a merge, we need to explicity give diff-tree the
|
||||
// list of parents, or else it will yield an empty result.
|
||||
// If it's not a merge, this won't hurt.
|
||||
NSMutableArray *parentsArray = [NSMutableArray array];
|
||||
NSMutableArray *allParents = [NSMutableArray array];
|
||||
|
||||
for (NSDictionary *item in headerItems) {
|
||||
if ([[item objectForKey:kHeaderKeyName] isEqualToString:@"parent"]) {
|
||||
[parentsArray addObject:[item objectForKey:kHeaderKeyContent]];
|
||||
break;
|
||||
}
|
||||
}
|
||||
for (NSDictionary *item in headerItems)
|
||||
if ([[item objectForKey:kHeaderKeyName] isEqualToString:@"parent"])
|
||||
[allParents addObject:[item objectForKey:kHeaderKeyContent]];
|
||||
|
||||
NSString *parents = [[self chooseDiffParents:parentsArray] componentsJoinedByString:@" "];
|
||||
NSArray *parents = [self chooseDiffParents:allParents];
|
||||
|
||||
// File Stats
|
||||
NSMutableDictionary *stats = [self parseStats:details];
|
||||
|
||||
// File list
|
||||
NSString *dt = [repository outputInWorkdirForArguments:[NSArray arrayWithObjects:@"diff-tree", @"--root", @"-r", @"-C90%", @"-M90%", currentSha, parents, nil]];
|
||||
NSMutableArray *args = [NSMutableArray arrayWithObjects:@"diff-tree", @"--root", @"-r", @"-C90%", @"-M90%", nil];
|
||||
[args addObjectsFromArray:parents];
|
||||
[args addObject:currentSha];
|
||||
NSString *dt = [repository outputInWorkdirForArguments:args];
|
||||
NSString *fileList = [GLFileView parseDiffTree:dt withStats:stats];
|
||||
|
||||
// Diffs list
|
||||
NSString *d = [repository outputInWorkdirForArguments:[NSArray arrayWithObjects:@"diff-tree", @"--root", @"--cc", @"-C90%", @"-M90%", parents, currentSha, nil]];
|
||||
args = [NSMutableArray arrayWithObjects:@"diff-tree", @"--root", @"--cc", @"-C90%", @"-M90%", nil];
|
||||
[args addObjectsFromArray:parents];
|
||||
[args addObject:currentSha];
|
||||
NSString *d = [repository outputInWorkdirForArguments:args];
|
||||
NSString *diffs = [GLFileView parseDiff:d];
|
||||
|
||||
NSString *html = [NSString stringWithFormat:@"%@%@<div id='diffs'>%@</div>",header,fileList,diffs];
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
|
||||
- (NSArray*) chooseDiffParents:(NSArray *)parents
|
||||
{
|
||||
return [NSArray arrayWithObject:[parents objectAtIndex:0]];
|
||||
return [NSArray arrayWithObject:[parents lastObject]];
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
Reference in New Issue
Block a user