From cf60855245445710f278878b89dddba62314593f Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Thu, 19 Feb 2015 10:28:54 -0800 Subject: [PATCH] Don't destroy repo in ::removePath if it is still needed --- spec/project-spec.coffee | 6 ++++++ src/project.coffee | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/spec/project-spec.coffee b/spec/project-spec.coffee index 976a5774b..956895952 100644 --- a/spec/project-spec.coffee +++ b/spec/project-spec.coffee @@ -352,6 +352,12 @@ describe "Project", -> expect(atom.project.getPaths()).toEqual(originalPaths) expect(onDidChangePathsSpy).not.toHaveBeenCalled() + it "doesn't destroy the repository if it is shared by another root directory", -> + atom.project.setPaths([__dirname, path.join(__dirname, "..", "src")]) + atom.project.removePath(__dirname) + expect(atom.project.getPaths()).toEqual([path.join(__dirname, "..", "src")]) + expect(atom.project.getRepositories()[0].isSubmodule("src")).toBe false + describe ".relativize(path)", -> it "returns the path, relative to whichever root directory it is inside of", -> atom.project.addPath(temp.mkdirSync("another-path")) diff --git a/src/project.coffee b/src/project.coffee index 8844fa231..50bda3ed8 100644 --- a/src/project.coffee +++ b/src/project.coffee @@ -225,7 +225,7 @@ class Project extends Model [removedDirectory] = @rootDirectories.splice(indexToRemove, 1) [removedRepository] = @repositories.splice(indexToRemove, 1) removedDirectory.off() - removedRepository?.destroy() + removedRepository?.destroy() unless removedRepository in @repositories @emit "path-changed" @emitter.emit "did-change-paths", @getPaths() true