Always caches remotes

This commit is contained in:
Eric Amodio
2017-09-14 22:46:40 -04:00
parent 0fdf856c27
commit f0bdf3e2c3

View File

@@ -166,7 +166,6 @@ export class GitService extends Disposable {
this._repoWatcher = undefined; this._repoWatcher = undefined;
this._gitCache.clear(); this._gitCache.clear();
this._remotesCache.clear();
} }
this._gitignore = new Promise<ignore.Ignore | undefined>((resolve, reject) => { this._gitignore = new Promise<ignore.Ignore | undefined>((resolve, reject) => {
@@ -898,21 +897,26 @@ export class GitService extends Disposable {
return locations; return locations;
} }
hasRemotes(repoPath: string): boolean {
const remotes = this._remotesCache.get(repoPath);
return remotes !== undefined && remotes.length > 0;
}
async getRemotes(repoPath: string): Promise<GitRemote[]> { async getRemotes(repoPath: string): Promise<GitRemote[]> {
if (!repoPath) return []; if (!repoPath) return [];
Logger.log(`getRemotes('${repoPath}')`); Logger.log(`getRemotes('${repoPath}')`);
if (this.UseCaching) { let remotes = this._remotesCache.get(repoPath);
const remotes = this._remotesCache.get(repoPath); if (remotes !== undefined) return remotes;
if (remotes !== undefined) return remotes;
}
const data = await Git.remote(repoPath); const data = await Git.remote(repoPath);
const remotes = GitRemoteParser.parse(data, repoPath); remotes = GitRemoteParser.parse(data, repoPath);
if (this.UseCaching) {
if (remotes !== undefined) {
this._remotesCache.set(repoPath, remotes); this._remotesCache.set(repoPath, remotes);
} }
return remotes; return remotes;
} }