Пример #1
0
        public int OnBeforeOpenSolution(string pszSolutionFilename)
        {
            AppHelper.Output("OnBeforeOpenSolution");
            _CurrentSolutionRcsType = RcsType.Unknown;
            SetSCC(pszSolutionFilename);

            return(VSConstants.S_OK);
        }
Пример #2
0
        void SolutionEvents_Opened()
        {
            AppHelper.Output("SolutionEvents_Opened");

            ThreadHelper.ThrowIfNotOnUIThread();
            //var getProvider = GetService(typeof(IVsRegisterScciProvider)) as IVsGetScciProviderInterface;
            //Assumes.Present(getProvider);

            if (AppHelper.Debug)
            {
                Guid pGuid;
                _VsGetScciProviderInterface.GetSourceControlProviderID(out pGuid);
                var msg = String.Format("Current Source Control Provider ID: {0}", pGuid.ToString());
                AppHelper.Output(msg);
            }

            //_CurrentSolutionRcsType = RcsType.Unknown;
            if (!string.IsNullOrWhiteSpace(_DTE2?.Solution?.FullName))
            {
                SetSCC(_DTE2.Solution.FullName);
            }
        }
Пример #3
0
        public static void RegisterPrimarySourceControlProvider(RcsType rcsType)
        {
            ThreadHelper.ThrowIfNotOnUIThread();

            AppHelper.Output(String.Format("Registering Primary Source Control Provider: {0}", rcsType.ToString()));

            int         hr;
            Guid        packageGuid     = new Guid();
            Guid        sccProviderGuid = new Guid();
            SccProvider providerToLoad  = SccProvider.Unknown;
            bool        enabled         = false;

            switch (rcsType)
            {
            case RcsType.Subversion:
            {
                enabled = RegisterSubversionScc(out packageGuid, out sccProviderGuid, out providerToLoad);
                break;
            }

            case RcsType.Git:
            {
                enabled = RegisterGitScc(out packageGuid, out sccProviderGuid, out providerToLoad);
                break;
            }

            case RcsType.Mercurial:
            {
                enabled = RegisterMercurialScc(out packageGuid, out sccProviderGuid, out providerToLoad);
                break;
            }

            case RcsType.Perforce:
            {
                enabled = RegisterPerforceScc(out packageGuid, out sccProviderGuid, out providerToLoad);
                break;
            }
            }

            AppHelper.Output(String.Format("Provider to Load: {0}, Enabled: {1}", providerToLoad.ToString(), enabled));

            if (!enabled)
            {
                return;
            }

            SccProvider currentSccProvider = GetCurrentSccProvider();

            AppHelper.Output(String.Format("Current Provider: {0}", currentSccProvider.ToString()));

            if (providerToLoad == currentSccProvider)
            {
                return;
            }

            var installed = IsSccPackageInstalled(packageGuid);

            AppHelper.Output(String.Format("Provider {0} installed: {1}", providerToLoad.ToString(), installed));

            if (!installed)
            {
                return;
            }

            hr = _VsRegisterScciProvider.RegisterSourceControlProvider(sccProviderGuid);
            Marshal.ThrowExceptionForHR(hr);

            AppHelper.Output(String.Format("Provider {0} registered (providerGuid: {1})", providerToLoad.ToString(), sccProviderGuid.ToString()));
        }
Пример #4
0
 public int OnAfterOpenSolution(object pUnkReserved, int fNewSolution)
 {
     //SetSCC(_DTE2.Solution.FullName);
     AppHelper.Output("OnAfterOpenSolution");
     return(VSConstants.S_OK);
 }