public void TestMovedNoMeta() { MergeTreeResult conflicts = new MergeTreeResult(); MountPointWithPath rootMountPointWithPath = BuildRootMountPointWithPath(); Difference difference = BuildMergeTreeResult.CreateMovedDifference("/foo/bar.c", "/foo/var.c"); conflicts.MovesToApply.Add(difference); UnityIncomingChangesTree tree = UnityIncomingChangesTree.BuildIncomingChangeCategories( IncomingChangesTree.BuildIncomingChangeCategories( conflicts, new GetConflictResolutionMock(), rootMountPointWithPath)); IncomingChangeInfo changeInfo = FindChangeInfo.FromDifference( difference, tree); Assert.IsNotNull( changeInfo, "ChangeInfo not found"); Assert.IsNull( tree.GetMetaChange(changeInfo), "Meta change should be null"); }
void MergeViewLogic.IMergeView.UpdateData( MergeTreeResult resultConflicts, ExplainMergeData explainMergeData, MergeSolvedFileConflicts solvedFileConflicts, MountPointWithPath rootMountPoint, bool isIncomingMerge, bool isMergeTo, bool isUpdateMerge, bool mergeHasFinished) { HideMessage(); ShowProcessMergesButton(MergeViewTexts.GetProcessMergeButtonText( MergeTreeResultParser.GetFileConflictsCount(resultConflicts) > 0, true)); mResultConflicts = resultConflicts; mSolvedFileConflicts = solvedFileConflicts; mRootMountPoint = rootMountPoint; mConflictResolutionStates.Clear(); UpdateFileConflictsTree( IncomingChangesTree.BuildIncomingChangeCategories( mResultConflicts, this, mRootMountPoint), mIncomingChangesTreeView); }
public void TestChangedWithMeta() { MergeTreeResult conflicts = new MergeTreeResult(); MountPointWithPath rootMountPointWithPath = BuildRootMountPointWithPath(); FileConflict fileConflict = BuildMergeTreeResult.CreateFileConflict("/foo/bar.c"); FileConflict fileConflictMeta = BuildMergeTreeResult.CreateFileConflict("/foo/bar.c.meta"); conflicts.FilesModifiedOnSource.Add(fileConflict); conflicts.FilesModifiedOnSource.Add(fileConflictMeta); UnityIncomingChangesTree tree = UnityIncomingChangesTree.BuildIncomingChangeCategories( IncomingChangesTree.BuildIncomingChangeCategories( conflicts, new GetConflictResolutionMock(), rootMountPointWithPath)); IncomingChangeInfo changeInfo = FindChangeInfo.FromFileConflict( fileConflict, tree); Assert.IsNotNull( changeInfo, "ChangeInfo not found"); Assert.IsNotNull( tree.GetMetaChange(changeInfo), "Meta change should not be null"); }
static void DoFileConflictsHeader( MergeTreeResult conflicts, MergeSolvedFileConflicts solvedFileConflicts, MountPointWithPath mount) { int fileConflictsCount = MergeTreeResultParser.GetFileConflictsCount(conflicts); int pendingFileConflictsCount = MergeTreeResultParser.GetUnsolvedFileConflictsCount( conflicts, mount.Id, solvedFileConflicts); GUIStyle pendingFileConflictsOfTotalStyle = pendingFileConflictsCount > 0 ? UnityStyles.IncomingChangesTab.RedPendingConflictsOfTotalLabel : UnityStyles.IncomingChangesTab.GreenPendingConflictsOfTotalLabel; GUILayout.Label( string.Format("{0}/{1}", pendingFileConflictsCount, fileConflictsCount), pendingFileConflictsOfTotalStyle); GUILayout.Label( MergeViewTexts.GetFileConflictsCaption(fileConflictsCount, true), UnityStyles.IncomingChangesTab.PendingConflictsLabel); GUILayout.Space(5); GUILayout.Label( MergeViewTexts.GetChangesToApplyCaption( MergeTreeResultParser.GetChangesToApplySummary(conflicts)), UnityStyles.IncomingChangesTab.ChangesToApplySummaryLabel); }
public void TestDirectoryConflictWithMeta() { MergeTreeResult conflicts = new MergeTreeResult(); MountPointWithPath rootMountPointWithPath = BuildRootMountPointWithPath(); DirectoryConflict directoryConflict = BuildMergeTreeResult.CreateEvilTwinConflict("/foo/bar.c"); DirectoryConflict directoryConflictMeta = BuildMergeTreeResult.CreateEvilTwinConflict("/foo/bar.c.meta"); conflicts.EvilTwins.Add(directoryConflict); conflicts.EvilTwins.Add(directoryConflictMeta); UnityIncomingChangesTree tree = UnityIncomingChangesTree.BuildIncomingChangeCategories( MergeChangesTree.BuildForIncomingChangesView( conflicts, new GetConflictResolutionMock(), rootMountPointWithPath)); MergeChangeInfo conflictChangeInfo = FindChangeInfo.FromDirectoryConflict( directoryConflict, tree); Assert.IsNotNull( conflictChangeInfo, "ChangeInfo not found"); Assert.IsNotNull( tree.GetMetaChange(conflictChangeInfo), "Meta change should not be null"); }
public void TestDeletedWithMeta() { MergeTreeResult conflicts = new MergeTreeResult(); MountPointWithPath rootMountPointWithPath = BuildRootMountPointWithPath(); Difference difference = BuildMergeTreeResult.CreateFileAddedDifference("/foo/bar.c"); Difference differenceMeta = BuildMergeTreeResult.CreateFileAddedDifference("/foo/bar.c.meta"); conflicts.DeletesToApply.Add(difference); conflicts.DeletesToApply.Add(differenceMeta); UnityIncomingChangesTree tree = UnityIncomingChangesTree.BuildIncomingChangeCategories( MergeChangesTree.BuildForIncomingChangesView( conflicts, new GetConflictResolutionMock(), rootMountPointWithPath)); MergeChangeInfo addedChangeInfo = FindChangeInfo.FromDifference( difference, tree); Assert.IsNotNull( addedChangeInfo, "ChangeInfo not found"); Assert.IsNotNull( tree.GetMetaChange(addedChangeInfo), "Meta change should not be null"); }
public void TestConflictNoMeta() { MountPointWithPath rootMountPointWithPath = BuildRootMountPointWithPath(); GluonFileConflict fileConflict = Build.FileConflict( rootMountPointWithPath, "/foo/bar.c"); CheckedStateManager checkedStateManager = new CheckedStateManager(); List <OutOfDateItemsByMount> outOfDateItemsByMount = new List <OutOfDateItemsByMount>(); List <GluonFileConflict> fileConflicts = new List <GluonFileConflict>(); fileConflicts.Add(fileConflict); IncomingChangesTree innerTree = IncomingChangesTree.BuildIncomingChangeCategories( checkedStateManager, outOfDateItemsByMount, fileConflicts); UnityIncomingChangesTree tree = UnityIncomingChangesTree.BuildIncomingChangeCategories(innerTree); IncomingChangeInfo conflictChangeInfo = FindChangeInfo.FromFileConflict( fileConflict, tree); Assert.IsNotNull( conflictChangeInfo, "ChangeInfo not found"); Assert.IsNull( tree.GetMetaChange(conflictChangeInfo), "Meta change should be null"); }
internal void UpdateInfo( MountPointWithPath mountWithPath, ChangesetInfo csetInfo) { FillData(mountWithPath, csetInfo); mParentWindow.Repaint(); }
static string GetPathForDiff( string wkPath, MountPointWithPath mountPoint, string cmSubPath) { return(WorkspacePath.GetWorkspacePathFromCmPath( wkPath, WorkspacePath.ComposeMountPath(mountPoint.MountPath, cmSubPath), PathHelper.GetDirectorySeparatorChar(wkPath))); }
internal static GluonFileConflict FileConflict( MountPointWithPath mount, string path) { return(new GluonFileConflict( mount, BuildFileRevision(), BuildFileRevision(), path)); }
void FillData( MountPointWithPath mountWithPath, ChangesetInfo csetInfo) { mSelectedMountWithPath = mountWithPath; mSelectedChangesetInfo = csetInfo; ((IProgressControls)mProgressControls).ShowProgress( PlasticLocalization.GetString(PlasticLocalization.Name.Loading)); mIsSkipMergeTrackingButtonVisible = false; IThreadWaiter waiter = ThreadWaiter.GetWaiter(100); waiter.Execute( /*threadOperationDelegate*/ delegate { mDiffs = Plastic.API.GetChangesetDifferences( mountWithPath, csetInfo); }, /*afterOperationDelegate*/ delegate { ((IProgressControls)mProgressControls).HideProgress(); if (waiter.Exception != null) { ExceptionsHandler.DisplayException(waiter.Exception); return; } if (mSelectedMountWithPath != mountWithPath || mSelectedChangesetInfo != csetInfo) { return; } if (mDiffs == null || mDiffs.Count == 0) { ClearDiffs(); return; } mIsSkipMergeTrackingButtonVisible = ClientDiffList.HasMerges(mDiffs); bool skipMergeTracking = mIsSkipMergeTrackingButtonVisible && mIsSkipMergeTrackingButtonChecked; UpdateDiffTreeView( mDiffs, skipMergeTracking, mDiffTreeView); }); }
void OnSelectionChanged() { if (!ChangesetsSelection.IsSingleSelection(mChangesetsListView)) { return; } mDiffPanel.UpdateInfo( MountPointWithPath.BuildWorkspaceRootMountPoint( ChangesetsSelection.GetSelectedRepository(mChangesetsListView)), ChangesetsSelection.GetSelectedChangeset(mChangesetsListView)); }
public void TestChangedWithDeletedMeta() { MountPointWithPath rootMountPointWithPath = BuildRootMountPointWithPath(); Difference changed = Build.ChangedDifference( "/foo/bar.c"); Difference deletedMeta = Build.DeletedDifference( "/foo/bar.c.meta"); OutOfDateItemsByMount outOfDateItems = new OutOfDateItemsByMount() { Mount = rootMountPointWithPath }; outOfDateItems.Changed.Add(changed); outOfDateItems.Deleted.Add(deletedMeta); CheckedStateManager checkedStateManager = new CheckedStateManager(); List <OutOfDateItemsByMount> outOfDateItemsByMount = new List <OutOfDateItemsByMount>(); List <GluonFileConflict> fileConflicts = new List <GluonFileConflict>(); outOfDateItemsByMount.Add(outOfDateItems); IncomingChangesTree innerTree = IncomingChangesTree.BuildIncomingChangeCategories( checkedStateManager, outOfDateItemsByMount, fileConflicts); UnityIncomingChangesTree tree = UnityIncomingChangesTree.BuildIncomingChangeCategories(innerTree); IncomingChangeInfo changeInfo = FindChangeInfo.FromDifference( changed, tree); IncomingChangeInfo deleteInfo = FindChangeInfo.FromDifference( deletedMeta, tree); Assert.IsNotNull( changeInfo, "ChangeInfo not found"); Assert.IsNotNull( deleteInfo, "DeleteInfo not found"); Assert.IsNull( tree.GetMetaChange(changeInfo), "Meta change should be null"); }
public void TestChangedMovedWithMeta() { MergeTreeResult conflicts = new MergeTreeResult(); MountPointWithPath rootMountPointWithPath = BuildRootMountPointWithPath(); FileConflict fileConflict = BuildMergeTreeResult.CreateFileConflict("/foo/var.c"); FileConflict fileConflictMeta = BuildMergeTreeResult.CreateFileConflict("/foo/var.c.meta"); Difference difference = BuildMergeTreeResult.CreateMovedDifference("/foo/bar.c", "/foo/var.c"); Difference differenceMeta = BuildMergeTreeResult.CreateMovedDifference("/foo/bar.c.meta", "/foo/var.c.meta"); conflicts.FilesModifiedOnSource.Add(fileConflict); conflicts.FilesModifiedOnSource.Add(fileConflictMeta); conflicts.MovesToApply.Add(difference); conflicts.MovesToApply.Add(differenceMeta); UnityIncomingChangesTree tree = UnityIncomingChangesTree.BuildIncomingChangeCategories( IncomingChangesTree.BuildIncomingChangeCategories( conflicts, new GetConflictResolutionMock(), rootMountPointWithPath)); IncomingChangeInfo fileChangeInfo = FindChangeInfo.FromFileConflict( fileConflict, tree); IncomingChangeInfo differenceChangeInfo = FindChangeInfo.FromDifference( difference, tree); Assert.IsNotNull( fileChangeInfo, "FileConflict not found"); Assert.IsNotNull( differenceChangeInfo, "Difference not found"); Assert.IsNotNull( tree.GetMetaChange(fileChangeInfo), "Meta change for file conflict not should be null"); Assert.IsNotNull( tree.GetMetaChange(differenceChangeInfo), "Meta change for difference not should be null"); }
void OnSelectionChanged() { List <RepObjectInfo> selectedChangesets = ChangesetsSelection. GetSelectedRepObjectInfos(mChangesetsListView); if (selectedChangesets.Count != 1) { return; } mDiffPanel.UpdateInfo( MountPointWithPath.BuildWorkspaceRootMountPoint( ChangesetsSelection.GetSelectedRepository(mChangesetsListView)), (ChangesetExtendedInfo)selectedChangesets[0]); }
static void DoFileConflictsArea( IncomingChangesTreeView incomingChangesTreeView, MergeTreeResult conflicts, MergeSolvedFileConflicts solvedConflicts, MountPointWithPath mount, bool isOperationRunning) { DoConflictsHeader( conflicts, solvedConflicts, mount); DoConflictsTree( incomingChangesTreeView, isOperationRunning); }
public void TestChangedWithDeletedMeta() { MergeTreeResult conflicts = new MergeTreeResult(); MountPointWithPath rootMountPointWithPath = BuildRootMountPointWithPath(); FileConflict modified = BuildMergeTreeResult.CreateModifiedDifference("/foo/bar.c"); Difference deletedMeta = BuildMergeTreeResult.CreateDeletedDifference("/foo/bar.c.meta"); conflicts.FilesModifiedOnSource.Add(modified); conflicts.DeletesToApply.Add(deletedMeta); UnityIncomingChangesTree tree = UnityIncomingChangesTree.BuildIncomingChangeCategories( IncomingChangesTree.BuildIncomingChangeCategories( conflicts, new GetConflictResolutionMock(), rootMountPointWithPath)); IncomingChangeInfo changeInfo = FindChangeInfo.FromFileConflict( modified, tree); IncomingChangeInfo deleteInfo = FindChangeInfo.FromDifference( deletedMeta, tree); Assert.IsNotNull( changeInfo, "ChangeInfo not found"); Assert.IsNotNull( deleteInfo, "DeleteInfo not found"); Assert.IsNull( tree.GetMetaChange(changeInfo), "Meta change should be null"); }
static void DoConflictsHeader( MergeTreeResult conflicts, MergeSolvedFileConflicts solvedFileConflicts, MountPointWithPath mount) { if (conflicts == null || mount == null) { return; } EditorGUILayout.BeginHorizontal(); DoDirectoryConflictsHeader(conflicts); DoFileConflictsHeader( conflicts, solvedFileConflicts, mount); GUILayout.FlexibleSpace(); EditorGUILayout.EndHorizontal(); }
void UpdateOverview( MergeTreeResult resultConflicts, MergeSolvedFileConflicts solvedFileConflicts, MountPointWithPath rootMountPoint) { if (resultConflicts == null || rootMountPoint == null) { mChangesSummary = new MergeViewTexts.ChangesToApplySummary(); mFileConflictCount = 0; mDirectoryConflictCount = 0; return; } mChangesSummary = MergeTreeResultParser. GetChangesToApplySummary(resultConflicts); mFileConflictCount = MergeTreeResultParser.GetUnsolvedFileConflictsCount( resultConflicts, rootMountPoint.Id, solvedFileConflicts); mDirectoryConflictCount = MergeTreeResultParser.GetUnsolvedDirectoryConflictsCount( resultConflicts); }
List <ClientDiff> IPlasticAPI.GetChangesetDifferences(MountPointWithPath mount, ChangesetInfo csetInfo) { throw new NotImplementedException(); }