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; }
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); } }); }); }