Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

PBGitCommit: Don't store refs

We already keep this dictionary in our repository. Rather than adding a
pointer to it on every commit in our rev walk, just look it up lazily in the
dictionary when we need to. That cuts down some time in the initial revwalk
and also removes some stupid code :)
  • Loading branch information...
commit ddc9ae76547efe58cb2cf5ff8c54102e8acc2d96 1 parent 4f1fe8a
@pieter pieter authored
View
2  PBGitCommit.h
@@ -21,7 +21,7 @@
NSString* details;
NSString *_patch;
NSArray* parents;
- NSMutableArray* refs;
+
int timestamp;
char sign;
id lineInfo;
View
18 PBGitCommit.m
@@ -11,7 +11,7 @@
@implementation PBGitCommit
-@synthesize repository, subject, timestamp, author, parentShas, nParents, sign, lineInfo, refs;
+@synthesize repository, subject, timestamp, author, parentShas, nParents, sign, lineInfo;
- (NSArray *) parents
{
@@ -107,9 +107,19 @@ - (void)removeRef:(id)ref
if (!self.refs)
return;
- [refs removeObject:ref];
- if ([refs count] == 0)
- refs = NULL;
+ [self.refs removeObject:ref];
+ if ([self.refs count] == 0)
+ self.refs = NULL;
+}
+
+- (NSMutableArray *)refs
+{
+ return [[repository refs] objectForKey:[self realSha]];
+}
+
+- (void) setRefs:(NSMutableArray *)refs
+{
+ [[repository refs] setObject:[self realSha] forKey:[self realSha]];
}
- (void)finalize
View
2  PBGitGrapher.h
@@ -15,8 +15,6 @@
PBGraphCellInfo *previous;
void *pl;
int curLane;
-
- NSDictionary *refs;
}
- (id) initWithRepository:(PBGitRepository *)repo;
View
1  PBGitGrapher.mm
@@ -21,7 +21,6 @@ @implementation PBGitGrapher
- (id) initWithRepository: (PBGitRepository*) repo
{
- refs = repo.refs;
pl = new std::list<PBGitLane *>;
PBGitLane::resetColors();
View
2  PBGitRepository.h
@@ -62,5 +62,5 @@ extern NSString* PBGitRepositoryErrorDomain;
@property (retain) PBGitRevList* revisionList;
@property (assign) NSMutableArray* branches;
@property (assign) PBGitRevSpecifier *currentBranch;
-@property (assign) NSMutableDictionary* refs;
+@property (retain) NSMutableDictionary* refs;
@end
View
2  PBGitRepository.m
@@ -228,8 +228,6 @@ - (BOOL) reloadRefs
[self addRef:newRef fromParameters:components];
}
- self.refs = refs;
-
// Add an "All branches" option in the branches list
[self addBranch:[PBGitRevSpecifier allBranchesRevSpec]];
[self addBranch:[PBGitRevSpecifier localBranchesRevSpec]];
View
7 PBGitRevList.mm
@@ -71,7 +71,6 @@ - (void) walkRevisionListWithSpecifier: (PBGitRevSpecifier*) rev
NSDate *start = [NSDate date];
NSMutableArray* revisions = [NSMutableArray array];
PBGitGrapher* g = [[PBGitGrapher alloc] initWithRepository: repository];
- NSDictionary* refs = [repository refs];
NSMutableArray* arguments;
BOOL showSign = [rev hasLeftRight];
@@ -170,11 +169,7 @@ - (void) walkRevisionListWithSpecifier: (PBGitRevSpecifier*) rev
[revisions addObject: newCommit];
[g decorateCommit: newCommit];
-
- // 0.1 second on linux-2.6
- if (refs && [refs objectForKey:[newCommit realSha]])
- newCommit.refs = [refs objectForKey:[newCommit realSha]];
-
+
if (++num % 1000 == 0)
[self performSelectorOnMainThread:@selector(setCommits:) withObject:revisions waitUntilDone:NO];
}
View
2  html/views/history/history.js
@@ -2,7 +2,7 @@ var commit;
var Commit = function(obj) {
this.object = obj;
- this.refs = obj.refs;
+ this.refs = obj.refs();
this.author_name = obj.author;
this.sha = obj.realSha();
this.parents = obj.parents;
Please sign in to comment.
Something went wrong with that request. Please try again.