@Test public void testSetActive() throws Exception { enableSilentOperation(VcsConfiguration.StandardConfirmation.ADD); final VirtualFile file = createFileInCommand("a.txt", "old content"); final ChangeListManager changeListManager = ChangeListManager.getInstance(myProject); changeListManager.ensureUpToDate(false); final LocalChangeList list = changeListManager.addChangeList("test", null); final LocalChangeList target = changeListManager.addChangeList("target", null); changeListManager.moveChangesTo(list, new Change[] {changeListManager.getChange(file)}); myScheme.doTest( new Runnable() { @Override public void run() { changeListManager.setDefaultChangeList(target); assert changeListManager.getDefaultChangeList().getName().equals(target.getName()); } }); assert changeListManager.getDefaultChangeList().getName().equals(target.getName()); changeListManager.ensureUpToDate(false); assert changeListManager.getDefaultChangeList().getName().equals(target.getName()); }
@Test public void testDoubleMoveBack() throws Exception { enableSilentOperation(VcsConfiguration.StandardConfirmation.ADD); final VirtualFile file = createFileInCommand("a.txt", "old content"); final ChangeListManager changeListManager = ChangeListManager.getInstance(myProject); changeListManager.ensureUpToDate(false); final LocalChangeList list = changeListManager.addChangeList("test", null); final LocalChangeList target = changeListManager.addChangeList("target", null); changeListManager.moveChangesTo(list, new Change[] {changeListManager.getChange(file)}); myScheme.doTest( new Runnable() { @Override public void run() { changeListManager.moveChangesTo( target, new Change[] {changeListManager.getChange(file)}); checkFilesAreInList(new VirtualFile[] {file}, target.getName(), changeListManager); changeListManager.moveChangesTo(list, new Change[] {changeListManager.getChange(file)}); checkFilesAreInList(new VirtualFile[] {file}, list.getName(), changeListManager); } }); checkFilesAreInList(new VirtualFile[] {file}, list.getName(), changeListManager); changeListManager.ensureUpToDate(false); checkFilesAreInList(new VirtualFile[] {file}, list.getName(), changeListManager); }
@Test public void testComplex() throws Exception { enableSilentOperation(VcsConfiguration.StandardConfirmation.ADD); final VirtualFile file = createFileInCommand("a.txt", "old content"); final VirtualFile fileB = createFileInCommand("b.txt", "old content"); final VirtualFile fileC = createFileInCommand("c.txt", "old content"); final VirtualFile fileD = createFileInCommand("d.txt", "old content"); final ChangeListManager changeListManager = ChangeListManager.getInstance(myProject); final LocalChangeList list = changeListManager.addChangeList("test", null); final LocalChangeList toBeDeletedList = changeListManager.addChangeList("toBeDeletedList", null); changeListManager.moveChangesTo( list, new Change[] {changeListManager.getChange(file), changeListManager.getChange(fileB)}); changeListManager.moveChangesTo( toBeDeletedList, new Change[] {changeListManager.getChange(fileC), changeListManager.getChange(fileD)}); changeListManager.ensureUpToDate(false); final String targetName = "target"; final String finalName = "final list name"; myScheme.doTest( new Runnable() { @Override public void run() { final LocalChangeList target = changeListManager.addChangeList(targetName, null); changeListManager.moveChangesTo( target, new Change[] { changeListManager.getChange(file), changeListManager.getChange(fileB) }); checkFilesAreInList(new VirtualFile[] {file, fileB}, targetName, changeListManager); changeListManager.editName(targetName, finalName); checkFilesAreInList(new VirtualFile[] {file, fileB}, finalName, changeListManager); changeListManager.removeChangeList(toBeDeletedList.getName()); checkFilesAreInList( new VirtualFile[] {fileC, fileD}, myDefaulListName, changeListManager); changeListManager.moveChangesTo( LocalChangeList.createEmptyChangeList(myProject, finalName), new Change[] {changeListManager.getChange(fileC)}); checkFilesAreInList( new VirtualFile[] {file, fileB, fileC}, finalName, changeListManager); checkFilesAreInList(new VirtualFile[] {fileD}, myDefaulListName, changeListManager); } }); checkFilesAreInList(new VirtualFile[] {file, fileB, fileC}, finalName, changeListManager); checkFilesAreInList(new VirtualFile[] {fileD}, myDefaulListName, changeListManager); changeListManager.ensureUpToDate(false); checkFilesAreInList(new VirtualFile[] {file, fileB, fileC}, finalName, changeListManager); checkFilesAreInList(new VirtualFile[] {fileD}, myDefaulListName, changeListManager); }
@Test public void testRemove() throws Exception { enableSilentOperation(VcsConfiguration.StandardConfirmation.ADD); final VirtualFile file = createFileInCommand("a.txt", "old content"); final VirtualFile fileB = createFileInCommand("b.txt", "old content"); final ChangeListManager changeListManager = ChangeListManager.getInstance(myProject); changeListManager.ensureUpToDate(false); final LocalChangeList list = changeListManager.addChangeList("test", null); changeListManager.moveChangesTo(list, new Change[] {changeListManager.getChange(file)}); myScheme.doTest( new Runnable() { @Override public void run() { changeListManager.removeChangeList(list.getName()); assert changeListManager.findChangeList(list.getName()) == null; checkFilesAreInList( new VirtualFile[] {file, fileB}, myDefaulListName, changeListManager); } }); assert changeListManager.findChangeList(list.getName()) == null; checkFilesAreInList(new VirtualFile[] {file, fileB}, myDefaulListName, changeListManager); changeListManager.ensureUpToDate(false); assert changeListManager.findChangeList(list.getName()) == null; checkFilesAreInList(new VirtualFile[] {file, fileB}, myDefaulListName, changeListManager); }
@Nullable public LocalChangeList getSelectedList(Project project) { ChangeListManager manager = ChangeListManager.getInstance(project); if (myRbNew.isSelected()) { String newText = myNewListPanel.getChangeListName(); if (manager.findChangeList(newText) != null) { Messages.showErrorDialog( project, VcsBundle.message("changes.newchangelist.warning.already.exists.text", newText), VcsBundle.message("changes.newchangelist.warning.already.exists.title")); return null; } } final boolean existingSelected = myRbExisting.isSelected(); VcsConfiguration.getInstance(myProject).PRESELECT_EXISTING_CHANGELIST = existingSelected; if (existingSelected) { return (LocalChangeList) myExistingListsCombo.getSelectedItem(); } else { LocalChangeList changeList = manager.addChangeList( myNewListPanel.getChangeListName(), myNewListPanel.getDescription()); myNewListPanel.changelistCreatedOrChanged(changeList); if (myNewListPanel.getMakeActiveCheckBox().isSelected()) { manager.setDefaultChangeList(changeList); } VcsConfiguration.getInstance(project).MAKE_NEW_CHANGELIST_ACTIVE = myNewListPanel.getMakeActiveCheckBox().isSelected(); return changeList; } }
@Test public void testEditComment() throws Exception { enableSilentOperation(VcsConfiguration.StandardConfirmation.ADD); final VirtualFile file = createFileInCommand("a.txt", "old content"); final ChangeListManager changeListManager = ChangeListManager.getInstance(myProject); changeListManager.ensureUpToDate(false); final String listName = "test"; final LocalChangeList list = changeListManager.addChangeList(listName, null); changeListManager.moveChangesTo(list, new Change[] {changeListManager.getChange(file)}); final String finalText = "final text"; myScheme.doTest( new Runnable() { public void run() { final String intermediate = "intermediate text"; changeListManager.editComment(list.getName(), intermediate); assert changeListManager.findChangeList(listName) != null; LocalChangeList list = changeListManager.findChangeList(listName); assert intermediate.equals(list.getComment()); changeListManager.editComment(list.getName(), finalText); list = changeListManager.findChangeList(listName); assert finalText.equals(list.getComment()); } }); LocalChangeList changedList = changeListManager.findChangeList(listName); assert finalText.equals(changedList.getComment()); changeListManager.ensureUpToDate(false); changedList = changeListManager.findChangeList(listName); assert finalText.equals(changedList.getComment()); }
private void createChangeList(LocalTask task, String name, @Nullable String comment) { LocalChangeList changeList = myChangeListManager.findChangeList(name); if (changeList == null) { changeList = myChangeListManager.addChangeList(name, comment); } else { final LocalTask associatedTask = getAssociatedTask(changeList); if (associatedTask != null) { associatedTask.removeChangelist(new ChangeListInfo(changeList)); } changeList.setComment(comment); } task.addChangelist(new ChangeListInfo(changeList)); myChangeListManager.setDefaultChangeList(changeList); }
private LocalTask restoreVcsContext(LocalTask task) { if (!isVcsEnabled()) return task; List<ChangeListInfo> changeLists = task.getChangeLists(); if (!changeLists.isEmpty()) { ChangeListInfo info = changeLists.get(0); LocalChangeList changeList = myChangeListManager.getChangeList(info.id); if (changeList == null) { changeList = myChangeListManager.addChangeList(info.name, info.comment); info.id = changeList.getId(); } myChangeListManager.setDefaultChangeList(changeList); } List<BranchInfo> branches = task.getBranches(false); VcsTaskHandler.TaskInfo info = fromBranches(branches); VcsTaskHandler[] handlers = VcsTaskHandler.getAllHandlers(myProject); for (VcsTaskHandler handler : handlers) { handler.switchToTask(info); } return task; }
private void createChangelist(final ContinuationPause context) { final ChangeListManager listManager = ChangeListManager.getInstance(myProject); String name = myTitle; int i = 1; boolean updateDefaultList = false; while (true) { final LocalChangeList changeList = listManager.findChangeList(name); if (changeList == null) { final LocalChangeList newList = listManager.addChangeList(name, null); listManager.setDefaultChangeList(newList); updateDefaultList = true; break; } if (changeList.getChanges().isEmpty()) { if (!changeList.isDefault()) { listManager.setDefaultChangeList(changeList); updateDefaultList = true; } break; } name = myTitle + " (" + i + ")"; ++i; } if (updateDefaultList) { context.suspend(); listManager.invokeAfterUpdate( new Runnable() { public void run() { context.ping(); } }, InvokeAfterUpdateMode.BACKGROUND_NOT_CANCELLABLE_NOT_AWT, "", ModalityState.NON_MODAL); } }