RefController: Allow checking out branches

This commit is contained in:
Pieter de Bie
2008-11-01 23:24:41 +01:00
parent 058fbcff58
commit 00e44b35d0
4 changed files with 25 additions and 5 deletions
+1
View File
@@ -34,6 +34,7 @@ extern NSString* PBGitRepositoryErrorDomain;
- (NSString*) outputForArguments:(NSArray*) args;
- (NSString*) outputForArguments:(NSArray*) args retValue:(int *)ret;
- (NSString *)outputInWorkdirForArguments:(NSArray*) arguments;
- (NSString *)outputInWorkdirForArguments:(NSArray*) arguments retValue:(int *)ret;
- (NSString *)workingDirectory;
+5 -1
View File
@@ -353,8 +353,12 @@ NSString* PBGitRepositoryErrorDomain = @"GitXErrorDomain";
return [PBEasyPipe outputForCommand:[PBGitBinary path] withArgs:arguments inDir: [self workingDirectory]];
}
- (NSString*) outputInWorkdirForArguments:(NSArray *)arguments retValue:(int *)ret
{
return [PBEasyPipe outputForCommand:[PBGitBinary path] withArgs:arguments inDir:[self workingDirectory] retValue: ret];
}
- (NSString*) outputForArguments:(NSArray *)arguments retValue:(int *)ret;
- (NSString*) outputForArguments:(NSArray *)arguments retValue:(int *)ret
{
return [PBEasyPipe outputForCommand:[PBGitBinary path] withArgs:arguments inDir: self.fileURL.path retValue: ret];
}
+15
View File
@@ -30,6 +30,21 @@
[commitController rearrangeObjects];
}
- (void) checkoutRef:(PBRefMenuItem *)sender
{
int ret = 1;
[historyController.repository outputInWorkdirForArguments:[NSArray arrayWithObjects:@"checkout", [[sender ref] shortName], nil] retValue: &ret];
if (ret) {
[[NSAlert alertWithMessageText:@"Checking out branch failed"
defaultButton:@"OK"
alternateButton:nil
otherButton:nil
informativeTextWithFormat:@"There was an error checking out the branch. Perhaps your working directory is not clean?"] runModal];
return;
}
[historyController.repository reloadRefs];
}
- (NSArray *) menuItemsForRef:(PBGitRef *)ref commit:(PBGitCommit *)commit
{
return [PBRefMenuItem defaultMenuItemsForRef:ref commit:commit target:self];
+4 -4
View File
@@ -24,10 +24,10 @@
[array addObject:[[PBRefMenuItem alloc] initWithTitle:[@"Delete " stringByAppendingString:type]
action:@selector(removeRef:)
keyEquivalent: @""]];
[array addObject:[[PBRefMenuItem alloc] initWithTitle:[@"Checkout " stringByAppendingString:type]
action:@selector(checkoutRef:)
keyEquivalent: @""]];
if ([type isEqualToString:@"branch"])
[array addObject:[[PBRefMenuItem alloc] initWithTitle:@"Checkout branch"
action:@selector(checkoutRef:)
keyEquivalent: @""]];
for (PBRefMenuItem *item in array)
{