From ff5cf70c7d7cf9a2ebea66e095039b5f47cd455e Mon Sep 17 00:00:00 2001 From: Joao Moreno Date: Wed, 24 Aug 2016 10:12:33 +0200 Subject: [PATCH] improve auto fetch when there are no remotes --- .../parts/git/browser/gitServices.ts | 23 +++++++++++-------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/src/vs/workbench/parts/git/browser/gitServices.ts b/src/vs/workbench/parts/git/browser/gitServices.ts index e6594dc8f61..c46514fc0ec 100644 --- a/src/vs/workbench/parts/git/browser/gitServices.ts +++ b/src/vs/workbench/parts/git/browser/gitServices.ts @@ -347,11 +347,14 @@ export class AutoFetcher implements git.IAutoFetcher, lifecycle.IDisposable } private loop(): void { - var model = this.gitService ? this.gitService.getModel() : null; - var remotes = model ? model.getRemotes() : null; + this._state = git.AutoFetcherState.Fetching; - if(remotes && remotes.length !== 0){ - this._state = git.AutoFetcherState.Fetching; + const remotes = this.gitService.getModel().getRemotes(); + + if (remotes.length === 0) { + this.timeout = AutoFetcher.MIN_TIMEOUT; + this.currentRequest = winjs.TPromise.as(null); + } else { this.currentRequest = this.gitService.fetch().then(() => { this.timeout = AutoFetcher.MIN_TIMEOUT; }, (err) => { @@ -363,13 +366,13 @@ export class AutoFetcher implements git.IAutoFetcher, lifecycle.IDisposable this.timeout = Math.min(Math.round(this.timeout * 1.2), AutoFetcher.MAX_TIMEOUT); // backoff } }); - - this.currentRequest.then(() => { - this._state = git.AutoFetcherState.Active; - this.currentRequest = winjs.TPromise.timeout(this.timeout); - return this.currentRequest; - }).then(() => this.loop(), (err) => this.deactivate()); } + + this.currentRequest.then(() => { + this._state = git.AutoFetcherState.Active; + this.currentRequest = winjs.TPromise.timeout(this.timeout); + return this.currentRequest; + }).then(() => this.loop(), (err) => this.deactivate()); } public dispose(): void {