From a7b8c243a4b5e236396c2d7c3ee982c973217157 Mon Sep 17 00:00:00 2001 From: Eric Amodio Date: Fri, 10 Nov 2017 00:25:50 -0500 Subject: [PATCH] Fixes refresh of stashes and remotes --- CHANGELOG.md | 1 + src/views/repositoryNode.ts | 21 +++++++++++++++++---- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 47c2662..1627a69 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this p ### Fixed - Fixes issue where failed git commands would get stuck in the pending queue causing future similar commands to also fail +- Fixes issue where changes to git remotes would refresh the entire `GitLens` view ## [6.0.0] - 2017-11-08 diff --git a/src/views/repositoryNode.ts b/src/views/repositoryNode.ts index 954e43f..a8bf756 100644 --- a/src/views/repositoryNode.ts +++ b/src/views/repositoryNode.ts @@ -63,11 +63,24 @@ export class RepositoryNode extends ExplorerNode { private onRepoChanged(e: RepositoryChangeEvent) { Logger.log(`RepositoryNode.onRepoChanged(${e.changes.join()}); triggering node refresh`); - let node: ExplorerNode | undefined; - if (this.children !== undefined && e.changed(RepositoryChange.Stashes, true)) { - node = this.children.find(c => c instanceof StashesNode); + if (this.children === undefined || e.changed(RepositoryChange.Repository) || e.changed(RepositoryChange.Config)) { + this.explorer.refreshNode(this); + + return; + } + + if (e.changed(RepositoryChange.Stashes)) { + const node = this.children.find(c => c instanceof StashesNode); + if (node !== undefined) { + this.explorer.refreshNode(node); + } } - this.explorer.refreshNode(node || this); + if (e.changed(RepositoryChange.Remotes)) { + const node = this.children.find(c => c instanceof RemotesNode); + if (node !== undefined) { + this.explorer.refreshNode(node); + } + } } } \ No newline at end of file