mirror of
https://github.com/kennethreitz-archive/gitx.git
synced 2026-06-05 23:40:18 +00:00
406125eee2
Since 63523d00e8 (History view:
Make lozenge of currently checked out branch (HEAD) bold, same as gitk.),
-[PBGitRepository headRef] was called every time a cell needed redrawing.
This made GitX slow overall, but especially when resizing the window.
So, it's better to cache the value. We'll still reload it with an
explicit refresh though.
64 lines
1.9 KiB
Objective-C
64 lines
1.9 KiB
Objective-C
//
|
|
// PBGitRepository.h
|
|
// GitTest
|
|
//
|
|
// Created by Pieter de Bie on 13-06-08.
|
|
// Copyright 2008 __MyCompanyName__. All rights reserved.
|
|
//
|
|
|
|
#import <Cocoa/Cocoa.h>
|
|
#import "PBGitRevList.h"
|
|
#import "PBGitRevSpecifier.h"
|
|
|
|
extern NSString* PBGitRepositoryErrorDomain;
|
|
|
|
@interface PBGitRepository : NSDocument {
|
|
PBGitRevList* revisionList;
|
|
|
|
BOOL hasChanged;
|
|
NSMutableArray* branches;
|
|
NSIndexSet* currentBranch;
|
|
NSMutableDictionary* refs;
|
|
|
|
PBGitRevSpecifier *_headRef; // Caching
|
|
}
|
|
|
|
- (NSFileHandle*) handleForCommand:(NSString*) cmd;
|
|
- (NSFileHandle*) handleForArguments:(NSArray*) args;
|
|
- (NSFileHandle *) handleInWorkDirForArguments:(NSArray *)args;
|
|
- (NSString*) outputForCommand:(NSString*) cmd;
|
|
- (NSString *)outputForCommand:(NSString *)str retValue:(int *)ret;
|
|
- (NSString *)outputForArguments:(NSArray *)arguments inputString:(NSString *)input retValue:(int *)ret;
|
|
- (NSString*) outputForArguments:(NSArray*) args;
|
|
- (NSString*) outputForArguments:(NSArray*) args retValue:(int *)ret;
|
|
- (NSString *)outputInWorkdirForArguments:(NSArray*) arguments;
|
|
|
|
- (NSString *)workingDirectory;
|
|
|
|
- (BOOL) reloadRefs;
|
|
- (void) addRef:(PBGitRef *)ref fromParameters:(NSArray *)params;
|
|
- (BOOL) removeRef:(NSString *)ref;
|
|
- (void) lazyReload;
|
|
- (PBGitRevSpecifier*) headRef;
|
|
|
|
- (void) readCurrentBranch;
|
|
- (PBGitRevSpecifier*) addBranch: (PBGitRevSpecifier*) rev;
|
|
- (void) selectBranch: (PBGitRevSpecifier*) rev;
|
|
|
|
- (NSString*) parseSymbolicReference:(NSString*) ref;
|
|
- (NSString*) parseReference:(NSString*) ref;
|
|
|
|
+ (NSURL*)gitDirForURL:(NSURL*)repositoryURL;
|
|
+ (NSURL*)baseDirForURL:(NSURL*)repositoryURL;
|
|
|
|
- (id) initWithURL: (NSURL*) path;
|
|
- (void) setup;
|
|
|
|
@property (assign) BOOL hasChanged;
|
|
@property (readonly) NSWindowController *windowController;
|
|
@property (retain) PBGitRevList* revisionList;
|
|
@property (assign) NSMutableArray* branches;
|
|
@property (assign) NSIndexSet* currentBranch;
|
|
@property (assign) NSMutableDictionary* refs;
|
|
@end
|