Skip to content

Commit b4ae265

Browse files
committed
Merge pull request #429 from libgit2/bump-libgit2
Bump libgit2 to hf/master_patch
2 parents 5b7e15c + fd484fe commit b4ae265

File tree

8 files changed

+46
-53
lines changed

8 files changed

+46
-53
lines changed

External/libgit2

Submodule libgit2 updated 189 files

ObjectiveGit/GTRepository+RemoteOperations.m

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -278,12 +278,6 @@ - (BOOL)pushRefspecs:(NSArray *)refspecs toRemote:(GTRemote *)remote withOptions
278278
return NO;
279279
}
280280

281-
int unpackSuccessful = git_push_unpack_ok(push);
282-
if (unpackSuccessful == 0) {
283-
if (error != NULL) *error = [NSError errorWithDomain:GTGitErrorDomain code:GIT_ERROR userInfo:@{ NSLocalizedDescriptionKey: @"Unpacking failed" }];
284-
return NO;
285-
}
286-
287281
gitError = git_push_update_tips(push, self.userSignatureForNow.git_signature, NULL);
288282
if (gitError != GIT_OK) {
289283
if (error != NULL) *error = [NSError git_errorFor:gitError description:@"Update tips failed"];

ObjectiveGit/GTTreeBuilder.h

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -54,11 +54,12 @@ typedef NS_ENUM(NSInteger, GTFileMode) {
5454

5555
/// Initializes the receiver, optionally from an existing tree.
5656
///
57-
/// treeOrNil - Source tree (or nil)
58-
/// error - The error if one occurred.
57+
/// treeOrNil - Source tree (or nil)
58+
/// repository - The repository in which to build the tree. Must not be nil.
59+
/// error - The error if one occurred.
5960
///
6061
/// Returns the initialized object, or nil if an error occurred.
61-
- (id)initWithTree:(GTTree *)treeOrNil error:(NSError **)error;
62+
- (id)initWithTree:(GTTree *)treeOrNil repository:(GTRepository *)repository error:(NSError **)error;
6263

6364
/// The underlying `git_treebuilder` object.
6465
- (git_treebuilder *)git_treebuilder __attribute__((objc_returns_inner_pointer));
@@ -118,10 +119,9 @@ typedef NS_ENUM(NSInteger, GTFileMode) {
118119

119120
/// Write the contents of the tree builder as a tree object.
120121
///
121-
/// repository - Repository in which to write the tree.
122-
/// error - The error if one occurred.
122+
/// error - The error if one occurred.
123123
///
124124
/// Returns the written tree, or nil if an error occurred.
125-
- (GTTree *)writeTreeToRepository:(GTRepository *)repository error:(NSError **)error;
125+
- (GTTree *)writeTree:(NSError **)error;
126126

127127
@end

ObjectiveGit/GTTreeBuilder.m

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
@interface GTTreeBuilder ()
4242

4343
@property (nonatomic, assign, readonly) git_treebuilder *git_treebuilder;
44+
@property (nonatomic, strong, readonly) GTRepository *repository;
4445

4546
// Data to be written with the tree, keyed by the file name. This should only be
4647
// accessed while synchronized on self.
@@ -61,16 +62,19 @@ - (NSUInteger)entryCount {
6162

6263
#pragma mark Lifecycle
6364

64-
- (id)initWithTree:(GTTree *)treeOrNil error:(NSError **)error {
65+
- (id)initWithTree:(GTTree *)treeOrNil repository:(GTRepository *)repository error:(NSError **)error {
66+
NSParameterAssert(repository != nil);
67+
6568
self = [super init];
6669
if (self == nil) return nil;
6770

68-
int status = git_treebuilder_create(&_git_treebuilder, treeOrNil.git_tree);
71+
int status = git_treebuilder_create(&_git_treebuilder, repository.git_repository, treeOrNil.git_tree);
6972
if (status != GIT_OK) {
7073
if (error != NULL) *error = [NSError git_errorFor:status description:@"Failed to create tree builder with tree %@.", treeOrNil.SHA];
7174
return nil;
7275
}
7376

77+
_repository = repository;
7478
_fileNameToPendingData = [NSMutableDictionary dictionary];
7579

7680
return self;
@@ -86,7 +90,7 @@ - (void)dealloc {
8690
#pragma mark Modification
8791

8892
- (void)clear {
89-
git_treebuilder_clear(self.git_treebuilder);
93+
git_treebuilder_clear(self.git_treebuilder);
9094
}
9195

9296
static int filter_callback(const git_tree_entry *entry, void *payload) {
@@ -105,7 +109,7 @@ - (GTTreeEntry *)entryWithFileName:(NSString *)fileName {
105109

106110
const git_tree_entry *entry = git_treebuilder_get(self.git_treebuilder, fileName.UTF8String);
107111
if (entry == NULL) return nil;
108-
112+
109113
return [GTTreeEntry entryWithEntry:entry parentTree:nil];
110114
}
111115

@@ -129,12 +133,12 @@ - (GTTreeEntry *)addEntryWithOID:(GTOID *)oid fileName:(NSString *)fileName file
129133

130134
const git_tree_entry *entry = NULL;
131135
int status = git_treebuilder_insert(&entry, self.git_treebuilder, fileName.UTF8String, oid.git_oid, (git_filemode_t)fileMode);
132-
136+
133137
if (status != GIT_OK) {
134138
if (error != NULL) *error = [NSError git_errorFor:status description:@"Failed to add entry %@ to tree builder.", oid.SHA];
135139
return nil;
136140
}
137-
141+
138142
return [GTTreeEntry entryWithEntry:entry parentTree:nil];
139143
}
140144

@@ -147,19 +151,19 @@ - (BOOL)removeEntryWithFileName:(NSString *)fileName error:(NSError **)error {
147151
@synchronized (self) {
148152
[self.fileNameToPendingData removeObjectForKey:fileName];
149153
}
150-
154+
151155
return status == GIT_OK;
152156
}
153157

154-
- (BOOL)writePendingDataToRepository:(GTRepository *)repository error:(NSError **)error {
158+
- (BOOL)writePendingData:(NSError **)error {
155159
NSDictionary *copied;
156160
@synchronized (self) {
157161
copied = [self.fileNameToPendingData copy];
158162
[self.fileNameToPendingData removeAllObjects];
159163
}
160164

161165
if (copied.count != 0) {
162-
GTObjectDatabase *odb = [repository objectDatabaseWithError:error];
166+
GTObjectDatabase *odb = [self.repository objectDatabaseWithError:error];
163167
if (odb == nil) return NO;
164168

165169
for (NSString *fileName in copied) {
@@ -172,25 +176,25 @@ - (BOOL)writePendingDataToRepository:(GTRepository *)repository error:(NSError *
172176
return YES;
173177
}
174178

175-
- (GTTree *)writeTreeToRepository:(GTRepository *)repository error:(NSError **)error {
176-
BOOL success = [self writePendingDataToRepository:repository error:error];
179+
- (GTTree *)writeTree:(NSError **)error {
180+
BOOL success = [self writePendingData:error];
177181
if (!success) return nil;
178182

179183
git_oid treeOid;
180-
int status = git_treebuilder_write(&treeOid, repository.git_repository, self.git_treebuilder);
184+
int status = git_treebuilder_write(&treeOid, self.git_treebuilder);
181185
if (status != GIT_OK) {
182186
if (error != NULL) *error = [NSError git_errorFor:status description:@"Failed to write tree in repository."];
183187
return nil;
184188
}
185-
189+
186190
git_object *object = NULL;
187-
status = git_object_lookup(&object, repository.git_repository, &treeOid, GIT_OBJ_TREE);
191+
status = git_object_lookup(&object, self.repository.git_repository, &treeOid, GIT_OBJ_TREE);
188192
if (status != GIT_OK) {
189193
if (error != NULL) *error = [NSError git_errorFor:status description:@"Failed to lookup tree in repository."];
190194
return nil;
191195
}
192-
193-
return [GTObject objectWithObj:object inRepository:repository];
196+
197+
return [GTObject objectWithObj:object inRepository:self.repository];
194198
}
195199

196200
@end

ObjectiveGitTests/GTRemotePushSpec.m

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,10 @@
1414

1515
// Helper to quickly create commits
1616
GTCommit *(^createCommitInRepository)(NSString *, NSData *, NSString *, GTRepository *) = ^ GTCommit * (NSString *message, NSData *fileData, NSString *fileName, GTRepository *repo) {
17-
GTTreeBuilder *treeBuilder = [[GTTreeBuilder alloc] initWithTree:nil error:nil];
17+
GTTreeBuilder *treeBuilder = [[GTTreeBuilder alloc] initWithTree:nil repository:repo error:nil];
1818
[treeBuilder addEntryWithData:fileData fileName:fileName fileMode:GTFileModeBlob error:nil];
1919

20-
GTTree *testTree = [treeBuilder writeTreeToRepository:repo error:nil];
20+
GTTree *testTree = [treeBuilder writeTree:nil];
2121

2222
// We need the parent commit to make the new one
2323
GTReference *headReference = [repo headReferenceWithError:nil];

ObjectiveGitTests/GTRemoteSpec.m

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -135,10 +135,10 @@
135135

136136
// Helper to quickly create commits
137137
GTCommit *(^createCommitInRepository)(NSString *, NSData *, NSString *, GTRepository *) = ^(NSString *message, NSData *fileData, NSString *fileName, GTRepository *repo) {
138-
GTTreeBuilder *treeBuilder = [[GTTreeBuilder alloc] initWithTree:nil error:nil];
138+
GTTreeBuilder *treeBuilder = [[GTTreeBuilder alloc] initWithTree:nil repository:repo error:nil];
139139
[treeBuilder addEntryWithData:fileData fileName:fileName fileMode:GTFileModeBlob error:nil];
140140

141-
GTTree *testTree = [treeBuilder writeTreeToRepository:repo error:nil];
141+
GTTree *testTree = [treeBuilder writeTree:nil];
142142

143143
// We need the parent commit to make the new one
144144
GTReference *headReference = [repo headReferenceWithError:nil];

ObjectiveGitTests/GTRepositoryCommittingSpec.m

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,13 @@
2727
});
2828

2929
it(@"can create commits", ^{
30-
GTTreeBuilder *builder = [[GTTreeBuilder alloc] initWithTree:nil error:NULL];
30+
GTTreeBuilder *builder = [[GTTreeBuilder alloc] initWithTree:nil repository:repository error:NULL];
3131
expect(builder).notTo(beNil());
3232

3333
GTTreeEntry *entry = [builder addEntryWithData:[@"Another file contents" dataUsingEncoding:NSUTF8StringEncoding] fileName:@"Test file 2.txt" fileMode:GTFileModeBlob error:NULL];
3434
expect(entry).notTo(beNil());
3535

36-
GTTree *subtree = [builder writeTreeToRepository:repository error:NULL];
36+
GTTree *subtree = [builder writeTree:NULL];
3737
expect(subtree).notTo(beNil());
3838

3939
[builder clear];
@@ -44,7 +44,7 @@
4444
entry = [builder addEntryWithOID:subtree.OID fileName:@"subdir" fileMode:GTFileModeTree error:NULL];
4545
expect(entry).notTo(beNil());
4646

47-
GTTree *tree = [builder writeTreeToRepository:repository error:NULL];
47+
GTTree *tree = [builder writeTree:NULL];
4848
expect(tree).notTo(beNil());
4949

5050
GTCommit *initialCommit = [repository createCommitWithTree:tree message:@"Initial commit" parents:nil updatingReferenceNamed:@"refs/heads/master" error:NULL];

ObjectiveGitTests/GTTreeBuilderSpec.m

Lines changed: 12 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -16,23 +16,27 @@
1616

1717
QuickSpecBegin(GTTreeBuilderSpec)
1818

19+
__block GTRepository *repo;
20+
21+
beforeEach(^{
22+
repo = self.bareFixtureRepository;
23+
expect(repo).notTo(beNil());
24+
});
25+
1926
it(@"should be possible to make a new tree builder without a tree", ^{
2027
NSError *error = nil;
21-
GTTreeBuilder *builder = [[GTTreeBuilder alloc] initWithTree:nil error:&error];
28+
GTTreeBuilder *builder = [[GTTreeBuilder alloc] initWithTree:nil repository:repo error:&error];
2229
expect(error).to(beNil());
2330
expect(builder).notTo(beNil());
2431
});
2532

2633
it(@"should be possible to make a new tree builder from an existing tree", ^{
2734
NSError *error = nil;
2835

29-
GTRepository *repo = self.bareFixtureRepository;
30-
expect(repo).notTo(beNil());
31-
3236
GTTree *tree = (GTTree *)[repo lookUpObjectBySHA:testTreeSHA error:NULL];
3337
expect(tree).notTo(beNil());
3438

35-
GTTreeBuilder *builder = [[GTTreeBuilder alloc] initWithTree:tree error:&error];
39+
GTTreeBuilder *builder = [[GTTreeBuilder alloc] initWithTree:tree repository:repo error:&error];
3640
expect(error).to(beNil());
3741
expect(builder).notTo(beNil());
3842
});
@@ -43,7 +47,7 @@
4347
__block GTOID *OID;
4448

4549
beforeEach(^{
46-
builder = [[GTTreeBuilder alloc] initWithTree:nil error:&error];
50+
builder = [[GTTreeBuilder alloc] initWithTree:nil repository:repo error:&error];
4751
expect(builder).notTo(beNil());
4852
expect(error).to(beNil());
4953

@@ -74,9 +78,6 @@
7478
});
7579

7680
it(@"should be possible to filter a builder", ^{
77-
GTRepository *repo = self.bareFixtureRepository;
78-
expect(repo).notTo(beNil());
79-
8081
GTBlob *blob = [GTBlob blobWithString:@"Hi, how are you?" inRepository:repo error:&error];
8182
expect(blob).notTo(beNil());
8283
expect(error).to(beNil());
@@ -103,9 +104,6 @@
103104
});
104105

105106
it(@"should write new blobs when the tree is written", ^{
106-
GTRepository *repo = self.bareFixtureRepository;
107-
expect(repo).notTo(beNil());
108-
109107
GTTreeEntry *entry = [builder addEntryWithData:[@"Hello, World!" dataUsingEncoding:NSUTF8StringEncoding] fileName:@"test.txt" fileMode:GTFileModeBlob error:NULL];
110108
expect(entry).notTo(beNil());
111109

@@ -114,23 +112,20 @@
114112

115113
expect(@([database containsObjectWithOID:entry.OID])).to(beFalsy());
116114

117-
GTTree *tree = [builder writeTreeToRepository:repo error:NULL];
115+
GTTree *tree = [builder writeTree:NULL];
118116
expect(tree).notTo(beNil());
119117

120118
expect(@([database containsObjectWithOID:entry.OID])).to(beTruthy());
121119
});
122120

123121
it(@"should be possible to write a builder to a repository", ^{
124-
GTRepository *repo = self.bareFixtureRepository;
125-
expect(repo).notTo(beNil());
126-
127122
GTBlob *blob = [GTBlob blobWithString:@"Hi, how are you?" inRepository:repo error:&error];
128123
expect(blob).notTo(beNil());
129124
expect(error).to(beNil());
130125

131126
[builder addEntryWithOID:blob.OID fileName:@"hi.txt" fileMode:GTFileModeBlob error:&error];
132127

133-
GTTree *writtenTree = [builder writeTreeToRepository:repo error:&error];
128+
GTTree *writtenTree = [builder writeTree:&error];
134129
expect(writtenTree).notTo(beNil());
135130
expect(error).to(beNil());
136131

0 commit comments

Comments
 (0)