コード例 #1
0
        // 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;
        }
コード例 #2
0
        // 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);
        }