From 3cc911fa79f58724fbb5d83552f6692f200eba99 Mon Sep 17 00:00:00 2001 From: Josh Abernathy Date: Fri, 12 Feb 2016 15:32:34 -0500 Subject: [PATCH] Merge pull request #10797 from atom/fix-status-with-multiple-paths Fix status with multiple paths --- spec/git-spec.coffee | 30 ++++++++++++++++++++++++++++++ src/git-repository.coffee | 3 +-- 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/spec/git-spec.coffee b/spec/git-spec.coffee index c84ff6aa9..df0a72efd 100644 --- a/spec/git-spec.coffee +++ b/spec/git-spec.coffee @@ -249,6 +249,36 @@ describe "GitRepository", -> expect(repo.isStatusModified(status)).toBe false expect(repo.isStatusNew(status)).toBe false + it 'caches the proper statuses when multiple project are open', -> + otherWorkingDirectory = copyRepository() + + atom.project.setPaths([workingDirectory, otherWorkingDirectory]) + + waitsForPromise -> + atom.workspace.open('b.txt') + + statusHandler = null + runs -> + repo = atom.project.getRepositories()[0] + + statusHandler = jasmine.createSpy('statusHandler') + repo.onDidChangeStatuses statusHandler + repo.refreshStatus() + + waitsFor -> + statusHandler.callCount > 0 + + runs -> + subDir = path.join(workingDirectory, 'dir') + fs.mkdirSync(subDir) + + filePath = path.join(subDir, 'b.txt') + fs.writeFileSync(filePath, '') + + status = repo.getCachedPathStatus(filePath) + expect(repo.isStatusModified(status)).toBe true + expect(repo.isStatusNew(status)).toBe false + describe "buffer events", -> [editor] = [] diff --git a/src/git-repository.coffee b/src/git-repository.coffee index cf85cb076..244a6abad 100644 --- a/src/git-repository.coffee +++ b/src/git-repository.coffee @@ -465,8 +465,7 @@ class GitRepository relativeProjectPaths = @project?.getPaths() .map (path) => @relativize(path) - .filter (path) -> path.length > 0 - .map (path) -> path + '/**' + .map (path) -> if path.length > 0 then path + '/**' else '*' @statusTask?.terminate() @statusTask = Task.once @handlerPath, @getPath(), relativeProjectPaths, ({statuses, upstream, branch, submodules}) =>