Esempio n. 1
0
        public int OnAfterOpenProject([InAttribute] IVsHierarchy pHierarchy, [InAttribute] int fAdded)
        {
            Trace.WriteLine("OnAfterOpenProject");

            //if (fAdded == 1)
            {
                IVsSccProject2 project = pHierarchy as IVsSccProject2;

                IList <string> fileList = SccProvider.GetProjectFiles(project);
                _sccStatusTracker.AddFileToProjectCache(fileList, project);

                if (fileList.Count > 0)
                {
                    string[] files = new string[fileList.Count];
                    fileList.CopyTo(files, 0);
                    // add only files wich are not ignored
                    if (Configuration.Global._autoAddFiles)
                    {
                        _sccStatusTracker.AddWorkItem(new HGLib.TrackFilesAddedNotIgnored(files));
                    }
                    else
                    {
                        _sccStatusTracker.AddWorkItem(new HGLib.UpdateFileStatusCommand(files));
                    }
                }
            }

            _sccProvider._LastSeenProjectDir = SccProjectData.ProjectDirectory(pHierarchy);
            _sccStatusTracker.UpdateProject(pHierarchy as IVsSccProject2);
            return(VSConstants.S_OK);
        }
Esempio n. 2
0
        public int OnBeforeCloseProject([InAttribute] IVsHierarchy pHierarchy, [InAttribute] int fRemoved)
        {
            if (_sccStatusTracker.FileProjectMapCacheCount() > 0)
            {
                IVsSccProject2 project  = pHierarchy as IVsSccProject2;
                IList <string> fileList = SccProvider.GetProjectFiles(project);
                _sccStatusTracker.RemoveFileFromProjectCache(fileList);
            }

            return(VSConstants.S_OK);
        }