@@ -177,7 +177,7 @@ public ITask CommitAllFiles(string message, string body)
177
177
. AddAll ( )
178
178
. Then ( GitClient . Commit ( message , body ) ) ;
179
179
180
- return HookupHandlers ( task ) ;
180
+ return HookupHandlers ( task , true , true ) ;
181
181
}
182
182
183
183
public ITask CommitFiles ( List < string > files , string message , string body )
@@ -186,7 +186,7 @@ public ITask CommitFiles(List<string> files, string message, string body)
186
186
. Add ( files )
187
187
. Then ( GitClient . Commit ( message , body ) ) ;
188
188
189
- return HookupHandlers ( task ) ;
189
+ return HookupHandlers ( task , true , true ) ;
190
190
}
191
191
192
192
public ITask < List < GitLogEntry > > Log ( )
@@ -198,37 +198,37 @@ public ITask<List<GitLogEntry>> Log()
198
198
public ITask < GitStatus > Status ( )
199
199
{
200
200
var task = GitClient . Status ( ) ;
201
- return HookupHandlers ( task , false ) ;
201
+ return HookupHandlers ( task , true , false ) ;
202
202
}
203
203
204
204
public ITask Fetch ( string remote )
205
205
{
206
206
var task = GitClient . Fetch ( remote ) ;
207
- return HookupHandlers ( task , false ) ;
207
+ return HookupHandlers ( task , true , false ) ;
208
208
}
209
209
210
210
public ITask Pull ( string remote , string branch )
211
211
{
212
212
var task = GitClient . Pull ( remote , branch ) ;
213
- return HookupHandlers ( task ) ;
213
+ return HookupHandlers ( task , true , true ) ;
214
214
}
215
215
216
216
public ITask Push ( string remote , string branch )
217
217
{
218
218
var task = GitClient . Push ( remote , branch ) ;
219
- return HookupHandlers ( task , false ) ;
219
+ return HookupHandlers ( task , true , false ) ;
220
220
}
221
221
222
222
public ITask Revert ( string changeset )
223
223
{
224
224
var task = GitClient . Revert ( changeset ) ;
225
- return HookupHandlers ( task ) ;
225
+ return HookupHandlers ( task , true , true ) ;
226
226
}
227
227
228
228
public ITask RemoteAdd ( string remote , string url )
229
229
{
230
230
var task = GitClient . RemoteAdd ( remote , url ) ;
231
- task = HookupHandlers ( task , false ) ;
231
+ task = HookupHandlers ( task , true , false ) ;
232
232
if ( ! platform . Environment . IsWindows )
233
233
{
234
234
task . Then ( _ => {
@@ -241,7 +241,7 @@ public ITask RemoteAdd(string remote, string url)
241
241
public ITask RemoteRemove ( string remote )
242
242
{
243
243
var task = GitClient . RemoteRemove ( remote ) ;
244
- task = HookupHandlers ( task , false ) ;
244
+ task = HookupHandlers ( task , true , false ) ;
245
245
if ( ! platform . Environment . IsWindows )
246
246
{
247
247
task . Then ( _ => {
@@ -254,25 +254,25 @@ public ITask RemoteRemove(string remote)
254
254
public ITask RemoteChange ( string remote , string url )
255
255
{
256
256
var task = GitClient . RemoteChange ( remote , url ) ;
257
- return HookupHandlers ( task , false ) ;
257
+ return HookupHandlers ( task , true , false ) ;
258
258
}
259
259
260
260
public ITask SwitchBranch ( string branch )
261
261
{
262
262
var task = GitClient . SwitchBranch ( branch ) ;
263
- return HookupHandlers ( task ) ;
263
+ return HookupHandlers ( task , true , true ) ;
264
264
}
265
265
266
266
public ITask DeleteBranch ( string branch , bool deleteUnmerged = false )
267
267
{
268
268
var task = GitClient . DeleteBranch ( branch , deleteUnmerged ) ;
269
- return HookupHandlers ( task , false ) ;
269
+ return HookupHandlers ( task , true , false ) ;
270
270
}
271
271
272
272
public ITask CreateBranch ( string branch , string baseBranch )
273
273
{
274
274
var task = GitClient . CreateBranch ( branch , baseBranch ) ;
275
- return HookupHandlers ( task , false ) ;
275
+ return HookupHandlers ( task , true , false ) ;
276
276
}
277
277
278
278
public ITask < List < GitLock > > ListLocks ( bool local )
@@ -285,13 +285,13 @@ public ITask<List<GitLock>> ListLocks(bool local)
285
285
public ITask LockFile ( string file )
286
286
{
287
287
var task = GitClient . Lock ( file ) ;
288
- return HookupHandlers ( task , false ) ;
288
+ return HookupHandlers ( task , true , false ) ;
289
289
}
290
290
291
291
public ITask UnlockFile ( string file , bool force )
292
292
{
293
293
var task = GitClient . Unlock ( file , force ) ;
294
- return HookupHandlers ( task , false ) ;
294
+ return HookupHandlers ( task , true , false ) ;
295
295
}
296
296
297
297
public void UpdateConfigData ( )
@@ -328,30 +328,30 @@ private void UpdateHead()
328
328
UpdateCurrentBranchAndRemote ( head ) ;
329
329
}
330
330
331
- private ITask < T > HookupHandlers < T > ( ITask < T > task , bool disableWatcher = true , bool toggleBusyFlag = true )
331
+ private ITask < T > HookupHandlers < T > ( ITask < T > task , bool isExclusive , bool filesystemChangesExpected )
332
332
{
333
333
return new ActionTask ( CancellationToken . None , ( ) => {
334
- if ( toggleBusyFlag )
334
+ if ( isExclusive )
335
335
{
336
336
Logger . Trace ( "Starting Operation - Setting Busy Flag" ) ;
337
337
IsBusy = true ;
338
338
}
339
339
340
- if ( disableWatcher )
340
+ if ( filesystemChangesExpected )
341
341
{
342
342
Logger . Trace ( "Starting Operation - Disable Watcher" ) ;
343
343
watcher . Stop ( ) ;
344
344
}
345
345
} )
346
346
. Then ( task )
347
347
. Finally ( ( success , exception , result ) => {
348
- if ( disableWatcher )
348
+ if ( filesystemChangesExpected )
349
349
{
350
350
Logger . Trace ( "Ended Operation - Enable Watcher" ) ;
351
351
watcher . Start ( ) ;
352
352
}
353
353
354
- if ( toggleBusyFlag )
354
+ if ( isExclusive )
355
355
{
356
356
Logger . Trace ( "Ended Operation - Clearing Busy Flag" ) ;
357
357
IsBusy = false ;
0 commit comments