public static async Task<bool> ResolveConflicts (VersionControlItemList list, bool test)
		{
			if (test)
				return list.All (s => (s.VersionInfo.Status & VersionStatus.Conflicted) == VersionStatus.Conflicted);

			foreach (var item in list.Where (s => (s.VersionInfo.Status & VersionStatus.Conflicted) == VersionStatus.Conflicted)) {
				Document doc = await IdeApp.Workbench.OpenDocument (item.Path, item.ContainerProject, true);
				foreach (var view in doc.Views) {
					if (view.GetContent <MergeView> () != null)
						view.Select ();
				}
			}
			return true;
		}
Example #2
0
        void StartUpdate()
        {
            if (!remoteStatus)
            {
                status.Text = GettextCatalog.GetString("Scanning for changes...");
            }
            else
            {
                status.Text = GettextCatalog.GetString("Scanning for local and remote changes...");
            }

            status.Visible    = true;
            scroller.Visible  = false;
            commitBox.Visible = false;

            showRemoteStatus.Sensitive = false;
            buttonCommit.Sensitive     = false;

            ThreadPool.QueueUserWorkItem(delegate {
                if (fileList != null)
                {
                    var group = fileList.GroupBy(v => v.IsDirectory || v.WorkspaceObject is SolutionItem);
                    foreach (var item in group)
                    {
                        // Is directory.
                        if (item.Key)
                        {
                            foreach (var directory in item)
                            {
                                changeSet.AddFiles(vc.GetDirectoryVersionInfo(directory.Path, remoteStatus, true));
                            }
                        }
                        else
                        {
                            changeSet.AddFiles(item.Select(v => v.VersionInfo).ToArray());
                        }
                    }
                    changeSet.AddFiles(fileList.Where(v => !v.IsDirectory).Select(v => v.VersionInfo).ToArray());
                    fileList = null;
                }
                List <VersionInfo> newList = new List <VersionInfo> ();
                newList.AddRange(vc.GetDirectoryVersionInfo(filepath, remoteStatus, true));
                DispatchService.GuiDispatch(delegate {
                    if (!disposed)
                    {
                        LoadStatus(newList);
                    }
                });
            });
        }