@@ -177,7 +177,7 @@ public ITask CommitAllFiles(string message, string body)
177177 . AddAll ( )
178178 . Then ( GitClient . Commit ( message , body ) ) ;
179179
180- return HookupHandlers ( task ) ;
180+ return HookupHandlers ( task , true , true ) ;
181181 }
182182
183183 public ITask CommitFiles ( List < string > files , string message , string body )
@@ -186,7 +186,7 @@ public ITask CommitFiles(List<string> files, string message, string body)
186186 . Add ( files )
187187 . Then ( GitClient . Commit ( message , body ) ) ;
188188
189- return HookupHandlers ( task ) ;
189+ return HookupHandlers ( task , true , true ) ;
190190 }
191191
192192 public ITask < List < GitLogEntry > > Log ( )
@@ -198,37 +198,37 @@ public ITask<List<GitLogEntry>> Log()
198198 public ITask < GitStatus > Status ( )
199199 {
200200 var task = GitClient . Status ( ) ;
201- return HookupHandlers ( task , false ) ;
201+ return HookupHandlers ( task , true , false ) ;
202202 }
203203
204204 public ITask Fetch ( string remote )
205205 {
206206 var task = GitClient . Fetch ( remote ) ;
207- return HookupHandlers ( task , false ) ;
207+ return HookupHandlers ( task , true , false ) ;
208208 }
209209
210210 public ITask Pull ( string remote , string branch )
211211 {
212212 var task = GitClient . Pull ( remote , branch ) ;
213- return HookupHandlers ( task ) ;
213+ return HookupHandlers ( task , true , true ) ;
214214 }
215215
216216 public ITask Push ( string remote , string branch )
217217 {
218218 var task = GitClient . Push ( remote , branch ) ;
219- return HookupHandlers ( task , false ) ;
219+ return HookupHandlers ( task , true , false ) ;
220220 }
221221
222222 public ITask Revert ( string changeset )
223223 {
224224 var task = GitClient . Revert ( changeset ) ;
225- return HookupHandlers ( task ) ;
225+ return HookupHandlers ( task , true , true ) ;
226226 }
227227
228228 public ITask RemoteAdd ( string remote , string url )
229229 {
230230 var task = GitClient . RemoteAdd ( remote , url ) ;
231- task = HookupHandlers ( task , false ) ;
231+ task = HookupHandlers ( task , true , false ) ;
232232 if ( ! platform . Environment . IsWindows )
233233 {
234234 task . Then ( _ => {
@@ -241,7 +241,7 @@ public ITask RemoteAdd(string remote, string url)
241241 public ITask RemoteRemove ( string remote )
242242 {
243243 var task = GitClient . RemoteRemove ( remote ) ;
244- task = HookupHandlers ( task , false ) ;
244+ task = HookupHandlers ( task , true , false ) ;
245245 if ( ! platform . Environment . IsWindows )
246246 {
247247 task . Then ( _ => {
@@ -254,25 +254,25 @@ public ITask RemoteRemove(string remote)
254254 public ITask RemoteChange ( string remote , string url )
255255 {
256256 var task = GitClient . RemoteChange ( remote , url ) ;
257- return HookupHandlers ( task , false ) ;
257+ return HookupHandlers ( task , true , false ) ;
258258 }
259259
260260 public ITask SwitchBranch ( string branch )
261261 {
262262 var task = GitClient . SwitchBranch ( branch ) ;
263- return HookupHandlers ( task ) ;
263+ return HookupHandlers ( task , true , true ) ;
264264 }
265265
266266 public ITask DeleteBranch ( string branch , bool deleteUnmerged = false )
267267 {
268268 var task = GitClient . DeleteBranch ( branch , deleteUnmerged ) ;
269- return HookupHandlers ( task , false ) ;
269+ return HookupHandlers ( task , true , false ) ;
270270 }
271271
272272 public ITask CreateBranch ( string branch , string baseBranch )
273273 {
274274 var task = GitClient . CreateBranch ( branch , baseBranch ) ;
275- return HookupHandlers ( task , false ) ;
275+ return HookupHandlers ( task , true , false ) ;
276276 }
277277
278278 public ITask < List < GitLock > > ListLocks ( bool local )
@@ -285,13 +285,13 @@ public ITask<List<GitLock>> ListLocks(bool local)
285285 public ITask LockFile ( string file )
286286 {
287287 var task = GitClient . Lock ( file ) ;
288- return HookupHandlers ( task , false ) ;
288+ return HookupHandlers ( task , true , false ) ;
289289 }
290290
291291 public ITask UnlockFile ( string file , bool force )
292292 {
293293 var task = GitClient . Unlock ( file , force ) ;
294- return HookupHandlers ( task , false ) ;
294+ return HookupHandlers ( task , true , false ) ;
295295 }
296296
297297 public void UpdateConfigData ( )
@@ -328,30 +328,30 @@ private void UpdateHead()
328328 UpdateCurrentBranchAndRemote ( head ) ;
329329 }
330330
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 )
332332 {
333333 return new ActionTask ( CancellationToken . None , ( ) => {
334- if ( toggleBusyFlag )
334+ if ( isExclusive )
335335 {
336336 Logger . Trace ( "Starting Operation - Setting Busy Flag" ) ;
337337 IsBusy = true ;
338338 }
339339
340- if ( disableWatcher )
340+ if ( filesystemChangesExpected )
341341 {
342342 Logger . Trace ( "Starting Operation - Disable Watcher" ) ;
343343 watcher . Stop ( ) ;
344344 }
345345 } )
346346 . Then ( task )
347347 . Finally ( ( success , exception , result ) => {
348- if ( disableWatcher )
348+ if ( filesystemChangesExpected )
349349 {
350350 Logger . Trace ( "Ended Operation - Enable Watcher" ) ;
351351 watcher . Start ( ) ;
352352 }
353353
354- if ( toggleBusyFlag )
354+ if ( isExclusive )
355355 {
356356 Logger . Trace ( "Ended Operation - Clearing Busy Flag" ) ;
357357 IsBusy = false ;
0 commit comments