// FYI: VS SDK API for source control detection and support is really, really horrible. public static async Task<ISccBasicFileSystem> GetFileSystemManipulatorForEnvironment(Project project) { var dte = project.DTE; //if (!project.IsSourceControlled() && !dte.Solution.IsSourceControlled()) //{ // return new NonSccBasicFileSystem(); //} var detectedSccSystem = await DetectSccSystem(project); ISccBasicFileSystem result; switch (detectedSccSystem) { case "tfs": result = new TfsExeWrapper(project.GetDirectory(), dte.GetLogger()); break; case "git": result = new GitExeWrapper(project.GetDirectory(), dte.GetLogger()); break; case "hg": // not yet implemented //result = null; result = new NonSccBasicFileSystem(); break; case "svn": // not yet implemented //result = null; result = new NonSccBasicFileSystem(); break; case null: result = new NonSccBasicFileSystem(); break; default: // not implemented //result = null; result = new NonSccBasicFileSystem(); break; } return result; }
// FYI: VS SDK API for source control detection and support is really, really horrible. public static async Task <ISccBasicFileSystem> GetFileSystemManipulatorForEnvironment(Project project) { var dte = project.DTE; //if (!project.IsSourceControlled() && !dte.Solution.IsSourceControlled()) //{ // return new NonSccBasicFileSystem(); //} var detectedSccSystem = await DetectSccSystem(project); ISccBasicFileSystem result; switch (detectedSccSystem) { case "tfs": result = new TfsExeWrapper(project.GetDirectory(), dte.GetLogger()); break; case "git": result = new GitExeWrapper(project.GetDirectory(), dte.GetLogger()); break; case "hg": // not yet implemented //result = null; result = new NonSccBasicFileSystem(); break; case "svn": // not yet implemented //result = null; result = new NonSccBasicFileSystem(); break; case null: result = new NonSccBasicFileSystem(); break; default: // not implemented //result = null; result = new NonSccBasicFileSystem(); break; } return(result); }