VcsTestUtil.editFileInCommand(myProject, myBranchTree.myS1File, "edited in branch");
runInAndVerifyIgnoreOutput(myBranchRoot, "ci", "-m", "change in branch", myBranchTree.myS1File.getPath());
- final QuickMerge quickMerge = newQuickMerge(myBranchUrl);
- // by default merges all
- QuickMergeTestInteraction testInteraction = new QuickMergeTestInteraction(true);
- final WaitingTaskDescriptor descriptor = new WaitingTaskDescriptor();
- ApplicationManager.getApplication().invokeLater(new Runnable() {
- @Override
- public void run() {
- quickMerge.execute(testInteraction, descriptor);
- }
- });
- descriptor.waitForCompletion();
- testInteraction.throwIfExceptions();
-
- Assert.assertTrue(descriptor.isCompleted());
+ waitQuickMerge(myBranchUrl, new QuickMergeTestInteraction(true));
VcsDirtyScopeManager.getInstance(myProject).markEverythingDirty();
myChangeListManager.ensureUpToDate(false);
}
// we should get exactly 2 revisions for selection (copy and change in b2)
- final QuickMerge quickMerge = newQuickMerge(myBranchUrl);
- // by default merges all
- final AtomicReference<String> selectionError = new AtomicReference<>();
+ AtomicReference<String> selectionError = new AtomicReference<>();
QuickMergeTestInteraction testInteraction = new QuickMergeTestInteraction(true) {
@NotNull
@Override
}
};
testInteraction.setMergeVariant(QuickMergeContentsVariants.showLatest);
- final WaitingTaskDescriptor descriptor = new WaitingTaskDescriptor();
- ApplicationManager.getApplication().invokeLater(new Runnable() {
- @Override
- public void run() {
- quickMerge.execute(testInteraction, descriptor);
- }
- });
- descriptor.waitForCompletion();
- testInteraction.throwIfExceptions();
+
+ waitQuickMerge(myBranchUrl, testInteraction);
+
if (selectionError.get() != null){
throw new RuntimeException(selectionError.get());
}
- Assert.assertTrue(descriptor.isCompleted());
-
VcsDirtyScopeManager.getInstance(myProject).markEverythingDirty();
myChangeListManager.ensureUpToDate(false);
runInAndVerifyIgnoreOutput(myBranchRoot, "ci", "-m", "change in b2", myBranchTree.myS2File.getPath());
// we should get exactly 2 revisions for selection (copy and change in b2)
- final QuickMerge quickMerge = newQuickMerge(myRepoUrl + "/branches/b2");
- // by default merges all
- final AtomicReference<String> selectionError = new AtomicReference<>();
+ AtomicReference<String> selectionError = new AtomicReference<>();
QuickMergeTestInteraction testInteraction = new QuickMergeTestInteraction(true) {
@NotNull
@Override
}
};
testInteraction.setMergeVariant(QuickMergeContentsVariants.showLatest);
- final WaitingTaskDescriptor descriptor = new WaitingTaskDescriptor();
- ApplicationManager.getApplication().invokeLater(new Runnable() {
- @Override
- public void run() {
- quickMerge.execute(testInteraction, descriptor);
- }
- });
- descriptor.waitForCompletion();
- testInteraction.throwIfExceptions();
+
+ waitQuickMerge(myRepoUrl + "/branches/b2", testInteraction);
+
if (selectionError.get() != null){
throw new RuntimeException(selectionError.get());
}
- Assert.assertTrue(descriptor.isCompleted());
-
VcsDirtyScopeManager.getInstance(myProject).markEverythingDirty();
myChangeListManager.ensureUpToDate(false);
Thread.sleep(10);
}
- final QuickMerge quickMerge = newQuickMerge(myBranchUrl);
- // by default merges all
QuickMergeTestInteraction testInteraction = new QuickMergeTestInteraction(true) {
@NotNull
@Override
}
};
testInteraction.setMergeVariant(QuickMergeContentsVariants.select);
- final WaitingTaskDescriptor descriptor = new WaitingTaskDescriptor();
- ApplicationManager.getApplication().invokeLater(new Runnable() {
- @Override
- public void run() {
- quickMerge.execute(testInteraction, descriptor);
- }
- });
- descriptor.waitForCompletion();
- testInteraction.throwIfExceptions();
- Assert.assertTrue(descriptor.isCompleted());
+ waitQuickMerge(myBranchUrl, testInteraction);
VcsDirtyScopeManager.getInstance(myProject).markEverythingDirty();
myChangeListManager.ensureUpToDate(false);
myTree = new SubTree(myWorkingCopyDir); //reload
refreshSvnMappingsSynchronously();
- final QuickMerge quickMerge = newQuickMerge(trunkUrl);
- // by default merges all
- QuickMergeTestInteraction testInteraction = new QuickMergeTestInteraction(false);
- final WaitingTaskDescriptor descriptor = new WaitingTaskDescriptor();
- ApplicationManager.getApplication().invokeLater(new Runnable() {
- @Override
- public void run() {
- quickMerge.execute(testInteraction, descriptor);
- }
- });
- descriptor.waitForCompletion();
- testInteraction.throwIfExceptions();
- Assert.assertTrue(descriptor.isCompleted());
+ waitQuickMerge(trunkUrl, new QuickMergeTestInteraction(false));
VcsDirtyScopeManager.getInstance(myProject).markEverythingDirty();
myChangeListManager.ensureUpToDate(false);
Assert.assertEquals(FileStatus.MODIFIED, dirChange.getFileStatus());
}
- private QuickMerge newQuickMerge(@NotNull String sourceUrl) {
+ private void waitQuickMerge(@NotNull String sourceUrl, @NotNull QuickMergeTestInteraction interaction) throws Exception {
MergeContext mergeContext = new MergeContext(myVcs, sourceUrl, getWcInfo(), SVNPathUtil.tail(sourceUrl), myWorkingCopyDir);
+ QuickMerge quickMerge = new QuickMerge(mergeContext);
+ WaitingTaskDescriptor descriptor = new WaitingTaskDescriptor();
+
+ ApplicationManager.getApplication().invokeLater(() -> quickMerge.execute(interaction, descriptor));
- return new QuickMerge(mergeContext);
+ descriptor.waitForCompletion();
+ interaction.throwIfExceptions();
+
+ Assert.assertTrue(descriptor.isCompleted());
}
private static class WaitingTaskDescriptor extends TaskDescriptor {