diff --git a/PBGitRepository.h b/PBGitRepository.h index c05a758..eb61f77 100644 --- a/PBGitRepository.h +++ b/PBGitRepository.h @@ -51,6 +51,7 @@ extern NSString* PBGitRepositoryErrorDomain; - (void) readCurrentBranch; - (PBGitRevSpecifier*) addBranch: (PBGitRevSpecifier*) rev; +- (BOOL)removeBranch:(PBGitRevSpecifier *)rev; - (NSString*) parseSymbolicReference:(NSString*) ref; - (NSString*) parseReference:(NSString*) ref; diff --git a/PBGitRepository.m b/PBGitRepository.m index b13dae6..59fe991 100644 --- a/PBGitRepository.m +++ b/PBGitRepository.m @@ -294,6 +294,19 @@ NSString* PBGitRepositoryErrorDomain = @"GitXErrorDomain"; [self didChangeValueForKey:@"branches"]; return rev; } + +- (BOOL)removeBranch:(PBGitRevSpecifier *)rev +{ + for (PBGitRevSpecifier *r in branches) { + if ([rev isEqualTo:r]) { + [self willChangeValueForKey:@"branches"]; + [branches removeObject:r]; + [self didChangeValueForKey:@"branches"]; + return TRUE; + } + } + return FALSE; +} - (void) readCurrentBranch { diff --git a/PBRefController.m b/PBRefController.m index 23abe60..202f356 100644 --- a/PBRefController.m +++ b/PBRefController.m @@ -49,7 +49,7 @@ NSLog(@"Removing ref failed!"); return; } - + [historyController.repository removeBranch:[[PBGitRevSpecifier alloc] initWithRef:[sender ref]]]; [[sender commit] removeRef:[sender ref]]; [commitController rearrangeObjects]; } @@ -208,7 +208,7 @@ [errorMessage setStringValue:@"Branch exists"]; return; } - + [historyController.repository addBranch:[[PBGitRevSpecifier alloc] initWithRef:[PBGitRef refFromString:branchName]]]; [self closeSheet:sender]; [commit addRef:[PBGitRef refFromString:branchName]]; [commitController rearrangeObjects];