Skip to content

Commit

Permalink
GitIndex: Add support for applying patches
Browse files Browse the repository at this point in the history
  • Loading branch information
pieter committed Sep 13, 2009
1 parent 87dfb47 commit 57dc38f
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 1 deletion.
2 changes: 1 addition & 1 deletion PBGitIndex.h
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@
- (BOOL)unstageFiles:(NSArray *)unstageFiles;

// Intra-file changes
//- (void)applyPatch:(NSString *)hunk stage:(BOOL)stage reverse:(BOOL)reverse;
- (BOOL)applyPatch:(NSString *)hunk stage:(BOOL)stage reverse:(BOOL)reverse;
- (NSString *)diffForFile:(PBChangedFile *)file staged:(BOOL)staged contextLines:(NSUInteger)context;

@end
25 changes: 25 additions & 0 deletions PBGitIndex.m
Original file line number Diff line number Diff line change
Expand Up @@ -246,6 +246,31 @@ - (BOOL)unstageFiles:(NSArray *)unstageFiles
return YES;
}

- (BOOL)applyPatch:(NSString *)hunk stage:(BOOL)stage reverse:(BOOL)reverse;
{
NSMutableArray *array = [NSMutableArray arrayWithObjects:@"apply", nil];
if (stage)
[array addObject:@"--cached"];
if (reverse)
[array addObject:@"--reverse"];

int ret = 1;
NSString *error = [repository outputForArguments:array
inputString:hunk
retValue:&ret];

// FIXME: show this error, rather than just logging it
if (ret) {
NSLog(@"Error: %@", error);
return NO;
}

// TODO: Try to be smarter about what to refresh
[self refresh];
return YES;
}


- (NSString *)diffForFile:(PBChangedFile *)file staged:(BOOL)staged contextLines:(NSUInteger)context
{
NSString *parameter = [NSString stringWithFormat:@"-U%u", context];
Expand Down

0 comments on commit 57dc38f

Please sign in to comment.