From 2f0131af0d39155ade553c623a44cbb4bf4c1ccd Mon Sep 17 00:00:00 2001 From: Pieter de Bie Date: Fri, 26 Sep 2008 01:59:22 +0200 Subject: [PATCH] RevList: Rewrite parents with path limiting This appends the --children option to `git log`, so that parents are correctly rewritten. --- PBGitRevList.m | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/PBGitRevList.m b/PBGitRevList.m index 0408090..c3a9be4 100644 --- a/PBGitRevList.m +++ b/PBGitRevList.m @@ -87,11 +87,13 @@ struct decorateParameters { else [arguments addObjectsFromArray:[rev parameters]]; + if ([rev hasPathLimiter]) + [arguments insertObject:@"--children" atIndex:1]; + NSFileHandle* handle = [repository handleForArguments: arguments]; // We decorate the commits in a separate thread. - NSArray *decorationArguments = [NSArray arrayWithObjects:newArray, rev, nil]; - NSThread * decorationThread = [[NSThread alloc] initWithTarget: self selector: @selector(decorateRevisions:) object:decorationArguments]; + NSThread * decorationThread = [[NSThread alloc] initWithTarget: self selector: @selector(decorateRevisions:) object:newArray]; [decorationThread start]; int fd = [handle fileDescriptor]; @@ -142,13 +144,10 @@ struct decorateParameters { [NSThread exit]; } -- (void) decorateRevisions:(NSArray *)params +- (void) decorateRevisions:(NSMutableArray *)revisions { - NSMutableArray* revisions = [params objectAtIndex:0]; - PBGitRevSpecifier* rev = [params objectAtIndex:1]; NSDictionary* refs = [repository refs]; - BOOL decorateCommits = ![rev hasPathLimiter]; NSDate* start = [NSDate date]; NSMutableArray* allRevisions = [NSMutableArray arrayWithCapacity:1000]; @@ -167,8 +166,7 @@ struct decorateParameters { } for (PBGitCommit* commit in currentRevisions) { num++; - if (decorateCommits) - [g decorateCommit: commit]; + [g decorateCommit: commit]; if (refs && [refs objectForKey:commit.sha]) commit.refs = [refs objectForKey:commit.sha];