コード例 #1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="ChangeSourceControlRow"/> class.
        /// </summary>
        /// <param name="context">The context.</param>
        /// <param name="project">The project.</param>
        public ChangeSourceControlRow(IAnkhServiceProvider context, SvnProject project)
        {
            if (context == null)
                throw new ArgumentNullException("context");
            else if (project == null)
                throw new ArgumentNullException("project");

            _context = context;
            _project = project;
        }
コード例 #2
0
ファイル: CommandTests.cs プロジェクト: necora/ank_git
        public void SetUp()
        {
            sp = new AnkhServiceProvider();

            object pvar;
            var shell = new Mock<SVsShell>().As<IVsShell>();
            shell.Setup(x => x.GetProperty(It.IsAny<int>(), out pvar)).Returns(-1);
            sp.AddService(typeof(SVsShell), shell.Object);

            var state = new Mock<IAnkhCommandStates>();
            state.SetupGet(x => x.SccProviderActive).Returns(true);
            state.SetupGet(x => x.SolutionExists).Returns(true);

            sp.AddService(typeof(IAnkhCommandStates), state.Object);

            var selection = new Mock<ISelectionContext>();
            selection.Setup(x => x.Cache[It.IsAny<object>()]).Returns(null);

            var rawHandle = new Mock<IVsSccProject2>();
            var p = new SvnProject("c:\foo\bar", rawHandle.Object);
            selection.Setup(x => x.GetSelectedProjects(It.IsAny<bool>())).Returns(new[] { p });
            sp.AddService(typeof(ISelectionContext), selection.Object);

            var pcMgr = new Mock<IPendingChangesManager>();
            sp.AddService(typeof(IPendingChangesManager), pcMgr.Object);

            var textMgr = new Mock<SVsTextManager>().As<IVsTextManager>();
            sp.AddService(typeof(SVsTextManager), textMgr.Object);

            var selectionMonitor = new Mock<IVsMonitorSelection>();
            sp.AddService(typeof(IVsMonitorSelection), selectionMonitor.Object);

            var r = new AnkhRuntime(sp);
            r.AddModule(new AnkhModule(r));
            r.AddModule(new AnkhSccModule(r));
            //r.AddModule(new AnkhVSModule(r));
            r.AddModule(new AnkhUIModule(r));
            r.AddModule(new AnkhDiffModule(r));
            r.Start();

            cm = r.GetService<CommandMapper>();
        }
コード例 #3
0
ファイル: SvnLogService.cs プロジェクト: xxq860725/SvnManager
        private void GetProjectRevision()
        {
            using (SqlConnection connection = new SqlConnection(_connetionString))
            {
                SqlCommand command = new SqlCommand();
                command.Connection  = connection;
                command.CommandType = System.Data.CommandType.Text;
                command.CommandText = @"select p.ID,p.Url,p.Name,u.DomainAccount,u.Password,c.Revision from SVN_Project as p  
                                        LEFT   JOIN (
                                        select b.ProjectID, max(Revision) as Revision from SVN_Log as b
                                        GROUP BY b.ProjectID)  as c on  p.id=c.ProjectID
                                        LEFT JOIN SVN_User as u on p.UserID=u.id
                                        where p.IsUse=1 and  (url like 'http%' or url like 'svn%');
                                        select ID,DomainAccount from SVN_User";
                connection.Open();
                SqlDataAdapter adapter = new SqlDataAdapter(command);
                DataSet        ds      = new DataSet();
                adapter.Fill(ds);
                foreach (DataRow row in ds.Tables[0].AsEnumerable())
                {
                    SvnProject svnProject = new SvnProject();
                    svnProject.ID            = row["ID"].ToString();
                    svnProject.Url           = row["Url"].ToString();
                    svnProject.Name          = row["Name"].ToString();
                    svnProject.DomainAccount = row["DomainAccount"].ToString();
                    svnProject.Password      = row["Password"].ToString();
                    int revision = 0;
                    int.TryParse(row["Revision"].ToString(), out revision);
                    svnProject.Revision = revision;
                    _svnProjectList.Add(svnProject);
                }

                foreach (DataRow row in ds.Tables[1].AsEnumerable())
                {
                    SvnUser svnUser = new SvnUser();
                    svnUser.ID            = row["ID"].ToString();
                    svnUser.DomainAccount = row["DomainAccount"].ToString();
                    _svnUserList.Add(svnUser);
                }
            }
        }
コード例 #4
0
        private bool ListBoxProjectsFilter(object item)
        {
            SvnProject project = (item as ListBoxItem).Tag as SvnProject;

            return(project.Name.Contains(textBoxProjectsFilter.Text));
        }
コード例 #5
0
        private void listBoxProjectList_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            try
            {
                listBoxComponents.ItemsSource = null;
                ListBoxItem seletedNode = listBoxProjectList.SelectedItem as ListBoxItem;

                if (seletedNode != null &&
                    seletedNode.Tag != null)
                {
                    SvnProject          seletedProject = seletedNode.Tag as SvnProject;
                    List <SvnComponent> componentList  = myIfsSvn.GetComponentListFromExternals(seletedProject);
                    componentList.AddRange(myIfsSvn.GetDocumentComponentListFromExternals(seletedProject));

                    StackPanel         treeItemStack;
                    TextBlock          lbl;
                    Image              treeItemImage;
                    ListBoxItem        nodeItem;
                    List <ListBoxItem> nodeItemList = new List <ListBoxItem>();

                    foreach (SvnComponent component in componentList)
                    {
                        nodeItem      = new ListBoxItem();
                        nodeItem.Name = component.Name.Replace("-", "_").Replace(".", "_");

                        treeItemStack             = new StackPanel();
                        treeItemStack.Orientation = Orientation.Horizontal;

                        lbl        = new TextBlock();
                        lbl.Text   = component.Name;
                        lbl.Margin = new Thickness(3, 1, 3, 1);

                        treeItemImage        = new Image();
                        treeItemImage.Source = componentImage;
                        treeItemImage.Margin = new Thickness(3, 1, 3, 1);

                        treeItemStack.Children.Add(treeItemImage);
                        treeItemStack.Children.Add(lbl);

                        nodeItem.Content = treeItemStack;
                        nodeItem.Tag     = component;

                        nodeItemList.Add(nodeItem);
                    }

                    if (nodeItemList.Count > 0)
                    {
                        listBoxComponents.ItemsSource = nodeItemList;
                    }

                    textBoxWorkSpace.Text = textBoxProjectRoot.Text + @"\" + seletedProject.Name + @"\" + Properties.Resources.CheckOutPath_WorkSpace;

                    Properties.Settings.Default.SelectedProject = seletedProject.Name;

                    this.ClearComponentSelection();
                }
            }
            catch (Exception ex)
            {
                ModernDialog.ShowMessage(ex.Message, "Error Loading Components", MessageBoxButton.OK);
                logger.Error(ex, "Error Loading Components");
            }
        }
コード例 #6
0
 /// <summary>
 /// [Implementation detail of Clone()]
 /// </summary>
 public ChangeSourceControlRow()
 {
     ChangeSourceControlRow from = _cloning.Pop();
     _context = from._context;
     _project = from._project;
 }
コード例 #7
0
        public void SetProjectManaged(SvnProject project, bool managed)
        {
            if (!IsActive)
                return; // Perhaps allow clearing management settings?

            if (project == null)
                SetProjectManagedRaw(null, managed);
            else
                SetProjectManagedRaw(project.RawHandle, managed);
        }
コード例 #8
0
        public bool IsProjectManaged(SvnProject project)
        {
            if (!IsActive)
                return false;

            if (project == null)
                return IsSolutionManaged;

            return IsProjectManagedRaw(project.RawHandle);
        }
コード例 #9
0
 public void EnsureCheckOutReference(SvnProject project)
 {
     // NOOP for today
 }
コード例 #10
0
        private void backgroundWorkerLoad_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            if (this.Dispatcher.CheckAccess() == false)
            {
                this.Dispatcher.Invoke(new backgroundWorkerLoad_RunWorkerCompletedDelegate(backgroundWorkerLoad_RunWorkerCompleted), new object[] { sender, e });
            }
            else
            {
                try
                {
                    if (e.Error != null)
                    {
                        ModernDialog.ShowMessage(e.Error.Message, "Error setting Log", MessageBoxButton.OK);
                    }
                    else if (e.Cancelled)
                    {
                        //    textBoxLog.AppendText("Cancelled!\r\n");
                    }
                    else
                    {
                        if (e.Result != null)
                        {
                            if (e.Result is bool)
                            {
                                if ((bool)e.Result)
                                {
                                    ModernDialog.ShowMessage("OK", "Creating Branch", MessageBoxButton.OK);
                                }
                                else
                                {
                                    ModernDialog.ShowMessage("Was not Created.", "Creating Branch", MessageBoxButton.OK);
                                }
                            }
                            else
                            {
                                List <SvnListEventArgs> forlderList = e.Result as List <SvnListEventArgs>;

                                List <SvnProject> projectList = new List <SvnProject>();
                                foreach (SvnListEventArgs folder in forlderList)
                                {
                                    if (string.IsNullOrWhiteSpace(folder.Path) == false)
                                    {
                                        projectList.Add(new SvnProject(folder));
                                    }
                                }
                                SvnProject selectedProject = projectList.FirstOrDefault(p => p.Name == Properties.Settings.Default.SelectedProjectForBranchCreate);
                                comboBoxProjectList.ItemsSource = projectList;
                                if (selectedProject != null)
                                {
                                    comboBoxProjectList.SelectedItem = selectedProject;
                                }
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    ModernDialog.ShowMessage(ex.Message, "Error", MessageBoxButton.OK);
                }
                finally
                {
                    progressBarMain.Visibility = System.Windows.Visibility.Collapsed;
                }
            }
        }
コード例 #11
0
        private IEnumerable<SvnItem> GetSingleProjectRoots(SvnProject project)
        {
            SccProjectData pd;
            if (project.RawHandle == null || !_projectMap.TryGetValue(project.RawHandle, out pd))
                yield break;

            SvnItem projectRootItem = null;
            if (!string.IsNullOrEmpty(pd.ProjectDirectory))
            {
                projectRootItem = StatusCache[pd.ProjectDirectory];

                if (projectRootItem.IsVersioned)
                    yield return projectRootItem;
            }

            string file = pd.ProjectFile;

            if (string.IsNullOrEmpty(file) || !SvnItem.IsValidPath(file))
                yield break;

            SvnItem projectFileItem = StatusCache[file];

            if (projectFileItem.IsVersioned &&
                (projectRootItem == null || !projectFileItem.IsBelowPath(projectRootItem.FullPath)))
            {
                yield return projectFileItem;
            }
        }
コード例 #12
0
        public SvnProject ResolveRawProject(SvnProject project)
        {
            if (project == null)
                throw new ArgumentNullException("project");

            if (project.RawHandle == null && !project.IsSolution)
            {
                SccProjectFile file;

                if (_fileMap.TryGetValue(project.FullPath, out file))
                {
                    foreach (SccProjectData p in file.GetOwnerProjects())
                    {
                        return p.SvnProject;
                    }
                }
            }

            return project;
        }
コード例 #13
0
        public IEnumerable<SvnItem> GetUpdateRoots(SvnProject project)
        {
            if (project != null)
                return GetSingleProjectRoots(project);

            return GetSolutionProjectRoots();
        }
コード例 #14
0
        public ISvnProjectInfo GetProjectInfo(SvnProject project)
        {
            if (project == null)
                return null;

            project = ResolveRawProject(project);

            if (project == null || project.RawHandle == null)
                return null;

            SccProjectData pd;
            if (_projectMap.TryGetValue(project.RawHandle, out pd))
            {
                return new WrapProjectInfo(pd);
            }

            return null;
        }