51
51
@class GTTag;
52
52
@class GTTree;
53
53
@class GTRemote;
54
-
55
- // / Checkout strategies used by the various -checkout... methods
56
- // / See git_checkout_strategy_t
57
- typedef NS_OPTIONS (NSInteger , GTCheckoutStrategyType) {
58
- GTCheckoutStrategyNone = GIT_CHECKOUT_NONE,
59
- GTCheckoutStrategySafe = GIT_CHECKOUT_SAFE,
60
- GTCheckoutStrategyForce = GIT_CHECKOUT_FORCE,
61
- GTCheckoutStrategyAllowConflicts = GIT_CHECKOUT_ALLOW_CONFLICTS,
62
- GTCheckoutStrategyRemoveUntracked = GIT_CHECKOUT_REMOVE_UNTRACKED,
63
- GTCheckoutStrategyRemoveIgnored = GIT_CHECKOUT_REMOVE_IGNORED,
64
- GTCheckoutStrategyUpdateOnly = GIT_CHECKOUT_UPDATE_ONLY,
65
- GTCheckoutStrategyDontUpdateIndex = GIT_CHECKOUT_DONT_UPDATE_INDEX,
66
- GTCheckoutStrategyNoRefresh = GIT_CHECKOUT_NO_REFRESH,
67
- GTCheckoutStrategyDisablePathspecMatch = GIT_CHECKOUT_DISABLE_PATHSPEC_MATCH,
68
- GTCheckoutStrategySkipLockedDirectories = GIT_CHECKOUT_SKIP_LOCKED_DIRECTORIES,
69
- };
70
-
71
- // / Checkout notification flags used by the various -checkout... methods
72
- // / See git_checkout_notify_t
73
- typedef NS_OPTIONS (NSInteger , GTCheckoutNotifyFlags) {
74
- GTCheckoutNotifyNone = GIT_CHECKOUT_NOTIFY_NONE,
75
- GTCheckoutNotifyConflict = GIT_CHECKOUT_NOTIFY_CONFLICT,
76
- GTCheckoutNotifyDirty = GIT_CHECKOUT_NOTIFY_DIRTY,
77
- GTCheckoutNotifyUpdated = GIT_CHECKOUT_NOTIFY_UPDATED,
78
- GTCheckoutNotifyUntracked = GIT_CHECKOUT_NOTIFY_UNTRACKED,
79
- GTCheckoutNotifyIgnored = GIT_CHECKOUT_NOTIFY_IGNORED,
80
-
81
- GTCheckoutNotifyAll = GIT_CHECKOUT_NOTIFY_ALL,
82
- };
54
+ @class GTCheckoutOptions;
83
55
84
56
// / Transport flags sent as options to +cloneFromURL... method
85
57
typedef NS_OPTIONS (NSInteger , GTTransportFlags) {
@@ -98,6 +70,9 @@ extern NSString * const GTRepositoryCloneOptionsBare;
98
70
// / Default value is `YES`.
99
71
extern NSString * const GTRepositoryCloneOptionsCheckout;
100
72
73
+ // / A `GTCheckoutOptions` object describing how to perform the checkout.
74
+ extern NSString * const GTRepositoryCloneCheckoutOptions;
75
+
101
76
// / A `GTCredentialProvider`, that will be used to authenticate against the
102
77
// / remote.
103
78
extern NSString * const GTRepositoryCloneOptionsCredentialProvider;
@@ -199,7 +174,7 @@ extern NSString * const GTRepositoryInitOptionsOriginURLString;
199
174
// / options - A dictionary consisting of the options:
200
175
// / `GTRepositoryCloneOptionsTransportFlags`,
201
176
// / `GTRepositoryCloneOptionsBare`,
202
- // / `GTRepositoryCloneOptionsCheckout `,
177
+ // / `GTRepositoryCloneCheckoutOptions `,
203
178
// / `GTRepositoryCloneOptionsCredentialProvider`,
204
179
// / `GTRepositoryCloneOptionsCloneLocal`,
205
180
// / `GTRepositoryCloneOptionsServerCertificateURL`
@@ -209,6 +184,9 @@ extern NSString * const GTRepositoryInitOptionsOriginURLString;
209
184
// / (if `GTRepositoryCloneOptionsCheckout` is YES).
210
185
// /
211
186
// / returns nil (and fills the error parameter) if an error occurred, or a GTRepository object if successful.
187
+ + (id )cloneFromURL : (NSURL *)originURL toWorkingDirectory : (NSURL *)workdirURL options : (NSDictionary *)options error : (NSError **)error transferProgressBlock : (void (^)(const git_transfer_progress *, BOOL *stop))transferProgressBlock ;
188
+
189
+ // / Backward-compatible method that uses `GTRepositoryCloneOptionsCheckout`
212
190
+ (id )cloneFromURL : (NSURL *)originURL toWorkingDirectory : (NSURL *)workdirURL options : (NSDictionary *)options error : (NSError **)error transferProgressBlock : (void (^)(const git_transfer_progress *, BOOL *stop))transferProgressBlock checkoutProgressBlock : (void (^)(NSString *path, NSUInteger completedSteps, NSUInteger totalSteps))checkoutProgressBlock ;
213
191
214
192
// / Lookup objects in the repo by oid or sha1
@@ -454,7 +432,7 @@ extern NSString * const GTRepositoryInitOptionsOriginURLString;
454
432
// / progressBlock - The block to call back for progress updates. Can be nil.
455
433
// /
456
434
// / Returns YES if operation was successful, NO otherwise
457
- - (BOOL )checkoutCommit : (GTCommit *)targetCommit strategy : (GTCheckoutStrategyType) strategy notifyFlags : (GTCheckoutNotifyFlags) notifyFlags error : (NSError **)error progressBlock : ( void (^)( NSString *path, NSUInteger completedSteps, NSUInteger totalSteps)) progressBlock notifyBlock : ( int (^)(GTCheckoutNotifyFlags why, NSString *path, GTDiffFile *baseline, GTDiffFile *target, GTDiffFile *workdir)) notifyBlock ;
435
+ - (BOOL )checkoutCommit : (GTCommit *)targetCommit options : (GTCheckoutOptions *) options error : (NSError **)error ;
458
436
459
437
// / Checkout a reference
460
438
// /
@@ -467,13 +445,13 @@ extern NSString * const GTRepositoryInitOptionsOriginURLString;
467
445
// / progressBlock - The block to call back for progress updates. Can be nil.
468
446
// /
469
447
// / Returns YES if operation was successful, NO otherwise
470
- - (BOOL )checkoutReference : (GTReference *)targetReference strategy : (GTCheckoutStrategyType) strategy notifyFlags : (GTCheckoutNotifyFlags) notifyFlags error : (NSError **)error progressBlock : ( void (^)( NSString *path, NSUInteger completedSteps, NSUInteger totalSteps)) progressBlock notifyBlock : ( int (^)(GTCheckoutNotifyFlags why, NSString *path, GTDiffFile *baseline, GTDiffFile *target, GTDiffFile *workdir)) notifyBlock ;
448
+ - (BOOL )checkoutReference : (GTReference *)targetReference options : (GTCheckoutOptions *) options error : (NSError **)error ;
471
449
472
450
// / Convenience wrapper for checkoutCommit:strategy:notifyFlags:error:notifyBlock:progressBlock without notifications
473
- - (BOOL )checkoutCommit : (GTCommit *)target strategy : (GTCheckoutStrategyType) strategy error : (NSError **)error progressBlock : ( void (^)( NSString *path, NSUInteger completedSteps, NSUInteger totalSteps)) progressBlock ;
451
+ // - (BOOL)checkoutCommit:(GTCommit *)target options:(GTCheckoutOptions *)options error:(NSError **)error;
474
452
475
453
// / Convenience wrapper for checkoutReference:strategy:notifyFlags:error:notifyBlock:progressBlock without notifications
476
- - (BOOL )checkoutReference : (GTReference *)target strategy : (GTCheckoutStrategyType) strategy error : (NSError **)error progressBlock : ( void (^)( NSString *path, NSUInteger completedSteps, NSUInteger totalSteps)) progressBlock ;
454
+ // - (BOOL)checkoutReference:(GTReference *)target options:(GTCheckoutOptions *)options error:(NSError **)error;
477
455
478
456
// / Flush the gitattributes cache.
479
457
- (void )flushAttributesCache ;
0 commit comments