This commit was manufactured by cvs2svn to create branch 'Bug_38048'.

Sprout from master 2003-07-03 19:57:18 UTC Jean Michel-Lemieux <jlemieux> 'updating for changes to IJobChangeEvent'
Delete:
    bundles/org.eclipse.compare/.classpath
    bundles/org.eclipse.compare/.cvsignore
    bundles/org.eclipse.compare/.project
    bundles/org.eclipse.compare/about.html
    bundles/org.eclipse.compare/build.properties
    bundles/org.eclipse.compare/buildnotes_compare.html
    bundles/org.eclipse.compare/compare/org/eclipse/compare/BufferedContent.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/CompareConfiguration.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/CompareEditorInput.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/CompareUI.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/CompareViewerPane.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/CompareViewerSwitchingPane.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/EditionSelectionDialog.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/HistoryItem.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/IContentChangeListener.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/IContentChangeNotifier.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/IEditableContent.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/IModificationDate.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/IPropertyChangeNotifier.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/IStreamContentAccessor.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/ITypedElement.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/IViewerCreator.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/NavigationAction.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/ResourceNode.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/Splitter.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/ZipFileStructureCreator.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/ContentMergeViewer.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/DelayedProgressMonitor.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/IDocumentRange.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/IMergeViewerContentProvider.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/ITokenComparator.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewer.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewerResources.properties
    bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/package.html
    bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/AbstractViewer.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/AddFromHistoryAction.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/AddFromHistoryAction.properties
    bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/AddFromHistoryDialog.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/BinaryCompareViewer.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/BinaryCompareViewerCreator.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/BinaryCompareViewerResources.properties
    bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/BufferedCanvas.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/BufferedResourceNode.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ChangePropertyAction.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ColorEditor.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareAction.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareDialog.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareEditor.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareEditorContributor.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareMessages.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareMessages.properties
    bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareNavigator.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ComparePreferencePage.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareUIPlugin.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareWithEditionAction.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareWithEditionAction.properties
    bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/DiffImage.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/DocLineComparator.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/DocumentManager.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/EditionAction.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ExceptionHandler.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ICompareContextIds.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/INavigatable.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/IOpenable.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ISavable.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/IStructureCreatorDescriptor.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/IViewerDescriptor.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/IgnoreWhiteSpaceAction.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ImageCanvas.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ImageMergeViewer.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ImageMergeViewerCreator.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ImageMergeViewerResources.properties
    bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ListContentProvider.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ListDialog.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/MergeSourceViewer.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/MergeViewerAction.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/MergeViewerContentProvider.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/NullViewer.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/OverlayPreferenceStore.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ReplaceWithEditionAction.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ReplaceWithEditionAction.properties
    bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ReplaceWithPreviousEditionAction.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ResizableDialog.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ResourceCompareInput.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ShowPseudoConflicts.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/SimpleTextViewer.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/TabFolderLayout.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/TextMergeViewerCreator.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/TextViewerCreator.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/TimeoutContext.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/TokenComparator.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/Utilities.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ViewerDescriptor.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ViewerSwitchingCancelled.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/CompareWithPatchAction.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/Diff.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/Hunk.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/InputPatchPage.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/LineReader.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatchErrorDialog.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatchMessages.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatchMessages.properties
    bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatchWizard.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/Patcher.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PreviewPatchPage.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/package.html
    bundles/org.eclipse.compare/compare/org/eclipse/compare/rangedifferencer/DifferencesIterator.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/rangedifferencer/IRangeComparator.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/rangedifferencer/LinkedRangeDifference.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/rangedifferencer/RangeDifference.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/rangedifferencer/RangeDifferencer.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/rangedifferencer/package.html
    bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DiffContainer.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DiffElement.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DiffNode.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DiffTreeViewer.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DiffTreeViewerResources.properties
    bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/Differencer.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DocumentRangeNode.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/ICompareInput.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/ICompareInputChangeListener.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/IDiffContainer.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/IDiffElement.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/IStructureComparator.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/IStructureCreator.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/StructureDiffViewer.java
    bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/package.html
    bundles/org.eclipse.compare/icons/full/clcl16/ancestorpane_co.gif
    bundles/org.eclipse.compare/icons/full/clcl16/copy_l_co.gif
    bundles/org.eclipse.compare/icons/full/clcl16/copy_r_co.gif
    bundles/org.eclipse.compare/icons/full/clcl16/copycont_l_co.gif
    bundles/org.eclipse.compare/icons/full/clcl16/copycont_r_co.gif
    bundles/org.eclipse.compare/icons/full/clcl16/next_nav.gif
    bundles/org.eclipse.compare/icons/full/clcl16/prev_nav.gif
    bundles/org.eclipse.compare/icons/full/clcl16/smartmode_co.gif
    bundles/org.eclipse.compare/icons/full/clcl16/syncpane_co.gif
    bundles/org.eclipse.compare/icons/full/clcl16/twowaycompare_co.gif
    bundles/org.eclipse.compare/icons/full/ctool16/conflict_edit.gif
    bundles/org.eclipse.compare/icons/full/ctool16/ignorews_edit.gif
    bundles/org.eclipse.compare/icons/full/cview16/compare_view.gif
    bundles/org.eclipse.compare/icons/full/dlcl16/ancestorpane_co.gif
    bundles/org.eclipse.compare/icons/full/dlcl16/copy_l_co.gif
    bundles/org.eclipse.compare/icons/full/dlcl16/copy_r_co.gif
    bundles/org.eclipse.compare/icons/full/dlcl16/copycont_l_co.gif
    bundles/org.eclipse.compare/icons/full/dlcl16/copycont_r_co.gif
    bundles/org.eclipse.compare/icons/full/dlcl16/next_nav.gif
    bundles/org.eclipse.compare/icons/full/dlcl16/prev_nav.gif
    bundles/org.eclipse.compare/icons/full/dlcl16/smartmode_co.gif
    bundles/org.eclipse.compare/icons/full/dlcl16/syncpane_co.gif
    bundles/org.eclipse.compare/icons/full/dlcl16/twowaycompare_co.gif
    bundles/org.eclipse.compare/icons/full/dtool16/conflict_edit.gif
    bundles/org.eclipse.compare/icons/full/dtool16/ignorews_edit.gif
    bundles/org.eclipse.compare/icons/full/elcl16/ancestorpane_co.gif
    bundles/org.eclipse.compare/icons/full/elcl16/copy_l_co.gif
    bundles/org.eclipse.compare/icons/full/elcl16/copy_r_co.gif
    bundles/org.eclipse.compare/icons/full/elcl16/copycont_l_co.gif
    bundles/org.eclipse.compare/icons/full/elcl16/copycont_r_co.gif
    bundles/org.eclipse.compare/icons/full/elcl16/next_nav.gif
    bundles/org.eclipse.compare/icons/full/elcl16/prev_nav.gif
    bundles/org.eclipse.compare/icons/full/elcl16/smartmode_co.gif
    bundles/org.eclipse.compare/icons/full/elcl16/syncpane_co.gif
    bundles/org.eclipse.compare/icons/full/elcl16/twowaycompare_co.gif
    bundles/org.eclipse.compare/icons/full/etool16/conflict_edit.gif
    bundles/org.eclipse.compare/icons/full/etool16/ignorews_edit.gif
    bundles/org.eclipse.compare/icons/full/eview16/compare_view.gif
    bundles/org.eclipse.compare/icons/full/obj16/day_obj.gif
    bundles/org.eclipse.compare/icons/full/obj16/resource_obj.gif
    bundles/org.eclipse.compare/icons/full/ovr16/add_ov.gif
    bundles/org.eclipse.compare/icons/full/ovr16/chg_ov.gif
    bundles/org.eclipse.compare/icons/full/ovr16/confadd_ov.gif
    bundles/org.eclipse.compare/icons/full/ovr16/confchg_ov.gif
    bundles/org.eclipse.compare/icons/full/ovr16/confdel_ov.gif
    bundles/org.eclipse.compare/icons/full/ovr16/del_ov.gif
    bundles/org.eclipse.compare/icons/full/ovr16/error_ov.gif
    bundles/org.eclipse.compare/icons/full/ovr16/inadd_ov.gif
    bundles/org.eclipse.compare/icons/full/ovr16/inchg_ov.gif
    bundles/org.eclipse.compare/icons/full/ovr16/indel_ov.gif
    bundles/org.eclipse.compare/icons/full/ovr16/outadd_ov.gif
    bundles/org.eclipse.compare/icons/full/ovr16/outchg_ov.gif
    bundles/org.eclipse.compare/icons/full/ovr16/outdel_ov.gif
    bundles/org.eclipse.compare/icons/full/ovr16/r_inadd_ov.gif
    bundles/org.eclipse.compare/icons/full/ovr16/r_inchg_ov.gif
    bundles/org.eclipse.compare/icons/full/ovr16/r_indel_ov.gif
    bundles/org.eclipse.compare/icons/full/ovr16/r_outadd_ov.gif
    bundles/org.eclipse.compare/icons/full/ovr16/r_outchg_ov.gif
    bundles/org.eclipse.compare/icons/full/ovr16/r_outdel_ov.gif
    bundles/org.eclipse.compare/icons/full/wizban/applypatch_wizban.gif
    bundles/org.eclipse.compare/plugin.properties
    bundles/org.eclipse.compare/plugin.xml
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/.classpath
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/.cvsignore
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/.project
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/about.html
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/build.properties
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/buildnotes_compare.html
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/BufferedContent.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/CompareConfiguration.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/CompareEditorInput.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/CompareUI.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/CompareViewerPane.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/CompareViewerSwitchingPane.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/EditionSelectionDialog.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/HistoryItem.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/IContentChangeListener.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/IContentChangeNotifier.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/IEditableContent.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/IModificationDate.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/IPropertyChangeNotifier.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/IStreamContentAccessor.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/ITypedElement.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/IViewerCreator.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/NavigationAction.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/ResourceNode.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/Splitter.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/ZipFileStructureCreator.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/ContentMergeViewer.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/DelayedProgressMonitor.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/IDocumentRange.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/IMergeViewerContentProvider.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/ITokenComparator.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewer.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewerResources.properties
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/package.html
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/AbstractViewer.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/AddFromHistoryAction.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/AddFromHistoryAction.properties
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/AddFromHistoryDialog.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/BinaryCompareViewer.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/BinaryCompareViewerCreator.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/BinaryCompareViewerResources.properties
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/BufferedCanvas.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/BufferedResourceNode.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ChangePropertyAction.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ColorEditor.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareAction.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareDialog.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareEditor.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareEditorContributor.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareMessages.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareMessages.properties
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareNavigator.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ComparePreferencePage.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareUIPlugin.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareWithEditionAction.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareWithEditionAction.properties
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/DiffImage.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/DocLineComparator.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/DocumentManager.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/EditionAction.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ExceptionHandler.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ICompareContextIds.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/INavigatable.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/IOpenable.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ISavable.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/IStructureCreatorDescriptor.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/IViewerDescriptor.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/IgnoreWhiteSpaceAction.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ImageCanvas.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ImageMergeViewer.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ImageMergeViewerCreator.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ImageMergeViewerResources.properties
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ListContentProvider.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ListDialog.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/MergeSourceViewer.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/MergeViewerAction.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/MergeViewerContentProvider.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/NullViewer.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/OverlayPreferenceStore.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ReplaceWithEditionAction.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ReplaceWithEditionAction.properties
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ReplaceWithPreviousEditionAction.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ResizableDialog.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ResourceCompareInput.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ShowPseudoConflicts.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/SimpleTextViewer.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/TabFolderLayout.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/TextMergeViewerCreator.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/TextViewerCreator.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/TimeoutContext.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/TokenComparator.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/Utilities.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ViewerDescriptor.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ViewerSwitchingCancelled.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/Attic/LineReader.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/CompareWithPatchAction.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/Diff.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/Hunk.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/InputPatchPage.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/LineReader.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatchErrorDialog.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatchMessages.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatchMessages.properties
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatchWizard.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/Patcher.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PreviewPatchPage.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/package.html
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/rangedifferencer/DifferencesIterator.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/rangedifferencer/IRangeComparator.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/rangedifferencer/LinkedRangeDifference.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/rangedifferencer/RangeDifference.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/rangedifferencer/RangeDifferencer.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/rangedifferencer/package.html
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DiffContainer.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DiffElement.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DiffNode.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DiffTreeViewer.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DiffTreeViewerResources.properties
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/Differencer.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DocumentRangeNode.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/ICompareInput.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/ICompareInputChangeListener.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/IDiffContainer.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/IDiffElement.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/IStructureComparator.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/IStructureCreator.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/StructureDiffViewer.java
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/package.html
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/clcl16/ancestorpane_co.gif
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/clcl16/copy_l_co.gif
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/clcl16/copy_r_co.gif
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/clcl16/copycont_l_co.gif
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/clcl16/copycont_r_co.gif
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/clcl16/next_nav.gif
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/clcl16/prev_nav.gif
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/clcl16/smartmode_co.gif
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/clcl16/syncpane_co.gif
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/clcl16/twowaycompare_co.gif
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ctool16/conflict_edit.gif
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ctool16/ignorews_edit.gif
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/cview16/compare_view.gif
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/dlcl16/ancestorpane_co.gif
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/dlcl16/copy_l_co.gif
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/dlcl16/copy_r_co.gif
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/dlcl16/copycont_l_co.gif
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/dlcl16/copycont_r_co.gif
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/dlcl16/next_nav.gif
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/dlcl16/prev_nav.gif
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/dlcl16/smartmode_co.gif
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/dlcl16/syncpane_co.gif
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/dlcl16/twowaycompare_co.gif
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/dtool16/conflict_edit.gif
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/dtool16/ignorews_edit.gif
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/elcl16/ancestorpane_co.gif
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/elcl16/copy_l_co.gif
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/elcl16/copy_r_co.gif
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/elcl16/copycont_l_co.gif
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/elcl16/copycont_r_co.gif
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/elcl16/next_nav.gif
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/elcl16/prev_nav.gif
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/elcl16/smartmode_co.gif
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/elcl16/syncpane_co.gif
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/elcl16/twowaycompare_co.gif
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/etool16/conflict_edit.gif
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/etool16/ignorews_edit.gif
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/eview16/compare_view.gif
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/obj16/day_obj.gif
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/obj16/resource_obj.gif
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/add_ov.gif
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/chg_ov.gif
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/confadd_ov.gif
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/confchg_ov.gif
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/confdel_ov.gif
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/del_ov.gif
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/error_ov.gif
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/inadd_ov.gif
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/inchg_ov.gif
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/indel_ov.gif
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/outadd_ov.gif
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/outchg_ov.gif
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/outdel_ov.gif
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/r_inadd_ov.gif
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/r_inchg_ov.gif
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/r_indel_ov.gif
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/r_outadd_ov.gif
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/r_outchg_ov.gif
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/r_outdel_ov.gif
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/wizban/applypatch_wizban.gif
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/plugin.properties
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/plugin.xml
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/schema/contentMergeViewers.exsd
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/schema/contentViewers.exsd
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/schema/structureCreators.exsd
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/schema/structureMergeViewers.exsd
    bundles/org.eclipse.compare/plugins/org.eclipse.compare/scripts/exportplugin.xml
    bundles/org.eclipse.compare/schema/contentMergeViewers.exsd
    bundles/org.eclipse.compare/schema/contentViewers.exsd
    bundles/org.eclipse.compare/schema/structureCreators.exsd
    bundles/org.eclipse.compare/schema/structureMergeViewers.exsd
    bundles/org.eclipse.compare/scripts/exportplugin.xml
    bundles/org.eclipse.team.cvs.ssh/.classpath
    bundles/org.eclipse.team.cvs.ssh/.cvsignore
    bundles/org.eclipse.team.cvs.ssh/.options
    bundles/org.eclipse.team.cvs.ssh/.project
    bundles/org.eclipse.team.cvs.ssh/about.html
    bundles/org.eclipse.team.cvs.ssh/build.properties
    bundles/org.eclipse.team.cvs.ssh/plugin.properties
    bundles/org.eclipse.team.cvs.ssh/plugin.xml
    bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/Blowfish.java
    bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/Cipher.java
    bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/Client.java
    bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/ClientPacket.java
    bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/KnownHosts.java
    bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/Misc.java
    bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/Packet.java
    bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/Policy.java
    bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/SSHMethod.java
    bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/SSHPlugin.java
    bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/SSHServerConnection.java
    bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/ServerPacket.java
    bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/messages.properties
    examples/org.eclipse.compare.examples/.cvsignore
    examples/org.eclipse.compare.examples/.project
    examples/org.eclipse.compare.examples/about.html
    examples/org.eclipse.compare.examples/build.properties
    examples/org.eclipse.compare.examples/doc-html/hglegal.htm
    examples/org.eclipse.compare.examples/doc-html/ngibmcpy.gif
    examples/org.eclipse.compare.examples/doc-html/ui_structurecreator_ex.html
    examples/org.eclipse.compare.examples/plugin.properties
    examples/org.eclipse.compare.examples/plugin.xml
    examples/org.eclipse.compare.examples/src/org/eclipse/compare/examples/structurecreator/CompareExampleMessages.properties
    examples/org.eclipse.compare.examples/src/org/eclipse/compare/examples/structurecreator/KeyValuePairStructureCreator.java
    examples/org.eclipse.compare.examples/src/org/eclipse/compare/examples/structurecreator/TextMergeViewerCreator.java
    examples/org.eclipse.compare.examples/src/org/eclipse/compare/examples/structurecreator/Util.java
    examples/org.eclipse.team.examples.filesystem/.classpath
    examples/org.eclipse.team.examples.filesystem/.cvsignore
    examples/org.eclipse.team.examples.filesystem/.project
    examples/org.eclipse.team.examples.filesystem/about.html
    examples/org.eclipse.team.examples.filesystem/build.properties
    examples/org.eclipse.team.examples.filesystem/doc-html/hglegal.htm
    examples/org.eclipse.team.examples.filesystem/doc-html/ngibmcpy.gif
    examples/org.eclipse.team.examples.filesystem/doc-html/team_filesystem_ex.html
    examples/org.eclipse.team.examples.filesystem/icons/full/wizards/fsicon_wiz.gif
    examples/org.eclipse.team.examples.filesystem/icons/full/wizban/newconnect_wizban.gif
    examples/org.eclipse.team.examples.filesystem/plugin.properties
    examples/org.eclipse.team.examples.filesystem/plugin.xml
    examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/FileModificationValidator.java
    examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/FileSystemPlugin.java
    examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/FileSystemProvider.java
    examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/FileSystemRemoteResource.java
    examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/FileSystemSimpleAccessOperations.java
    examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/Policy.java
    examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/StreamUtil.java
    examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/messages.properties
    examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/ui/ConfigurationWizard.java
    examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/ui/DisconnectAction.java
    examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/ui/FileSystemAction.java
    examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/ui/FileSystemMainPage.java
    examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/ui/FileSystemPropertiesPage.java
    examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/ui/GetAction.java
    examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/ui/PutAction.java
    examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/ui/ReplaceAction.java
    tests/org.eclipse.compare.tests/.classpath
    tests/org.eclipse.compare.tests/.cvsignore
    tests/org.eclipse.compare.tests/.project
    tests/org.eclipse.compare.tests/JUnit Tests/org/eclipse/compare/tests/AllTests.java
    tests/org.eclipse.compare.tests/JUnit Tests/org/eclipse/compare/tests/DocLineComparatorTest.java
    tests/org.eclipse.compare.tests/about.html
    tests/org.eclipse.compare.tests/build.properties
    tests/org.eclipse.compare.tests/plugin.properties
    tests/org.eclipse.compare.tests/plugin.xml
    tests/org.eclipse.compare.tests/test.xml
    tests/org.eclipse.team.tests.core/.classpath
    tests/org.eclipse.team.tests.core/.cvsignore
    tests/org.eclipse.team.tests.core/.project
    tests/org.eclipse.team.tests.core/about.html
    tests/org.eclipse.team.tests.core/build-tests.xml
    tests/org.eclipse.team.tests.core/build.properties
    tests/org.eclipse.team.tests.core/ftp.properties
    tests/org.eclipse.team.tests.core/plugin.xml
    tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/core/AllTargetTests.java
    tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/core/AllTeamTests.java
    tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/core/RemoteResourceTests.java
    tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/core/RepositoryProviderBic.java
    tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/core/RepositoryProviderNaish.java
    tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/core/RepositoryProviderOtherSport.java
    tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/core/RepositoryProviderTests.java
    tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/core/RepositoryProviderTypeBic.java
    tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/core/RepositoryProviderWithLinking.java
    tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/core/StreamTests.java
    tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/core/SyncElementTest.java
    tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/core/TargetProviderTests.java
    tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/core/TargetTestSetup.java
    tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/core/TeamTest.java
    tests/org.eclipse.team.tests.core/test.xml
    tests/org.eclipse.team.tests.core/webdav.properties
    tests/org.eclipse.team.tests.cvs.core/.classpath
    tests/org.eclipse.team.tests.cvs.core/.cvsignore
    tests/org.eclipse.team.tests.cvs.core/.project
    tests/org.eclipse.team.tests.cvs.core/about.html
    tests/org.eclipse.team.tests.cvs.core/benchmark/cvsui_benchmark.bat
    tests/org.eclipse.team.tests.cvs.core/benchmark/readme.txt
    tests/org.eclipse.team.tests.cvs.core/benchmark/team2.0/2002_02_26.integration.all.xml
    tests/org.eclipse.team.tests.cvs.core/benchmark/team2.0/2002_03_19.integration.all.xml
    tests/org.eclipse.team.tests.cvs.core/benchmark/team2.0/2002_04_24.milestone5.all.xml
    tests/org.eclipse.team.tests.cvs.core/benchmark/team2.0/2002_04_25.integration.commandline.xml
    tests/org.eclipse.team.tests.cvs.core/benchmark/team2.0/2002_07_10.release2_0.commandline.xml
    tests/org.eclipse.team.tests.cvs.core/benchmark/team2.0/2002_07_11.release2_0.all.xml
    tests/org.eclipse.team.tests.cvs.core/benchmark/team2.1/I20021127.all.xml
    tests/org.eclipse.team.tests.cvs.core/benchmark/team2.1/I20030129.all.xml
    tests/org.eclipse.team.tests.cvs.core/benchmark/team2.1/RC1.all.xml
    tests/org.eclipse.team.tests.cvs.core/benchmark/teamui_benchmark.bat
    tests/org.eclipse.team.tests.cvs.core/benchmark/vcm1.0/2002_02_26.integration.all.xml
    tests/org.eclipse.team.tests.cvs.core/benchmark/vcmui_benchmark.bat
    tests/org.eclipse.team.tests.cvs.core/build-tests.xml
    tests/org.eclipse.team.tests.cvs.core/build.properties
    tests/org.eclipse.team.tests.cvs.core/launchConfigurations/CVS One Test.launch
    tests/org.eclipse.team.tests.cvs.core/launchConfigurations/CVS Provider Tests.launch
    tests/org.eclipse.team.tests.cvs.core/launchConfigurations/CVS Tests.launch
    tests/org.eclipse.team.tests.cvs.core/launchConfigurations/Test using Ant application.launch
    tests/org.eclipse.team.tests.cvs.core/launchConfigurations/benchmark/Benchmark Test.launch
    tests/org.eclipse.team.tests.cvs.core/launchConfigurations/benchmark/PrintDiffMain.launch
    tests/org.eclipse.team.tests.cvs.core/plugin.xml
    tests/org.eclipse.team.tests.cvs.core/readme.html
    tests/org.eclipse.team.tests.cvs.core/repository.properties
    tests/org.eclipse.team.tests.cvs.core/resources/BenchmarkTest/benchmarkBig.zip
    tests/org.eclipse.team.tests.cvs.core/resources/BenchmarkTest/benchmarkSmall.zip
    tests/org.eclipse.team.tests.cvs.core/resources/BenchmarkTest/benchmarkTiny.zip
    tests/org.eclipse.team.tests.cvs.core/resources/CommandTest/CVSROOT/modules
    tests/org.eclipse.team.tests.cvs.core/resources/CommandTest/common/docs/readme.html
    tests/org.eclipse.team.tests.cvs.core/resources/CommandTest/common/macros/macro1
    tests/org.eclipse.team.tests.cvs.core/resources/CommandTest/project1/f1/file-in-p1.txt
    tests/org.eclipse.team.tests.cvs.core/resources/CommandTest/project2/file-p2.txt
    tests/org.eclipse.team.tests.cvs.core/resources/CommandTest/project3/src/file.c
    tests/org.eclipse.team.tests.cvs.core/resources/CommandTest/project3/src/file.h
    tests/org.eclipse.team.tests.cvs.core/resources/CommandTest/project3/sub/file-sub.txt
    tests/org.eclipse.team.tests.cvs.core/resources/CommandTest/project7/common/common.txt
    tests/org.eclipse.team.tests.cvs.core/resources/CommandTest/project7/linux/linux.txt
    tests/org.eclipse.team.tests.cvs.core/resources/CommandTest/project7/pc/pc.txt
    tests/org.eclipse.team.tests.cvs.core/resources/CommandTest/project8/file-p8.txt
    tests/org.eclipse.team.tests.cvs.core/self-host.xml
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/AllTeamAndCVSTests.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/AllTests.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/CVSClientException.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/CVSTestSetup.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/CommandLineCVSClient.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/EclipseCVSClient.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/EclipseTest.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/ICVSClient.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/JUnitTestCase.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/TestConnection.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/TestConnectionMethod.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/compatible/AllTestsCompatibility.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/compatible/BasicTest.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/compatible/CompatibleTestSetup.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/compatible/ConflictTest.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/compatible/ModuleTest.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/compatible/SameResultEnv.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/cvsresources/AllTestsCVSResources.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/cvsresources/BatchedTestSetup.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/cvsresources/EclipseFolderTest.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/cvsresources/EclipseSynchronizerTest.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/cvsresources/ResourceSyncBytesTest.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/cvsresources/ResourceSyncInfoTest.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/AllTestsProvider.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/CVSProviderTest.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/ImportTest.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/IsModifiedTests.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/LinkResourcesTest.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/ModuleTest.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/RemoteResourceTest.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/ResourceDeltaTest.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/SyncElementTest.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/WatchEditTest.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/AllTestsTeamSubscriber.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/CVSMergeSubscriberTest.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/CVSSyncSubscriberTest.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/CVSWorkspaceSubscriberTest.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/CVSUITestCase.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/DummyPromptCondition.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/EclipseUITestHarnessApplication.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/EmptyPerspective.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/FakeSelectionProvider.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/ICriteria.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/LoggingTestCase.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/LoggingTestResult.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/LoggingTestRunner.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/PerformanceTimer.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/SequenceGenerator.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/Util.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/Waiter.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/benchmark/AllTests.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/benchmark/BenchmarkTestSetup.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/benchmark/CommandTests.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/benchmark/SyncTests.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/benchmark/WorkflowTests.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/ArgumentParser.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/CaseEntry.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/DelimitedValuesWriter.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/GroupEntry.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/ILogEntryVisitor.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/LogEntry.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/LogEntryContainer.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/LogFormatterUIMain.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/MergeRunsVisitor.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/PrintCSVDiffVisitor.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/PrintCSVSummaryVisitor.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/PrintDiffMain.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/PrintDiffVisitor.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/PrintSummaryMain.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/PrintTextDiffVisitor.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/PrintTextSummaryVisitor.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/Result.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/RootEntry.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/TaskEntry.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/Util.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/unit/CheckoutOperationTests.java
    tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/unit/MenuEnablementTest.java
    tests/org.eclipse.team.tests.cvs.core/test.xml
diff --git a/bundles/org.eclipse.compare/.classpath b/bundles/org.eclipse.compare/.classpath
deleted file mode 100644
index 8a49fb9..0000000
--- a/bundles/org.eclipse.compare/.classpath
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-    <classpathentry kind="src" path="compare"/>
-    <classpathentry kind="src" path="/org.eclipse.core.boot"/>
-    <classpathentry kind="src" path="/org.eclipse.core.runtime"/>
-    <classpathentry kind="src" path="/org.eclipse.ui"/>
-    <classpathentry kind="src" path="/org.eclipse.core.resources"/>
-    <classpathentry kind="src" path="/org.eclipse.swt"/>
-    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-    <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.compare/.cvsignore b/bundles/org.eclipse.compare/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/bundles/org.eclipse.compare/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/bundles/org.eclipse.compare/.project b/bundles/org.eclipse.compare/.project
deleted file mode 100644
index bf7d0f5..0000000
--- a/bundles/org.eclipse.compare/.project
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.compare</name>
-	<comment></comment>
-	<projects>
-		<project>org.eclipse.core.boot</project>
-		<project>org.eclipse.ui</project>
-		<project>org.eclipse.core.runtime</project>
-		<project>org.eclipse.core.resources</project>
-		<project>org.eclipse.swt</project>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.PluginNature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.compare/about.html b/bundles/org.eclipse.compare/about.html
deleted file mode 100644
index 9db411a..0000000
--- a/bundles/org.eclipse.compare/about.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>20th June, 2002</p>	
-<h3>License</h3>
-<p>Eclipse.org makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-Common Public License Version 1.0 (&quot;CPL&quot;).  A copy of the CPL is available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>.
-For purposes of the CPL, &quot;Program&quot; will mean the Content.</p>
-
-<h3>Contributions</h3>
-
-<p>If this Content is licensed to you under the terms and conditions of the CPL, any Contributions, as defined in the CPL, uploaded, submitted, or otherwise
-made available to Eclipse.org, members of Eclipse.org and/or the host of Eclipse.org web site, by you that relate to such
-Content are provided under the terms and conditions of the CPL and can be made available to others under the terms of the CPL.</p>
-
-<p>If this Content is licensed to you under license terms and conditions other than the CPL (&quot;Other License&quot;), any modifications, enhancements and/or
-other code and/or documentation (&quot;Modifications&quot;) uploaded, submitted, or otherwise made available to Eclipse.org, members of Eclipse.org and/or the
-host of Eclipse.org, by you that relate to such Content are provided under terms and conditions of the Other License and can be made available
-to others under the terms of the Other License.  In addition, with regard to Modifications for which you are the copyright holder, you are also
-providing the Modifications under the terms and conditions of the CPL and such Modifications can be made available to others under the terms of
-the CPL.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.compare/build.properties b/bundles/org.eclipse.compare/build.properties
deleted file mode 100644
index f9934a8..0000000
--- a/bundles/org.eclipse.compare/build.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source.compare.jar = compare/
-bin.includes = icons/,\
-               plugin.xml,\
-               *.jar,\
-               plugin.properties,\
-               about.html
-src.includes = about.html,\
-               schema/
diff --git a/bundles/org.eclipse.compare/buildnotes_compare.html b/bundles/org.eclipse.compare/buildnotes_compare.html
deleted file mode 100644
index 00fe8e2..0000000
--- a/bundles/org.eclipse.compare/buildnotes_compare.html
+++ /dev/null
@@ -1,1352 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="GENERATOR" content="Mozilla/4.75 [en] (WinNT; U) [Netscape]">
-   <meta name="Author" content="IBM">
-   <title>Eclipse Platform Release Notes - Desktop</title>
-</head>
-<body> 
-
-<h1>
-Eclipse Platform Build Notes<br>
-Compare</h1>
-Eclipse Build Input July 1st 2003
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=38808">#38808</a>: NPE in log file when restoring files from history.<br>
-fixed minor error in schema files
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input June 24th 2003
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=38770">#38770</a>: CompareEditor should implement IReusableEditor<br>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input June 10th 2003
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=38713">#38713</a>: Compare with -> Each other is not enabled<br>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input June 3rd 2003
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=37531">#37531</a>: the javadoc of CompareViewerPane.setImage(Image)<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=38262">#38262</a>: Apply patch applies unchecked changes<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=36399">#36399</a>: Compare did retrieve entire remote ZIP contents on selection change<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=38198">#38198</a>: TVT21:  Strings are not externalized<br>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input Mai 27th 2003
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=37849">#37849</a>: "Ignore whitespace" ignores also closing brackets?!?<br>
-
-Problem reports closed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=37582">#37582</a>: Ignore whitespace option should be a button in the compare editor<br>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input March 27th 2003
-
-<h2>
-Problem reports fixed</h2>
-Fixed 5 Javadoc warnings
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input March 24th 2003
-
-<h2>
-Problem reports fixed</h2>
-Updated schema copyright notices<br>
-updated javadoc
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input March 19th 2003
-
-<h2>
-Problem reports fixed</h2>
-Fixed wording in properties files<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=35130">#35130</a>: Dialogs do not set the dialog font<br>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input March 14th 2003
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=34732">#34732</a>: Compare/Patch preference page mnemonic<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=34696">#34696</a>: Title casing issues<br>
-
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input March 6th 2003
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=27405">#27405</a>: Should consider using the new font propogation support<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=24255">#24255</a>: Internal error when invoking "Restore from Local History" in Outline view<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=32737">#32737</a>: NegativeArraySizeException: Compare/patch preference page<br>
-
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input March 4th 2003
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=32769">#32769</a>: Missing mneumonic in compare preference page<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=32798">#32798</a>: No mnemonic for ComparePreferencePage.useSingleLine.label<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=32207">#32207</a>: Wording: "Open with Compare Editor" action in sync view<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=28190">#28190</a>: Middle area should act like sash<br>
-added required IDs for compare viewers in plugin.xml<br>
-
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input February 20th 2003
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=20248">#20248</a>: [Compare] Have to perform two actions to see diff<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=24165">#24165</a>: Should have menu action for showing compare contents<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=13332">#13332</a>: autosave before patching: can i undo?<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=24077">#24077</a>: Comparing file named 'platformOption' does not use text editor<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=23958">#23958</a>: NPE in compare with patch<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=28402">#28402</a>: CompareConfiguration leaks Images<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=13844">#13844</a>: TextMergeViewer should keep track of its posted runnables<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=14353">#14353</a>: Cannot perform merge with keyboard accelerators/mnemonics<br>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input February 18th 2003
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=5323">#5323</a>: Compare does not handle correctly conflicts at same location<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=26035">#26035</a>: Local history uses wrong character encoding<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=15654">#15654</a>: Can't maximize Compare with Local History window<br>
-
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input February 13th 2003
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=31136">#31136</a>: Red icon too intrusive<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=31357">#31357</a>: Compare View -- Compare-style option required.<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=31633">#31633</a>: Cannot apply patch successfully<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=10754">#10754</a>: Compare actions should target source window<br>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input February 11th 2003
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=25507">#25507</a>: Compare view prevents Ctrl + F6 working<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=18571">#18571</a>: patch: scary error dialog when no patch in clipboard<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=28840">#28840</a>: Strange behavious applying patch<br>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input February 6th 2003 (M5 aka RC0)
-
-<h2>
-API Additions</h2>
-Added new method EditionSelectionDialog.getSelection()
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=30525">#30525</a>: "Team" menu item missing accelerator<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=28202">#28202</a>: contentmergeviewers do not work with mixed-case extensions<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=19114">#19114</a>: Restore Java Element from Local History should also provide check boxes [compare]<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=28436">#28436</a>: Overview rule green only after focus change<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=29793">#29793</a>: Automatically suggest a fuzz factor when applying a patch<br>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input January 28th 2003
-
-<h2>
-API Additions</h2>
-Added new method CompareUI.findContentViewer(..., Object input, ...)
-
-<h2>
-Problem reports fixed</h2>
-Remoced doc folder.<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=24597">#24597</a>: Compare UI API issues<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=23883">#23883</a>: CompareDialog.commitAction.label string resource name is wrong<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=29791">#29791</a>: Rename 'Compare to Patch' to 'Apply Patch'<br>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input January 14th 2003
-
-<h2>
-Problem reports fixed</h2>
-Extension point schema files added.<br>
-Resolve status indicator is only shown if there are incoming changes.
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input January 7th 2003
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=28278">#28278</a>: TextMergeViewer leaks Color objects<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=27864">#27864</a>: Load of CompareUI fails when not triggered in UI thread<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=28388">#28388</a>: Illegal Argument Exceptions in compare viewer<br>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input December 17th 2002
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=28388">#28388</a>: Illegal Argument Exceptions in compare viewer<br>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input December 16th 2002
-
-<h2>
-Problem reports fixed</h2>
-Fixed a problem with trim in compare viewer on Mac OS X.<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=28278">#28278</a>: TextMergeViewer leaks Color objects<br>
-
-<hr WIDTH="100%"></h1>
-Eclipse Build Input December 13th 2002
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=28012">#28012</a>: Double-click behaving strangely in Synchronize View<br>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input December 10th 2002
-
-<h2>
-What's new in this drop</h2>
-The Textmergeviewer sports a first cut of a new UI for left/right copying,
-showing the 'resolved' status of a change, and uses smooth lines to
-connect the differing ranges in the left and right panes.
-The new UI options are off by default. You can turn them on
-with the three 'experimental' options on the Compare preference page.
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=27993">#27993</a>: Incorrect structure comparison<br>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input December 3rd 2002
-
-<h2>
-What's new in this drop</h2>
-
-<h3>
-API Additions</h3>
-Made internal class Splitter public API.
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=18807">#24597</a>: Compare UI API issues<br>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input November 26th 2002
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=18807">#20975</a>: Compare preference page has no F1 help<br>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input June 27th 2002
-
-<h2>
-What's new in this drop</h2>
-Updated JavaDoc package.html files
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input June 25th 2002
-
-<h2>
-What's new in this drop</h2>
-Updated JavaDoc
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input June 12th 2002
-
-<h2>
-What's new in this drop</h2>
-
-There were several complains that clicking on a zip file in the left pane (structure input pane) feeds all other
-compare panes (see bug 13730). There are cases where this is expensive (for example a large zip file that has 
-to be read from a repository). To avoid those situations the left pane now honors single or double click mode as 
-set in Preferences->Workbench. So if this preference is set to double click the user has to double click on a file
-in the left pane to actually feed all other compare panes.
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input June 8th 2002
-
-<h2>
-What's new in this drop</h2>
-
-<h3>
-API changes</h3>
-
-<h3>
-API Additions</h3>
-
-<h3>
-Other highlights</h3>
-
-<h2>
-Known deficiencies</h2>
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=18807">#18807</a>: Compare with patch fails due to missing LF<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=13730">#13730</a>: Entire zipfiles content sent prior when computing synchronization view content<br>
-
-<h2>
-Problem reports closed</h2>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input June 7th 2002
-
-<h2>
-What's new in this drop</h2>
-
-<h3>
-API changes</h3>
-
-<h3>
-API Additions</h3>
-
-<h3>
-Other highlights</h3>
-
-<h2>
-Known deficiencies</h2>
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=13730">#13730</a>: Entire zipfiles content sent prior when computing synchronization view content<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=14952">#14952</a>: Diff Browser Opens Too Small / Not Easily Resizable<br>
-
-
-<h2>
-Problem reports closed</h2>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input June 6th 2002
-
-<h2>
-What's new in this drop</h2>
-
-<h3>
-API changes</h3>
-
-<h3>
-API Additions</h3>
-New constant CompareUI.PLUGIN_ID
-
-<h3>
-Other highlights</h3>
-
-<h2>
-Known deficiencies</h2>
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=13949">#13949</a>: DBCS: bogus at text compare<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=19013">#19013</a>: backgronud color: is it honored?<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=19216">#19216</a>: Accessibility in Workbench > Compare > Text Compare<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=19371">#19371</a>: Java & Compare editor's Next/Previous toolbar buttons shouldn't be retargetable<br>
-
-
-<h2>
-Problem reports closed</h2>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input June 1st 2002
-
-<h2>
-What's new in this drop</h2>
-
-<h3>
-API changes</h3>
-
-<h3>
-API Additions</h3>
-Made class NavigationAction public.
-
-<h3>
-Other highlights</h3>
-
-<h2>
-Known deficiencies</h2>
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=8004">#8004</a>: Ctrl+E beeps every time<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=14800">#14800</a>: Compare View eats tabs<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=18200">#18200</a>: Both sets of arrows say "Select Next Change"<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=18206">#18206</a>: Casing, wording issue on "Last Resource reached" prompt<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=16285">#16285</a>: Add from Local History needs a description label<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=17431">#17431</a>: Accessibility issues<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=18148">#18148</a>: Using combinations of No and Next file button break wrapping<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=18151">#18151</a>: Next File button does not ding when on last file<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=16570">#16570</a>: Compare refuses to show further differences if not ignoring whitespaces<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=10790">#10790</a>: Patch does not apply if file not found locally<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=12643">#12643</a>: Expand all does not disable when there is no selection<br>
-
-<h2>
-Problem reports closed</h2>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input May 31st 2002
-
-<h2>
-What's new in this drop</h2>
-
-<h3>
-API changes</h3>
-
-<h3>
-API Additions</h3>
-
-<h3>
-Other highlights</h3>
-
-<h2>
-Known deficiencies</h2>
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=18116">#18116</a>: Compare view does not inherit Java editor background color<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=13190">#13190</a>: Compare with Patch does not apply Patch, if single file selected<br>
-
-
-<h2>
-Problem reports closed</h2>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input May 30th 2002
-
-<h2>
-What's new in this drop</h2>
-
-<h3>
-API changes</h3>
-
-<h3>
-API Additions</h3>
-
-<h3>
-Other highlights</h3>
-
-<h2>
-Known deficiencies</h2>
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=17699">#17699</a>: Java Editor: Local Histroy menu entries are enabled for read-only files<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=16283">#16283</a>: Add from Local History items are unsorted<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=16288">#16288</a>: Add from Local History: list of available editions flashes<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=17664">#17664</a>: Applying a patch with deleted package fails<br>
-
-
-<h2>
-Problem reports closed</h2>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input May 29th 2002
-
-<h2>
-What's new in this drop</h2>
-
-<h3>
-API changes</h3>
-
-<h3>
-API Additions</h3>
-
-<h3>
-Other highlights</h3>
-
-<h2>
-Known deficiencies</h2>
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=14040">#14040</a>: Platform interoperability issue w.r.t. Compare With Patch<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=17790">#17790</a>: Missing mnemonics in patch selection dialog<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=10917">#10917</a>: Patch support does not use mnemonics<br>
-
-<h2>
-Problem reports closed</h2>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input May 28th 2002
-
-<h2>
-What's new in this drop</h2>
-
-<h3>
-API changes</h3>
-
-<h3>
-API Additions</h3>
-
-<h3>
-Other highlights</h3>
-
-<h2>
-Known deficiencies</h2>
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=17889">#17889</a>: Should not assume type of PropertyChangeEvent values<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=17678">#17678</a>: Applying a patch does many compiles<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=17536">#17536</a>: NPE in compare<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=17121">#17121</a>: Casing of message when end of changes needs to be sentence style<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=17648">#17648</a>: Can't apply patch w/o ignoring whitespace<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=16936">#16936</a>: Compare with patch requires "Ignore Whitespace" to be turned off<br>
-
-<h2>
-Problem reports closed</h2>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input May 18th 2002
-
-<h2>
-What's new in this drop</h2>
-
-<h3>
-API changes</h3>
-
-<h3>
-API Additions</h3>
-
-<h3>
-Other highlights</h3>
-
-<h2>
-Known deficiencies</h2>
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=14371">#14371</a>: TextMergeViewer.sameDoc() is broken<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=14378">#14378</a>: CompareEditorInput never resets dirtyness flag (detailed)<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=14680">#14680</a>: Compare unreadable in high contrast black<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=14952">#14952</a>: Diff Browser Opens Too Small / Not Easily Resizable<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=14742">#14742</a>: Ignore whitespace preference<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=14624">#14624</a>: No visual cue when compared file wraps<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=13606">#13606</a>: Support multiple selection in Add from local history<br>
-
-<h2>
-Problem reports closed</h2>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input May 16th 2002
-
-<h2>
-What's new in this drop</h2>
-Bumped plugin version number to 2.0.0<br>
-Adapted to new findEditor methods<br>
-
-<h3>
-API changes</h3>
-
-<h3>
-API Additions</h3>
-
-<h3>
-Other highlights</h3>
-
-<h2>
-Known deficiencies</h2>
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=8373">#8373</a>: Compare With->Patch... missing mnemonic<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=12719">#12719</a>: "Show Pseudo-Conflicts" setting is problematic<br>
-
-<h2>
-Problem reports closed</h2>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input April 30th 2002
-
-<h2>
-What's new in this drop</h2>
-All strings NLSed.
-
-<h3>
-API changes</h3>
-
-<h3>
-API Additions</h3>
-
-<h3>
-Other highlights</h3>
-
-<h2>
-Known deficiencies</h2>
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=14515">#14515</a>: java compare uses internal jcore scanner<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=14782">#14782</a>: Add from Local History missing mnemonic<br>
-
-<h2>
-Problem reports closed</h2>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input April 18th 2002
-
-<h2>
-What's new in this drop</h2>
-All strings NLSed.
-
-<h3>
-API changes</h3>
-
-<h3>
-API Additions</h3>
-
-<h3>
-Other highlights</h3>
-
-<h2>
-Known deficiencies</h2>
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=13152">#13152</a>: Internal error in "Add from Local History..." on packages<br>
-
-<h2>
-Problem reports closed</h2>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input April 9th 2002
-
-<h2>
-What's new in this drop</h2>
-New context menu action 'Add From Local History'. Just select any resource container and
-'Add From Local History' presents all files that were deleted from the workspace but are
-still in the local history. 
-
-<h3>
-API changes</h3>
-
-<h3>
-API Additions</h3>
-
-<h3>
-Other highlights</h3>
-
-<h2>
-Known deficiencies</h2>
-The new 'Add From Local History' suffers from #12915. It works if the files were deleted
-within the same session. However if you shut down and restart a workspace some deleted
-files are nor listed.
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=11578">#11578</a>: Patch: Missing resource on dialog<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=11579">#11579</a>: Compare with Patch should be disabled on closed projects<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=11907">#11907</a>: clicking in bird's eye view spots does nothing if panes not synched<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=11536">#11536</a>: Option to turn off structured comparison<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=10682">#10682</a>: Need better UI for recovering deletions from local history<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=11446">#11446</a>: provide "add from local history" for compilation units<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=8615">#8615</a>: Styled Text widget does not respond to system color change<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=9673">#9673</a>: editor background color - no effect on other viewers<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=11642">#11642</a>: Compare editors not using default background colors<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=10434">#10434</a>: Compare browser fails silently and does not give result<br>
-
-<h2>
-Problem reports closed</h2>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input March 18th 2002
-
-<h2>
-What's new in this drop</h2>
-First cut of a birdseyeview for the text compare viewer.<br>
-'Compare which Each other' for Java elements.
-
-<h3>
-API changes</h3>
-
-<h3>
-API Additions</h3>
-
-<h3>
-Other highlights</h3>
-
-<h2>
-Known deficiencies</h2>
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=3641">#3641</a>: DCR: Can't compare from outliner (1GDHJKK)<br>
-
-<h2>
-Problem reports closed</h2>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input March 14th 2002
-
-<h2>
-What's new in this drop</h2>
-
-<h3>
-API changes</h3>
-
-<h3>
-API Additions</h3>
-
-<h3>
-Other highlights</h3>
-
-<h2>
-Known deficiencies</h2>
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=11305">#11305</a>: Can't compare a "C" file<br>
-
-
-<h2>
-Problem reports closed</h2>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input March 12th 2002
-
-<h2>
-What's new in this drop</h2>
-Structure Compare viewers are enabled by default.<br>
-
-<h3>
-API changes</h3>
-
-<h3>
-API Additions</h3>
-
-<h3>
-Other highlights</h3>
-
-<h2>
-Known deficiencies</h2>
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=10379">#10379</a>: Compare with Local History Dialog: lower pane is missing a bordeer<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=9768">#9768</a>: (empty-menu) in compare view<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=9842">#9842</a>: Expand All action needed in structure compare view<br>
-
-
-<h2>
-Problem reports closed</h2>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input March 5th 2002
-
-<h2>
-What's new in this drop</h2>
-
-<h3>
-API changes</h3>
-
-<h3>
-API Additions</h3>
-
-<h3>
-Other highlights</h3>
-
-<h2>
-Known deficiencies</h2>
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=9869">#9869</a>: Need more support for creating/deleting resources<br>
-
-
-<h2>
-Problem reports closed</h2>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input February 26th 2002
-
-<h2>
-What's new in this drop</h2>
-Patch: for every rejected file a task marker is added<br>
-Compare preference page shows options in a preview<br>
-New preference option for additional compare status line information
-
-<h3>
-API changes</h3>
-
-<h3>
-API Additions</h3>
-
-<h3>
-Other highlights</h3>
-
-<h2>
-Known deficiencies</h2>
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=9540">#9540</a>: Compare with patch: it should not be possible to check items that could not be applied<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=9532">#9532</a>: Compare with patch: next disabled although clipboard specified<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=7681">#7681</a>: Structured results expands import statements<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=9572">#9572</a>: Debugging trace left in status bar<br>
-
-
-<h2>
-Problem reports closed</h2>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input February 12th 2002
-
-<h2>
-What's new in this drop</h2>
-The patch wizard no longer opens a Compare Editor but applies the
-patch directly to the workspace. This will be the default.
-In the future the old behavior of opening the Compare Editor will be
-an additional option when finishing the wizard.
-<br>
-Patch wizard has a 'Reverse' option for applying a "reversed" patch.
-This option can be used to 'undo' a patch.
-
-<h3>
-API changes</h3>
-
-<h3>
-API Additions</h3>
-
-<h3>
-Other highlights</h3>
-
-<h2>
-Known deficiencies</h2>
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=9153">#9153</a>: NPE when closing synchronize view<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=9331">#9331</a>: NPE during compare with stream version<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=6346">#6346</a>: Problems with Patch<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=6727">#6727</a>: Patch: *.rej file must be saved in workspace<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=7358">#7358</a>: Internal Error in Compare with Patch with new files<br>
-
-<h2>
-Problem reports closed</h2>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input February 5th 2002
-
-<h2>
-What's new in this drop</h2>
-The structure compare pane opens when a resource is selected.
-In previous version a double click was required.
-
-<h3>
-API changes</h3>
-
-<h3>
-API Additions</h3>
-
-<h3>
-Other highlights</h3>
-
-<h2>
-Known deficiencies</h2>
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=5063">#5063</a>: Should not have to double-click to open Structure Compare<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=2602">#2602</a>: Compare FW accessibility issues (1GK79UB)<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=2707">#2707</a>: Merge viewer should ask for save before releasing (1GI9JXS)<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=2772">#2772</a>: DCR: Automatic structure compare (1GJ6EUY)<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=3829">#3829</a>: Smart rename button enabled when no smartness is available (1GEUVHN)<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=9089">#9089</a>: Local history - Selecting item in structured compare has no effect<br>
-
-<h2>
-Problem reports closed</h2>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input January 29th 2002
-
-<h2>
-What's new in this drop</h2>
-
-<h3>
-API changes</h3>
-
-<h3>
-API Additions</h3>
-
-<h3>
-Other highlights</h3>
-
-<h2>
-Known deficiencies</h2>
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=6271">#6271</a>: Can't tell which file is which in Compare browser<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=2519">#2519</a>: next/prev arrows active when only one difference in compare (1GFIQX3)<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=8363">#8363</a>: NPE comparing two resources in the navigator.<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=2501">#2501</a>: Empty menu in compare browser (1GFBQKE)<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=2854">#2854</a>: Compare: Save code path problematic (1GJYGAX)<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=8574">#8574</a>: Not structure compare in compare with local history<br>
-
-<h2>
-Problem reports closed</h2>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input January 23th 2002
-
-<h2>
-What's new in this drop</h2>
-
-<h3>
-API changes</h3>
-
-<h3>
-API Additions</h3>
-
-<h3>
-Other highlights</h3>
-
-<h2>
-Known deficiencies</h2>
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=8089">#8089</a>: Replace from local history: parse error<br>
-
-<h2>
-Problem reports closed</h2>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input January 22th 2002
-
-<h2>
-What's new in this drop</h2>
-Fixed an inconsistency in the binary compare viewer:
-info message didn't match +/-icon in the resource compare pane.
-
-<h3>
-API changes</h3>
-
-<h3>
-API Additions</h3>
-
-<h3>
-Other highlights</h3>
-
-<h2>
-Known deficiencies</h2>
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=3859">#3859</a>: replace from history does not work for elements with error (1GEYIZ6)<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=6177">#6177</a>: Double click action dangerous in 'Restore from Local History'<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=7821">#7821</a>: Team 2.0 CVS synchronze bug 'no-name' dirs..<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=2773">#2773</a>: Java structure compare should give better indication when no changes (1GJ6ENE)<br>
-
-<h2>
-Problem reports closed</h2>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input January 15th 2002
-
-<h2>
-What's new in this drop</h2>
-Fixed a problem in DiffNode.getName()and the DiffTreeViewer's label provider
-where the left and right half of a DiffNode label would be reversed because
-the "leftIsLocal" property of a CompareConfiguration wasn't obeyed.
-
-<h3>
-API changes</h3>
-
-<h3>
-API Additions</h3>
-
-<h3>
-Other highlights</h3>
-
-<h2>
-Known deficiencies</h2>
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=1893">#1893</a>: Compare Viewer doesn't scroll to last line (1GBB34N)<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=5839">#5839</a>: Usability: Initial diff is sometimes not horizontally aligned<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=5325">#5325</a>: Compare always scroll the text pane to the extreme limit<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=7048">#7048</a>: First element not selected<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=2548">#2548</a>: Project compare should open viewing selected file (1GFMRP6)<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=2938">#2938</a>: Replace from local history should show busy cursor (1GKU0P3)<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=7594">#7594</a>: Menu entry "Replace with Previous" shouldn't have a "..."<br>
-Workaround added for:<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=7320">#7320</a>: Next diff scrolls when going into current diff<br>
-
-<h2>
-Problem reports closed</h2>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input January 8th 2002
-
-<h2>
-What's new in this drop</h2>
-
-<h3>
-API changes</h3>
-
-<h3>
-API Additions</h3>
-Added methods to CompareUI plugin for adding and removing aliases
-for the file extension to StructureCompareViewer mapping
-(addStructureViewerAlias, removeStructureViewerAlias).
-
-<h3>
-Other highlights</h3>
-
-<h2>
-Known deficiencies</h2>
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=6828">#6828</a>: Support with replace with previous<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=2396">#2396</a>: Save in compare editors needs progress bar (1GEYF58)<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=5271">#5271</a>: JARs compared as source in release browser<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=5121">#5121</a>: Replace with Previous (from local history)<br>
-
-<h2>
-Problem reports closed</h2>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input December 11th 2001
-
-<h2>
-What's new in this drop</h2>
-Keyboard shortcuts for 'Goto next Difference' and 'Goto previous Difference'
-changed to Control-E and Control-Shift-E.<br>
-Better NLS support.<br>
-Updated file "about.html".
-
-<h3>
-API changes</h3>
-
-<h3>
-API Additions</h3>
-
-<h3>
-Other highlights</h3>
-
-<h2>
-Known deficiencies</h2>
-
-<h2>
-Problem reports fixed</h2>
-
-<h2>
-Problem reports closed</h2>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input December 4th 2001
-
-<h2>
-What's new in this drop</h2>
-
-<h3>
-API changes</h3>
-
-<h3>
-API Additions</h3>
-
-<h3>
-Other highlights</h3>
-
-<h2>
-Known deficiencies</h2>
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=4381">#4381</a>: Replace from local histroy - workspace element included <br>
-
-<h2>
-Problem reports closed</h2>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input November 27th 2001
-
-<h2>
-What's new in this drop</h2>
-
-<h3>
-API changes</h3>
-
-<h3>
-API Additions</h3>
-
-<h3>
-Other highlights</h3>
-
-<h2>
-Known deficiencies</h2>
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=6298">#6298</a>: Replace with Local History: Workbench -> Workspace<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=5238">#5238</a>: Compare fails if takes more than 20 seconds<br>
-
-<h2>
-Problem reports closed</h2>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse SDK Build 210, November 12th, 2001
-
-<h2>
-What's new in this drop</h2>
-First cut for 'rejected hunk' support.
-
-<h3>
-API changes</h3>
-
-<h3>
-API Additions</h3>
-new classes CompareViewerPane and CompareViewerSwitchingPane<br>
-
-<h3>
-Other highlights</h3>
-Improved Patch wizard.<br>
-
-<h2>
-Known deficiencies</h2>
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=5723">#5723</a>: Apply Patch dialog has no radio selection<br>
-
-<h2>
-Problem reports closed</h2>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse SDK Build 207, November 1st, 2001
-
-<h2>
-What's new in this drop</h2>
-
-<h3>
-API changes</h3>
-
-<h3>
-API Additions</h3>
-
-<h3>
-Other highlights</h3>
-
-<h2>
-Known deficiencies</h2>
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=5334">#5334: Internal errors using patch tool</a><br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=5150">#5150: Compare with patch cannot read VCM's CVS patch file</a><br>
-
-<h2>
-Problem reports closed</h2>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse SDK Build 204, October 12th, 2001
-
-<h2>
-What's new in this drop</h2>
-First cut of patch support.
-
-<h3>
-API changes</h3>
-
-<h3>
-API Additions</h3>
-
-<h3>
-Other highlights</h3>
-
-<h2>
-Known deficiencies</h2>
-
-<h2>
-Problem reports fixed</h2>
-
-<h2>
-Problem reports closed</h2>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse SDK Build 202, September 27th, 2001
-
-<h2>
-What's new in this drop</h2>
-
-<h3>
-API changes</h3>
-
-<h3>
-API Additions</h3>
-
-<h3>
-Other highlights</h3>
-
-<h2>
-Known deficiencies</h2>
-
-<h2>
-Problem reports fixed</h2>
-1GKKUA5: ITPUI:WINNT - Severe: memory leak in sync view<br>
-1GKKGGS: ITPJUI:WIN2000 - (136) compares zips as source<br>
-
-<h2>
-Problem reports closed</h2>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse SDK Build 201, September 21st, 2001
-
-<h2>
-What's new in this drop</h2>
-removed direction icon in TextMergeViewer for two-way compare
-
-<h3>
-API changes</h3>
-
-<h3>
-API Additions</h3>
-
-<h3>
-Other highlights</h3>
-
-<h2>
-Known deficiencies</h2>
-
-<h2>
-Problem reports fixed</h2>
-1GJURWJ: ITPUI:WIN2000 - Hebrew + Japanese: compare view defaults to binary<br>
-1GK0388: ITPJCORE:WIN2000 - replace with local history: selecting (workspace) deletes source<br>
-1GITG2V: ITPUI:WIN2000 - Comparing html files uses binary compare<br>
-1GJW2TP: ITPJUI:WIN2000 - java compare: why beep every time?<br>
-
-<h2>
-Problem reports closed</h2>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse SDK Build 200, September 13th, 2001
-
-<h2>
-What's new in this drop</h2>
-If not specified otherwise Compare viewer font is taken from workbench text font<br>
-The shortcut for "Goto Next/Previous Difference" is Ctrl-D/Ctrl-Shift-D
-to avoid a clash with Ctrl-P of the Print command.
-
-<h3>
-API changes</h3>
-
-<h3>
-API Additions</h3>
-new method EditionSelectionDialog.setHideIdenticalEntries(boolean)<br>
-new method EditionSelectionDialog.setTargetIsRight(boolean)<br>
-new method EditionSelectionDialog.setAddMode(boolean)<br>
-new method CompareEditorInput.saveChanges(...)<br>
-new method TextMergeViewer.createLineComparator(IDocument document, IRegion region, boolean ignoreWhiteSpace)<br>
-
-<h3>
-Other highlights</h3>
-
-<h2>
-Known deficiencies</h2>
-
-<h2>
-Problem reports fixed</h2>
-1GFMLFB: ITPUI:WIN2000 - files that are out of sync with the file system appear as empty<br>
-1GG0ELM: ITPVCM:ALL - Local history displayed some of Today's items as Yesterday<br>
-1GGNKHN: ITPJUI:ALL - No progress during replace with local history<br>
-1GF2JNI: ITPUI:ALL - (minor)Compare failed title should be title case<br>
-1GHBPA1: ITPVCM:WINNT - Compare - next change arrow switches to wrong file<br>
-1GGQQH3: ITPJUI:WINNT - Compare hightlights a non-change instead of the change<br>
-1GI5DN9: ITPUI:WIN2000 - Conflicting token deletions don't show up in text compare viewer<br>
-1GI3KUR: ITPJUI:WIN2000 - Compare: double-click in versions list closes view<br>
-1GFFR4B: ITPUI:WIN98 - local history is misleading<br>
-1GBM0IL: ITPUI:WINNT - CompareEditorInput#save should throw CoreException<br>
-1GI99LE: ITPUI:ALL - Compare viewer does not show last line when horizontal scroll bar is present<br>
-1GBB34N: ITPJUI:WIN2000 - Compare Viewer doesn't scroll to last line<br>
-1GGZ8DO: ITPJUI:WIN - MergeViewer invalid selection range<br>
-1GIIBHM: ITPUI:WIN2000 - Problems when comparing zip files<br>
-1GIKKOZ: ITPUI:ALL - alt copyright text in html doc needs update<br>
-1GIURNB: ITPUI:ALL - property file of EditionSelectionDialog contains configuration options<br>
-1GIUS6L: ITPUI:ALL - TextMergeViewer uses deprecated Thread.stop()<br>
-1GI3HDZ: ITPJUI:ALL - Compare: conflicts with no ancestor does not show differences<br>
-1GEUX0D: ITPJUI:ALL - not state aware toolbar button in compare<br>
-
-<h2>
-Problem reports closed</h2>
-1GF9Y9C: ITPUI:WIN2000 - DCR: only get ancestor pane contents if pane is visible<br>
-
-</body>
-</html>
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/BufferedContent.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/BufferedContent.java
deleted file mode 100644
index 2f87cb1..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/BufferedContent.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare;
-
-import java.io.*;
-import org.eclipse.jface.util.ListenerList;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.compare.internal.Utilities;
-
-/**
- * Abstract implementation for a buffered <code>IStreamContentAccessor</code>.
- * <p>
- * Subclasses must implement the <code>createStream</code> method
- * to connect the buffered content with a streamable source (e.g., a file).
- * <p>
- * As long as the contents of <code>BufferedContent</code> is only retrieved as an input stream
- * (by means of <code>getContents</code>) and the <code>BufferedContent</code> is not modified (with
- * <code>setContent</code>) no buffering takes place.
- * Buffering starts when either method <code>getContent</code> or <code>setContent</code> is called.
- * 
- * @see IContentChangeNotifier
- * @see IStreamContentAccessor
- */
-public abstract class BufferedContent implements IContentChangeNotifier, IStreamContentAccessor {
-	
-	byte[] fContent;
-	private ListenerList fListenerList;
-	
-	/**
-	 * Creates a buffered stream content accessor.
-	 */
-	protected BufferedContent() {
-	}
-		
-	/* (non-Javadoc)
-	 * see IStreamContentAccessor.getContents
-	 */
-	public InputStream getContents() throws CoreException {
-		if (fContent != null)
-			return new ByteArrayInputStream(fContent);
-		return createStream();
-	}
-
-	/**
-	 * Creates and returns a stream for reading the contents.
-	 * <p>
-	 * Subclasses must implement this method.
-	 * </p>
-	 *
-	 * @return the stream from which the content is read
-	 * @exception CoreException if the contents could not be accessed
-	 */
-	protected abstract InputStream createStream() throws CoreException;
-	
-	/**
-	 * Sets the contents. Registered content change listeners are notified.
-	 *
-	 * @param contents the new contents
-	 */
-	public void setContent(byte[] contents) {
-		fContent= contents;
-		fireContentChanged();
-	}
-	
-	/**
-	 * Returns the contents as an array of bytes.
-	 *
-	 * @return the contents as an array of bytes, or <code>null</code> if
-	 *   the contents could not be accessed
-	 */
-	public byte[] getContent() {
-		if (fContent == null) {
-			try {
-				InputStream is= createStream();
-				fContent= Utilities.readBytes(is);
-			} catch(CoreException ex) {
-			}
-		}
-		return fContent;
-	}
-
-	/**
-	 * Discards the buffered content.
-	 */
-	public void discardBuffer() {
-		fContent= null;
-	}
-	
-	/* (non-Javadoc)
-	 * see IContentChangeNotifier.addChangeListener
-	 */
-	public void addContentChangeListener(IContentChangeListener listener) {
-		if (fListenerList == null)
-			fListenerList= new ListenerList();
-		fListenerList.add(listener);
-	}
-	
-	/* (non-Javadoc)
-	 * see IContentChangeNotifier.removeChangeListener
-	 */
-	public void removeContentChangeListener(IContentChangeListener listener) {
-		if (fListenerList != null) {
-			fListenerList.remove(listener);
-			if (fListenerList.isEmpty())
-				fListenerList= null;
-		}
-	}
-	
-	/**
-	 * Notifies all registered <code>IContentChangeListener</code>s of a content change.
-	 */
-	protected void fireContentChanged() {
-		if (fListenerList != null) {
-			Object[] listeners= fListenerList.getListeners();
-			for (int i= 0; i < listeners.length; i++)
-				((IContentChangeListener)listeners[i]).contentChanged(this);
-		}
-	}
-}
-
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/CompareConfiguration.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/CompareConfiguration.java
deleted file mode 100644
index 4fe3a8a..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/CompareConfiguration.java
+++ /dev/null
@@ -1,445 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare;
-
-import java.util.HashMap;
-
-import org.eclipse.swt.graphics.*;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.util.*;
-import org.eclipse.jface.preference.IPreferenceStore;
-
-import org.eclipse.compare.internal.*;
-import org.eclipse.compare.structuremergeviewer.Differencer;
-
-/**
- * A <code>CompareConfiguration</code> object
- * controls various UI aspects of compare/merge viewers like
- * title labels and images, or whether a side of a merge viewer is editable.
- * In addition to these fixed properties <code>ICompareConfiguration</code> provides
- * API for an open ended set of properties. Different viewers which share the same
- * configuration can communicate via this mechanism. E.g. if a compare editor
- * has a button for controlling whether compare viewers ignore white space,
- * the button would trigger a change of the boolean <code>IGNORE_WHITESPACE</code> property
- * and all interested viewers would receive notification.
- * <p>
- * Suitable default labels are provided (without images); both the left and right sides
- * are editable.
- * </p>
- * <p>
- * Clients may use this class as is, or subclass to add new state and behavior.
- * </p>
- */
-public class CompareConfiguration {
-
-	/**
-	 * Name of the ignore whitespace property (value <code>"IGNORE_WHITESPACE"</code>).
-	 */
-	public static final String IGNORE_WHITESPACE= "IGNORE_WHITESPACE"; //$NON-NLS-1$
-	/**
-	 * Name of the show pseudo conflicts property (value <code>"SHOW_PSEUDO_CONFLICTS"</code>).
-	 */
-	public static final String SHOW_PSEUDO_CONFLICTS= "SHOW_PSEUDO_CONFLICTS"; //$NON-NLS-1$
-
-
-	private static final int WIDTH= 22;
-	
-	private static ImageDescriptor[] fgImages= new ImageDescriptor[16];
-	private static Object fgDummy= new Object();
-	private static HashMap fgMap= new HashMap(20);
-	private static boolean fLeftIsLocal= true;
-
-	static {
-		if (fLeftIsLocal) {
-			fgImages[Differencer.ADDITION]= CompareUIPlugin.getImageDescriptor("ovr16/del_ov.gif"); //$NON-NLS-1$
-			fgImages[Differencer.LEFT + Differencer.ADDITION]= CompareUIPlugin.getImageDescriptor("ovr16/r_inadd_ov.gif"); //$NON-NLS-1$
-			fgImages[Differencer.RIGHT + Differencer.ADDITION]= CompareUIPlugin.getImageDescriptor("ovr16/r_outadd_ov.gif"); //$NON-NLS-1$
-
-			fgImages[Differencer.DELETION]= CompareUIPlugin.getImageDescriptor("ovr16/add_ov.gif"); //$NON-NLS-1$
-			fgImages[Differencer.LEFT + Differencer.DELETION]= CompareUIPlugin.getImageDescriptor("ovr16/r_indel_ov.gif"); //$NON-NLS-1$
-			fgImages[Differencer.RIGHT + Differencer.DELETION]= CompareUIPlugin.getImageDescriptor("ovr16/r_outdel_ov.gif"); //$NON-NLS-1$
-
-			fgImages[Differencer.LEFT + Differencer.CHANGE]= CompareUIPlugin.getImageDescriptor("ovr16/r_inchg_ov.gif"); //$NON-NLS-1$
-			fgImages[Differencer.RIGHT + Differencer.CHANGE]= CompareUIPlugin.getImageDescriptor("ovr16/r_outchg_ov.gif"); //$NON-NLS-1$
-		} else {
-			fgImages[Differencer.ADDITION]= CompareUIPlugin.getImageDescriptor("ovr16/add_ov.gif"); //$NON-NLS-1$
-			fgImages[Differencer.LEFT + Differencer.ADDITION]= CompareUIPlugin.getImageDescriptor("ovr16/inadd_ov.gif"); //$NON-NLS-1$
-			fgImages[Differencer.RIGHT + Differencer.ADDITION]= CompareUIPlugin.getImageDescriptor("ovr16/outadd_ov.gif"); //$NON-NLS-1$
-
-			fgImages[Differencer.DELETION]= CompareUIPlugin.getImageDescriptor("ovr16/del_ov.gif"); //$NON-NLS-1$
-			fgImages[Differencer.LEFT + Differencer.DELETION]= CompareUIPlugin.getImageDescriptor("ovr16/indel_ov.gif"); //$NON-NLS-1$
-			fgImages[Differencer.RIGHT + Differencer.DELETION]= CompareUIPlugin.getImageDescriptor("ovr16/outdel_ov.gif"); //$NON-NLS-1$
-
-			fgImages[Differencer.LEFT + Differencer.CHANGE]= CompareUIPlugin.getImageDescriptor("ovr16/inchg_ov.gif"); //$NON-NLS-1$
-			fgImages[Differencer.RIGHT + Differencer.CHANGE]= CompareUIPlugin.getImageDescriptor("ovr16/outchg_ov.gif"); //$NON-NLS-1$
-		}
-
-		fgImages[Differencer.CONFLICTING + Differencer.ADDITION]= CompareUIPlugin.getImageDescriptor("ovr16/confadd_ov.gif"); //$NON-NLS-1$
-		fgImages[Differencer.CONFLICTING + Differencer.DELETION]= CompareUIPlugin.getImageDescriptor("ovr16/confdel_ov.gif"); //$NON-NLS-1$
-		fgImages[Differencer.CONFLICTING + Differencer.CHANGE]= CompareUIPlugin.getImageDescriptor("ovr16/confchg_ov.gif"); //$NON-NLS-1$
-	}
-
-	private IPreferenceStore fPreferenceStore;
-	private ListenerList fListeners= new ListenerList();
-	private HashMap fProperties= new HashMap();
-	private boolean fLeftEditable= true;
-	private boolean fRightEditable= true;
-	private String fAncestorLabel;
-	private String fLeftLabel;
-	private String fRightLabel;
-	private Image fAncestorImage;
-	private Image fRightImage;
-	private Image fLeftImage;
-	private Image[] fImages= new Image[16];
-	
-	/**
-	 * Creates a new configuration with editable left and right sides,
-	 * suitable default labels, and no images.
-	 * The given preference store is used to connect this configuration
-	 * with the Compare preference page properties <code>ComparePreferencePage.INITIALLY_SHOW_ANCESTOR_PANE</code>,
-	 * and <code>CompareConfiguration.IGNORE_WHITESPACE</code>.
-	 * 
-	 * @param prefStore the preference store which this configuration holds onto.
-	 * @since 2.0
-	 */
-	public CompareConfiguration(IPreferenceStore prefStore) {
-		
-		setProperty("LEFT_IS_LOCAL", new Boolean(fLeftIsLocal)); //$NON-NLS-1$
-		
-		fPreferenceStore= prefStore;
-		if (fPreferenceStore != null) {
-			boolean b= fPreferenceStore.getBoolean(ComparePreferencePage.INITIALLY_SHOW_ANCESTOR_PANE);
-			setProperty(ComparePreferencePage.INITIALLY_SHOW_ANCESTOR_PANE, new Boolean(b));
-			
-			b= fPreferenceStore.getBoolean(ComparePreferencePage.IGNORE_WHITESPACE);
-			setProperty(CompareConfiguration.IGNORE_WHITESPACE, new Boolean(b));
-		}
-	}	
-	
-	/**
-	 * Creates a new configuration with editable left and right sides,
-	 * suitable default labels, and no images.
-	 * This configuration uses the preference store of the Compare plugin
-	 * (<code>CompareUIPlugin.getDefault().getPreferenceStore()</code>).
-	 */
-	public CompareConfiguration() {
-		this(CompareUIPlugin.getDefault().getPreferenceStore());
-	}
-	
-	/**
-	 * Returns the preference store of this configuration.
-	 * @return the preference store of this configuration.
-	 * @since 2.0
-	 */
-	public IPreferenceStore getPreferenceStore() {
-		return fPreferenceStore;
-	}
-	
-	/**
-	 * Returns an image showing the specified change kind.
-	 * The different kind of changes are defined in the <code>Differencer</code>.
-	 * Newly created images are remembered by this class and
-	 * disposed when the <code>dispose</code> method is called.
-	 *
-	 * @param kind the kind of change as defined in <code>Differencer</code>.
-	 * @return an modification of the base image reflecting the kind of change.
-	 * @see org.eclipse.compare.structuremergeviewer.Differencer
-	 * @since 2.0
-	 */
-	public Image getImage(int kind) {
-		Image image= fImages[kind & 15];
-		if (image == null) {
-			ImageDescriptor id= fgImages[kind & 15];
-			if (id != null)				
-				image= id.createImage();
-			fImages[kind & 15]= image;
-		}
-		return image;
-	}
-	
-	/**
-	 * Returns an image showing the specified change kind applied to a
-	 * given base image. The different kind of changes are defined in the <code>Differencer</code>.
-	 * Typically an implementation would build a composite image 
-	 * from the given base image and an image representing the change kind.
-	 * Newly created images are remembered by this class and
-	 * disposed when the <code>dispose</code> method is called.
-	 *
-	 * @param base the image which is modified to reflect the kind of change
-	 * @param kind the kind of change as defined in <code>Differencer</code>.
-	 * @return an modification of the base image reflecting the kind of change.
-	 * @see org.eclipse.compare.structuremergeviewer.Differencer
-	 */
-	public Image getImage(Image base, int kind) {
-
-		Object key= base;
-		if (key == null)
-			key= fgDummy;
-
-		kind &= 15;
-
-		Image[] a= (Image[]) fgMap.get(key);
-		if (a == null) {
-			a= new Image[16];
-			fgMap.put(key, a);
-		}
-		Image b= a[kind];
-		if (b == null) {
-			b= new DiffImage(base, fgImages[kind], WIDTH, !fLeftIsLocal).createImage();
-			CompareUI.disposeOnShutdown(b);
-			a[kind]= b;
-		}
-		return b;
-	}
-	
-	/**
-	 * Dispose of this compare configuration.
-	 * This method is called if the compare configuration is no longer used.
-	 * An implementation must dispose of all resources.
-	 */
-	public void dispose() {
-		if (fImages != null) {
-			for (int i= 0; i < fImages.length; i++){
-				Image image= fImages[i];
-				if (image != null && !image.isDisposed())
-					image.dispose();
-			}
-		}
-		fImages= null;
-	}
-
-	/**
-	 * Fires a <code>PropertyChangeEvent</code> to registered listeners.
-	 *
-	 * @param propertyName the name of the property that has changed
-	 * @param oldValue the property's old value
-	 * @param newValue the property's new value
-	 */
-	private void fireChange(String propertyName, Object oldValue, Object newValue) {
-		PropertyChangeEvent event= null;
-		Object[] listeners= fListeners.getListeners();
-		if (listeners != null) {
-			for (int i= 0; i < listeners.length; i++) {
-				IPropertyChangeListener l= (IPropertyChangeListener) listeners[i];
-				if (event == null)
-					event= new PropertyChangeEvent(this, propertyName, oldValue, newValue);
-				l.propertyChange(event);
-			}
-		}
-	}
-
-	/* (non javadoc)
-	 * see IPropertyChangeNotifier.addListener
-	 */
-	public void addPropertyChangeListener(IPropertyChangeListener listener) {
-		fListeners.add(listener);
-	}
-
-	/* (non javadoc)
-	 * see IPropertyChangeNotifier.removeListener
-	 */
-	public void removePropertyChangeListener(IPropertyChangeListener listener) {
-		fListeners.remove(listener);
-	}
-
-	/**
-	 * Sets the property with the given name.
-	 * If the new value differs from the old a <code>PropertyChangeEvent</code>
-	 * is sent to registered listeners.
-	 *
-	 * @param propertyName the name of the property to set
-	 * @param value the new value of the property
-	 */
-	public void setProperty(String key, Object newValue) {
-		Object oldValue= fProperties.get(key);
-		fProperties.put(key, newValue);
-		if (oldValue == null || !oldValue.equals(newValue))
-			fireChange(key, oldValue, newValue);
-	}
-
-	/**
-	 * Returns the property with the given name, or <code>null</code>
-	 * if no such property exists.
-	 *
-	 * @param propertyName the name of the property to retrieve
-	 * @return the property with the given name, or <code>null</code> if not found
-	 */
-	public Object getProperty(String key) {
-		return fProperties.get(key);
-	}
-
-	//---- ancestor
-	
-	/**
-	 * Sets the label to use for the ancestor of compare/merge viewers.
-	 *
-	 * @param label the new label for the ancestor of compare/merge viewers
-	 */
-	public void setAncestorLabel(String label) {
-		fAncestorLabel= label;
-	}
-
-	/**
-	 * Returns the label for the ancestor side of compare/merge viewers.
-	 * This label is typically shown in the title of the ancestor area in a compare viewer.
-	 *
-	 * @param element the input object of a compare/merge viewer or <code>null</code>
-	 * @return the label for the ancestor side or <code>null</code>
-	 */
-	public String getAncestorLabel(Object element) {
-		return fAncestorLabel;
-	}
-	
-	/**
-	 * Sets the image to use for the ancestor of compare/merge viewers.
-	 * The CompareConfiguration does not automatically dispose the old image.
-	 *
-	 * @param image the new image for the ancestor of compare/merge viewers
-	 */
-	public void setAncestorImage(Image image) {
-		fAncestorImage= image;
-	}
-
-	/**
-	 * Returns the image for the ancestor side of compare/merge viewers.
-	 * This image is typically shown in the title of the ancestor area in a compare viewer.
-	 *
-	 * @param element the input object of a compare/merge viewer or <code>null</code>
-	 * @return the image for the ancestor side or <code>null</code>
-	 */	
-	public Image getAncestorImage(Object element) {
-		return fAncestorImage;
-	}
-
-	//---- left side
-	
-	/**
-	 * Controls whether the left side of a merge viewer is editable.
-	 *
-	 * @param editable if the value is <code>true</code> left side is editable
-	 */
-	public void setLeftEditable(boolean editable) {
-		fLeftEditable= editable;
-	}
-	
-	/**
-	 * Returns whether the left hand side of a merge viewer is editable.
-	 * 
-	 * @return <code>true</code> if the left hand side is editable
-	 */
-	public boolean isLeftEditable() {
-		return fLeftEditable;
-	}
-
-	/**
-	 * Sets the label to use for the left side of compare/merge viewers.
-	 *
-	 * @param label the new label for the left side of compare/merge viewers
-	 */
-	public void setLeftLabel(String label) {
-		fLeftLabel= label;
-	}
-	
-	/**
-	 * Returns the label for the left hand side of compare/merge viewers.
-	 * This label is typically shown in the title of the left side of a compare viewer.
-	 *
-	 * @param element the input object of a compare/merge viewer or <code>null</code>
-	 * @return the label for the left hand side or <code>null</code>
-	 */
-	public String getLeftLabel(Object element) {
-		return fLeftLabel;
-	}
-
-	/**
-	 * Sets the image to use for the left side of compare/merge viewers.
-	 * The compare configuration does not automatically dispose the old image.
-	 *
-	 * @param image the new image for the left side of compare/merge viewers
-	 */
-	public void setLeftImage(Image image) {
-		fLeftImage= image;
-	}
-
-	/**
-	 * Returns the image for the left hand side of compare/merge viewers.
-	 * This image is typically shown in the title of the left side of a compare viewer.
-	 *
-	 * @param element the input object of a compare/merge viewer or <code>null</code>
-	 * @return the image for the left hand side or <code>null</code>
-	 */	
-	public Image getLeftImage(Object element) {
-		return fLeftImage;
-	}
-	
-	//---- right side
-
-	/**
-	 * Controls whether the right side of a merge viewer is editable.
-	 *
-	 * @param editable if the value is <code>true</code> right side is editable
-	 */
-	public void setRightEditable(boolean editable) {
-		fRightEditable= editable;
-	}
-	
-	/**
-	 * Returns whether the right hand side of a merge viewer is editable.
-	 * 
-	 * @return <code>true</code> if the right hand side is editable
-	 */
-	public boolean isRightEditable() {
-		return fRightEditable;
-	}
-
-	/**
-	 * Sets the label to use for the right side of compare/merge viewers.
-	 *
-	 * @param label the new label for the right side of compare/merge viewers
-	 */
-	public void setRightLabel(String label) {
-		fRightLabel= label;
-	}
-
-	/**
-	 * Returns the label for the right hand side of compare/merge viewers.
-	 * This label is typically shown in the title of the right side of a compare viewer.
-	 *
-	 * @param element the input object of a compare/merge viewer or <code>null</code>
-	 * @return the label for the right hand side or <code>null</code>
-	 */
-	public String getRightLabel(Object element) {
-		return fRightLabel;
-	}
-
-	/**
-	 * Sets the image to use for the right side of compare/merge viewers.
-	 * The compare configuration does not automatically dispose the old image.
-	 *
-	 * @param image the new image for the right side of compare/merge viewers
-	 */
-	public void setRightImage(Image image) {
-		fRightImage= image;
-	}
-
-	/**
-	 * Returns the image for the right hand side of compare/merge viewers.
-	 * This image is typically shown in the title of the right side of a compare viewer.
-	 *
-	 * @param element the input object of a compare/merge viewer or <code>null</code>
-	 * @return the image for the right hand side or <code>null</code>
-	 */
-	public Image getRightImage(Object element) {
-		return fRightImage;
-	}
-}
-
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/CompareEditorInput.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/CompareEditorInput.java
deleted file mode 100644
index 76724e7..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/CompareEditorInput.java
+++ /dev/null
@@ -1,749 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare; 
-
-import java.lang.reflect.InvocationTargetException;
-
-import java.util.ArrayList;
-import java.util.ResourceBundle;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.custom.BusyIndicator;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.ui.IPersistableElement;
-import org.eclipse.ui.IEditorInput;
-
-import org.eclipse.jface.util.*;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.action.ToolBarManager;
-import org.eclipse.jface.viewers.*;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.resource.ImageDescriptor;
-
-import org.eclipse.compare.internal.*;
-import org.eclipse.compare.structuremergeviewer.*;
-
-
-/**
- * A compare operation which can present its results in a special editor.
- * Running the compare operation and presentating the results in a compare editor
- * are combined in one interface because it allows a client to keep the implementation
- * all in one place while separating it from the innards of a specific UI implementation of compare/merge.
- * <p> 
- * A <code>CompareEditorInput</code> defines methods for the following sequence steps:
- * <UL>
- * <LI>running a lengthy compare operation under progress monitor control,
- * <LI>creating a UI for displaying the model and initializing the some widgets with the compare result,
- * <LI>tracking the dirty state of the model in case of merge,
- * <LI>saving the model.
- * </UL>
- * The Compare plug-in's <code>openCompareEditor</code> method takes an <code>ICompareEditorInput</code>
- * and starts sequencing through the above steps. If the compare result is not empty a new compare editor
- * is opened and takes over the sequence until eventually closed.
- * <p>
- * The <code>prepareInput</code> method should contain the
- * code of the compare operation. It is executed under control of a progress monitor
- * and can be canceled. If the result of the compare is not empty, that is if there are differences
- * that needs to be presented, the <code>ICompareEditorInput</code> should hold onto them and return them with
- * the <code>getCompareResult</code> method.
- * If the value returned from <code>getCompareResult</code> is not <code>null</code>
- * a compare editor is opened on the <code>ICompareEditorInput</code> with title and title image initialized by the
- * corresponding methods of the <code>ICompareEditorInput</code>.
- * <p>
- * Creation of the editor's SWT controls is delegated to the <code>createContents</code> method.
- * Here the SWT controls must be created and initialized  with the result of the compare operation.
- * <p>
- * If merging is allowed, the modification state of the compared constituents must be tracked and the dirty
- * state returned from method <code>isSaveNeeded</code>. The value <code>true</code> triggers a subsequent call
- * to <code>save</code> where the modified resources can be saved.
- * <p>
- * The most important part of this implementation is the setup of the compare/merge UI.
- * The UI uses a simple browser metaphor to present compare results.
- * The top half of the layout shows the structural compare results (e.g. added, deleted, and changed files),
- * the bottom half the content compare results (e.g. textual differences between two files).
- * A selection in the top pane is fed to the bottom pane. If a content viewer is registered
- * for the type of the selected object, this viewer is installed in the pane.
- * In addition if a structure viewer is registered for the selection type the top pane
- * is split horizontally to make room for another pane and the structure viewer is installed
- * in it. When comparing Java files this second structure viewer would show the structural
- * differences within a Java file, e.g. added, deleted or changed methods and fields.
- * <p>
- * Subclasses provide custom setups, e.g. for a Catchup/Release operation
- * by passing a subclass of <code>CompareConfiguration</code> and by implementing the <code>prepareInput</code> method.
- * If a subclass cannot use the <code>DiffTreeViewer</code> which is installed by default in the
- * top left pane, method <code>createDiffViewer</code> can be overridden.
- * 
- * @see CompareUI
- * @see CompareEditorInput
- */
-public abstract class CompareEditorInput implements IEditorInput, IPropertyChangeNotifier, IRunnableWithProgress {
-	
-	private static final boolean DEBUG= false;
-
-	/**
-	 * The name of the "dirty" property (value <code>"DIRTY_STATE"</code>).
-	 */
-	public static final String DIRTY_STATE= "DIRTY_STATE"; //$NON-NLS-1$
-		
-	private static final String COMPARE_EDITOR_IMAGE_NAME= "cview16/compare_view.gif"; //$NON-NLS-1$
-	private static Image fgTitleImage;
-	
-	private Splitter fComposite;
-	private CompareConfiguration fCompareConfiguration;
-	private CompareViewerSwitchingPane fStructureInputPane;
-	private CompareViewerSwitchingPane fStructurePane1;
-	private CompareViewerSwitchingPane fStructurePane2;
-	private CompareViewerSwitchingPane fContentInputPane;
-	private CompareViewerSwitchingPane fFocusPane;
-	private String fMessage;
-	private Object fInput;
-	private String fTitle;
-	private ListenerList fListenerList= new ListenerList();
-	private CompareNavigator fNavigator;
-	private boolean fDirty= false;
-	private ArrayList fDirtyViewers= new ArrayList();
-	private IPropertyChangeListener fDirtyStateListener;
-
-	private IgnoreWhiteSpaceAction fIgnoreWhitespace;
-	private ShowPseudoConflicts fShowPseudoConflicts;
-	
-	boolean fStructureCompareOnSingleClick= true;
-
-	/**
-	 * Creates a <code>CompareEditorInput</code> which is initialized with the given
-	 * compare configuration.
-	 * The compare configuration is passed to subsequently created viewers.
-	 *
-	 * @param configuration the compare configuration 
-	 */
-	public CompareEditorInput(CompareConfiguration configuration) {
-		fCompareConfiguration= configuration;
-		Assert.isNotNull(configuration);
-		
-		ResourceBundle bundle= CompareUIPlugin.getResourceBundle();
-		fIgnoreWhitespace= new IgnoreWhiteSpaceAction(bundle, configuration);
-		fShowPseudoConflicts= new ShowPseudoConflicts(bundle, configuration);
-		
-		fDirtyStateListener= new IPropertyChangeListener() {
-			public void propertyChange(PropertyChangeEvent e) {
-				String propertyName= e.getProperty();
-				if (CompareEditorInput.DIRTY_STATE.equals(propertyName)) {
-					boolean changed= false;
-					Object newValue= e.getNewValue();
-					if (newValue instanceof Boolean)
-						changed= ((Boolean)newValue).booleanValue();
-					setDirty(e.getSource(), changed);
-				}			
-			}
-		};
-
-		IPreferenceStore ps= configuration.getPreferenceStore();
-		if (ps != null)
-			fStructureCompareOnSingleClick= ps.getBoolean(ComparePreferencePage.OPEN_STRUCTURE_COMPARE);
-	}
-	
-	private boolean structureCompareOnSingleClick() {
-		return fStructureCompareOnSingleClick;
-	}
-		
-	/* (non Javadoc)
-	 * see IAdaptable.getAdapter
-	 */
-	public Object getAdapter(Class adapter) {
-		if (CompareNavigator.class.equals(adapter)) {
-			if (fNavigator == null)
-				fNavigator= new CompareNavigator(
-					new CompareViewerSwitchingPane[] {
-						fStructureInputPane,
-						fStructurePane1,
-						fStructurePane2,
-						fContentInputPane
-					}
-				);
-			return fNavigator;
-		}
-		return null;
-	}
-	
-	/* (non Javadoc)
-	 * see IEditorInput.getImageDescriptor
-	 */
-	public ImageDescriptor getImageDescriptor() {
-		return null;
-	}
-	
-	/* (non Javadoc)
-	 * see IEditorInput.getToolTipText
-	 */
-	public String getToolTipText() {
-		return getTitle();
-	}
-	
-	/* (non Javadoc)
-	 * see IEditorInput.getName
-	 */
-	public String getName() {
-		return getTitle();
-	}
-			
-	/**
-	 * Returns <code>null</code> since this editor cannot be persisted.
-	 *
-	 * @return <code>null</code> because this editor cannot be persisted
-	 */
-	public IPersistableElement getPersistable() {
-		return null;
-	}
-		
-	/**
-	 * Returns <code>false</code> to indicate that this input
-	 * should not appear in the "File Most Recently Used" menu.
-	 *
-	 * @return <code>false</code>
-	 */
-	public boolean exists() {
-		return false;
-	}
-	
-	/*
-	 * FIXME!
- 	 */
-	protected void setMessage(String message) {
-		fMessage= message;
-	}
-	
-	/*
-	 * FIXME!
- 	 */
-	public String getMessage() {
-		return fMessage;
-	}
-				
-	/**
-	 * Returns the title which will be used in the compare editor's title bar.
-	 * It can be set with <code>setTitle</code>.
-	 *
-	 * @return the title
-	 */
-	public String getTitle() {
-		if (fTitle == null)
-			return Utilities.getString("CompareEditorInput.defaultTitle"); //$NON-NLS-1$
-		return fTitle;
-	}
-	
-	/**
-	 * Sets the title which will be used when presenting the compare result.
-	 * This method must be called before the editor is opened.
-	 * 
-	 * @param title the title to use for the CompareEditor
-	 */
-	public void setTitle(String title) {
-		fTitle= title;
-	}
-	
-	/**
-	 * Returns the title image which will be used in the compare editor's title bar.
-	 * Returns the title image which will be used when presenting the compare result.
-	 * This implementation returns a generic compare icon.
-	 * Subclasses can override.
-	 *
-	 * @return the title image, or <code>null</code> if none
-	 */
-	public Image getTitleImage() {
-		if (fgTitleImage == null) {
-			fgTitleImage= CompareUIPlugin.getImageDescriptor(COMPARE_EDITOR_IMAGE_NAME).createImage();
-			CompareUI.disposeOnShutdown(fgTitleImage);
-		}
-		return fgTitleImage;
-	}
-	
-	/**
-	 * Returns the configuration object for the viewers within the compare editor.
-	 * Returns the configuration which was passed to the constructor.
-	 *
-	 * @return the compare configuration
-	 */
-	public CompareConfiguration getCompareConfiguration() {
-		return fCompareConfiguration;
-	}
-
-	/**
-	 * Adds standard actions to the given <code>ToolBarManager</code>.
-	 * <p>
-	 * Subclasses may override to add their own actions.
-	 * </p>
-	 *
-	 * @param toolBarManager the <code>ToolBarManager</code> to which to contribute
-	 */
-	public void contributeToToolBar(ToolBarManager toolBarManager) {
-		
-		toolBarManager.add(new Separator());
-		toolBarManager.add(fIgnoreWhitespace);
-		toolBarManager.add(fShowPseudoConflicts);
-	}
-	
-	/**
-	 * Runs the compare operation and stores the compare result.
-	 *
-	 * @param monitor the progress monitor to use to display progress and receive
-	 *   requests for cancelation
-	 * @exception InvocationTargetException if the <code>prepareInput</code> method must propagate a checked exception,
-	 * 	it should wrap it inside an <code>InvocationTargetException</code>; runtime exceptions are automatically
-	 *  wrapped in an <code>InvocationTargetException</code> by the calling context
-	 * @exception InterruptedException if the operation detects a request to cancel, 
-	 *  using <code>IProgressMonitor.isCanceled()</code>, it should exit by throwing 
-	 *  <code>InterruptedException</code>
-	 */
-	public void run(IProgressMonitor monitor) throws InterruptedException, InvocationTargetException {
-		fInput= prepareInput(monitor);
-	}
-
-	/**
-	 * Runs the compare operation and returns the compare result.
-	 * If <code>null</code> is returned no differences were found and no compare editor needs to be opened.
-	 * Progress should be reported to the given progress monitor.
-	 * A request to cancel the operation should be honored and acknowledged 
-	 * by throwing <code>InterruptedException</code>.
-	 * <p>
-	 * Note: this method is typically called in a modal context thread which doesn't have a Display assigned.
-	 * Implementors of this method shouldn't therefore allocated any SWT resources in this method.
-	 * </p>
-	 *
-	 * @param monitor the progress monitor to use to display progress and receive
-	 *   requests for cancelation
-	 * @return the result of the compare operation, or <code>null</code> if there are no differences
-	 * @exception InvocationTargetException if the <code>prepareInput</code> method must propagate a checked exception,
-	 * 	it should wrap it inside an <code>InvocationTargetException</code>; runtime exceptions are automatically
-	 *  wrapped in an <code>InvocationTargetException</code> by the calling context
-	 * @exception InterruptedException if the operation detects a request to cancel, 
-	 *  using <code>IProgressMonitor.isCanceled()</code>, it should exit by throwing 
-	 *  <code>InterruptedException</code>
-	 */
-	protected abstract Object prepareInput(IProgressMonitor monitor)
-				throws InvocationTargetException, InterruptedException;
-	 
-	/**
-	 * Returns the compare result computed by the most recent call to the
-	 * <code>run</code> method. Returns <code>null</code> if no
-	 * differences were found.
-	 *
-	 * @return the compare result prepared in method <code>prepareInput</code>
-	 *   or <code>null</code> if there were no differences
-	 */
-	public Object getCompareResult() {
-		return fInput;
-	}
-	
-	/**
-	 * Create the SWT controls that are used to display the result of the compare operation.
-	 * Creates the SWT Controls and sets up the wiring between the individual panes.
-	 * This implementation creates all four panes but makes only the necessary ones visible.
-	 * Finally it feeds the compare result into the top left structure viewer
-	 * and the content viewer.
-	 * <p>
-	 * Subclasses may override if they need to change the layout or wiring between panes.
-	 *
-	 * @param parent the parent control under which the control must be created
-	 * @return the SWT control hierarchy for the compare editor
-	 */
-	public Control createContents(Composite parent) {
-
-		fComposite= new Splitter(parent, SWT.VERTICAL);
-		fComposite.setData(this);
-			
-		final Splitter h= new Splitter(fComposite, SWT.HORIZONTAL);
-
-		fStructureInputPane= new CompareViewerSwitchingPane(h, SWT.BORDER | SWT.FLAT, true) {
-			protected Viewer getViewer(Viewer oldViewer, Object input) {
-				if (input instanceof DiffNode) {
-					DiffNode dn= (DiffNode) input;
-					if (dn.hasChildren())
-						return createDiffViewer(this);
-				}
-				if (input instanceof ICompareInput)
-					return findStructureViewer(oldViewer, (ICompareInput)input, this);
-				return null;
-			}
-		};
-		fFocusPane= fStructureInputPane;
-		
-		fStructurePane1= new CompareViewerSwitchingPane(h, SWT.BORDER | SWT.FLAT, true) {
-			protected Viewer getViewer(Viewer oldViewer, Object input) {
-				if (input instanceof ICompareInput)
-					return findStructureViewer(oldViewer, (ICompareInput)input, this);
-				return null;
-			}
-		};
-		h.setVisible(fStructurePane1, false);
-		
-		fStructurePane2= new CompareViewerSwitchingPane(h, SWT.BORDER | SWT.FLAT, true) {
-			protected Viewer getViewer(Viewer oldViewer, Object input) {
-				if (input instanceof ICompareInput)
-					return findStructureViewer(oldViewer, (ICompareInput)input, this);
-				return null;
-			}
-		};
-		h.setVisible(fStructurePane2, false);
-				
-		fContentInputPane= new CompareViewerSwitchingPane(fComposite, SWT.BORDER | SWT.FLAT) {
-			protected Viewer getViewer(Viewer oldViewer, Object input) {
-				if (input instanceof ICompareInput)
-					return findContentViewer(oldViewer, (ICompareInput)input, this);
-				return null;
-			}
-		};
-		fComposite.setVisible(h, false);
-		fComposite.setVisible(fContentInputPane, true);
-		
-		fComposite.setWeights(new int[] { 30, 70 });
-		
-		fComposite.layout();
-
-		// setup the wiring for top left pane
-		fStructureInputPane.addOpenListener(
-			new IOpenListener() {
-				public void open(OpenEvent oe) {
-					feed1(oe.getSelection());
-				}
-			}
-		);
-		fStructureInputPane.addSelectionChangedListener(
-			new ISelectionChangedListener() {
-				public void selectionChanged(SelectionChangedEvent e) {
-					ISelection s= e.getSelection();
-					if (s == null || s.isEmpty())
-						feed1(s);
-				}
-			}
-		);
-		fStructureInputPane.addDoubleClickListener(
-			new IDoubleClickListener() {
-				public void doubleClick(DoubleClickEvent event) {
-					feedDefault1(event.getSelection());
-				}
-			}
-		);
-		
-		fStructurePane1.addSelectionChangedListener(
-			new ISelectionChangedListener() {
-				public void selectionChanged(SelectionChangedEvent e) {
-					feed2(e.getSelection());
-				}
-			}
-		);
-
-		fStructurePane2.addSelectionChangedListener(
-			new ISelectionChangedListener() {
-				public void selectionChanged(SelectionChangedEvent e) {
-					feed3(e.getSelection());
-				}
-			}
-		);		
-
-		if (fInput instanceof ICompareInput) {
-			fStructureInputPane.setInput((ICompareInput) fInput);
-			ISelection sel= fStructureInputPane.getSelection();
-			if (sel == null || sel.isEmpty())
-				feed1(sel);	// we only feed downstream viewers if the top left pane is empty
-		}
-		
-		fComposite.setData("Nav", //$NON-NLS-1$
-			new CompareViewerSwitchingPane[] {
-				fStructureInputPane,
-				fStructurePane1,
-				fStructurePane2,
-				fContentInputPane
-			}
-		);
-	
-		return fComposite;
-	}
-	
-	private void feed1(final ISelection selection) {
-		BusyIndicator.showWhile(fComposite.getDisplay(),
-			new Runnable() {
-				public void run() {
-					if (selection == null || selection.isEmpty()) {
-						Object input= fStructureInputPane.getInput();
-						fContentInputPane.setInput(input);
-						fStructurePane2.setInput(null); // clear downstream pane
-						fStructurePane1.setInput(null);
-					} else {
-						Object input= getElement(selection);
-						fContentInputPane.setInput(input);
-						if (structureCompareOnSingleClick())
-							fStructurePane1.setInput(input);
-						fStructurePane2.setInput(null); // clear downstream pane
-						if (fStructurePane1.getInput() != input)
-							fStructurePane1.setInput(null);
-					}
-				}
-			}
-		);
-	}
-	
-	private void feedDefault1(final ISelection selection) {
-		BusyIndicator.showWhile(fComposite.getDisplay(),
-			new Runnable() {
-				public void run() {
-					if (!selection.isEmpty())
-						fStructurePane1.setInput(getElement(selection));
-				}
-			}
-		);
-	}
-	
-	private void feed2(final ISelection selection) {
-		BusyIndicator.showWhile(fComposite.getDisplay(),
-			new Runnable() {
-				public void run() {
-					if (selection.isEmpty()) {
-						Object input= fStructurePane1.getInput();
-						fContentInputPane.setInput(input);
-						fStructurePane2.setInput(null);
-					} else {
-						Object input= getElement(selection);
-						fContentInputPane.setInput(input);
-						fStructurePane2.setInput(input);
-					}
-				}
-			}
-		);
-	}
-	
-	private void feed3(final ISelection selection) {
-		BusyIndicator.showWhile(fComposite.getDisplay(),
-			new Runnable() {
-				public void run() {
-					if (selection.isEmpty())
-						fContentInputPane.setInput(fStructurePane2.getInput());
-					else
-						fContentInputPane.setInput(getElement(selection));
-				}
-			}
-		);
-		
-	}
-	
-	/**
-	 * Returns the first element of the given selection if the selection 
-	 * is a <code>IStructuredSelection</code> with exactly one element. Returns
-	 * <code>null</code> otherwise.
-	 *
-	 * @param selection the selection
-	 * @return the first element of the selection, or <code>null</code>
-	 */
-	private static Object getElement(ISelection selection) {
-		if (selection instanceof IStructuredSelection) {
-			IStructuredSelection ss= (IStructuredSelection) selection;
-			if (ss.size() == 1)
-				return ss.getFirstElement();
-		}
-		return null;
-	}
-	
-	/**
-	 * Asks this input to take focus within its container (editor).
-	 * <p>
-	 * Clients should not call this method but they may
-	 * override if they implement a different layout with different visual
-	 * components. Clients are free to call the inherited method.
-	 * </p>
-	 */
-	public void setFocus() {
-		if (fFocusPane != null) {
-			Viewer v= fFocusPane.getViewer();
-			if (v != null) {
-				Control c= v.getControl();
-				if (c != null)
-					c.setFocus();
-			}
-		} else if (fComposite != null)
-			fComposite.setFocus();
-	}
-	
-	/**
-	 * Factory method for creating a differences viewer for the top left pane.
-	 * It is called from <code>createContents</code> and returns a <code>DiffTreeViewer</code>.
-	 * <p>
-	 * Subclasses may override if they need a different viewer.
-	 * </p>
-	 *
-	 * @param parent the SWT parent control under which to create the viewer's SWT controls
-	 * @return a compare viewer for the top left pane
-	 */
-	public Viewer createDiffViewer(Composite parent) {
-		return new DiffTreeViewer(parent, fCompareConfiguration);
-	}
-
-	/**
-	 * Implements the dynamic viewer switching for structure viewers.
-	 * The method must return a compare viewer based on the old (or current) viewer
-	 * and a new input object. If the old viewer is suitable for showing the new input the old viewer
-	 * can be returned. Otherwise a new viewer must be created under the given parent composite or
-	 * <code>null</code> can be returned to indicate that no viewer could be found.
-	 * <p>
-	 * This implementation forwards the request to <code>CompareUI.findStructureViewer</code>.
-	 * <p>
-	 * Subclasses may override to implement a different strategy.
-	 * </p>
-	 *
-	 * @return a compare viewer which is suitable for the given input object or <code>null</code>
-	 */
-	public Viewer findStructureViewer(Viewer oldViewer, ICompareInput input, Composite parent) {
-		return CompareUIPlugin.findStructureViewer(oldViewer, input, parent, fCompareConfiguration);
-	}
-
-	/**
-	 * Implements the dynamic viewer switching for content viewers.
-	 * The method must return a compare viewer based on the old (or current) viewer
-	 * and a new input object. If the old viewer is suitable for showing the new input the old viewer
-	 * can be returned. Otherwise a new viewer must be created under the given parent composite or
-	 * <code>null</code> can be returned to indicate that no viewer could be found.
-	 * <p>
-	 * This implementation forwards the request to <code>CompareUI.findContentViewer</code>.
-	 * <p>
-	 * Subclasses may override to implement a different strategy.
-	 * </p>
-	 *
-	 * @return a compare viewer which is suitable for the given input object or <code>null</code>
-	 */
-	public Viewer findContentViewer(Viewer oldViewer, ICompareInput input, Composite parent) {
-
-		Viewer newViewer= CompareUIPlugin.findContentViewer(oldViewer, input, parent, fCompareConfiguration);
-		
-		boolean isNewViewer= newViewer != oldViewer;
-		if (DEBUG) System.out.println("CompareEditorInput.findContentViewer: " + isNewViewer); //$NON-NLS-1$
-		
-		if (isNewViewer && newViewer instanceof IPropertyChangeNotifier) {
-			final IPropertyChangeNotifier dsp= (IPropertyChangeNotifier) newViewer;
-			dsp.addPropertyChangeListener(fDirtyStateListener);
-			
-			Control c= newViewer.getControl();
-			c.addDisposeListener(
-				new DisposeListener() {
-					public void widgetDisposed(DisposeEvent e) {
-						dsp.removePropertyChangeListener(fDirtyStateListener);
-					}
-				}
-			);
-		}
-		
-		return newViewer;
-	}
-	
-	/**
-	 * Returns <code>true</code> if there are unsaved changes.
-	 * The value returned is the value of the <code>DIRTY_STATE</code> property of this input object.
-	 
-	 * Returns <code>true</code> if this input has unsaved changes,
-	 * that is if <code>setDirty(true)</code> has been called.
-	 * Subclasses don't have to override if the functionality provided by <doce>setDirty</code>
-	 * is sufficient.
-	 *
-	 * @return <code>true</code> if there are changes that need to be saved
-	 */
-	public boolean isSaveNeeded() {
-		return fDirty || fDirtyViewers.size() > 0;
-	}
-		
-	/**
-	 * Sets the dirty state of this input to the given
-	 * value and sends out a <code>PropertyChangeEvent</code> if the new value differs from the old value.
-	 *
-	 * @param dirty the dirty state for this compare input
-	 */
-	public void setDirty(boolean dirty) {
-
-		boolean confirmSave= true;
-		Object o= fCompareConfiguration.getProperty(CompareEditor.CONFIRM_SAVE_PROPERTY);
-		if (o instanceof Boolean)
-			confirmSave= ((Boolean)o).booleanValue();
-
-		if (!confirmSave) {
-			fDirty= dirty;
-			if (!fDirty)
-				fDirtyViewers.clear();
-		}
-	}
-	
-	private void setDirty(Object source, boolean dirty) {
-		Assert.isNotNull(source);
-		boolean oldDirty= fDirtyViewers.size() > 0;
-		if (dirty)
-			fDirtyViewers.add(source);
-		else
-			fDirtyViewers.remove(source);
-		boolean newDirty= fDirtyViewers.size() > 0;
-		if (DEBUG) System.out.println("setDirty("+source+", "+dirty+"): " + newDirty); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		if (oldDirty != newDirty)
-			Utilities.firePropertyChange(fListenerList, this, DIRTY_STATE, new Boolean(oldDirty), new Boolean(newDirty));
-	}	
-	
-	/* (non Javadoc)
-	 * see IPropertyChangeNotifier.addListener
-	 */
-	public void addPropertyChangeListener(IPropertyChangeListener listener) {
-		fListenerList.add(listener);
-	}
-
-	/* (non Javadoc)
-	 * see IPropertyChangeNotifier.removeListener
-	 */
-	public void removePropertyChangeListener(IPropertyChangeListener listener) {
-		fListenerList.remove(listener);
-	}
-
-	/**
-	 * Save any unsaved changes.
-	 * Empty implementation.
-	 * Subclasses must override to save any changes.
-	 *
-	 * @param progressMonitor an <code>IProgressMonitor</code> that the implementation of save may use to show progress
-	 * @deprecated Override method saveChanges instead.
-	 */
-	public void save(IProgressMonitor pm) {
-	}
-	
-	/**
-	 * Save any unsaved changes.
-	 * Subclasses must override to save any changes.
-	 * This implementation tries to flush changes in all viewers by
-	 * calling <code>ISavable.save</code> on them.
-	 *
-	 * @param progressMonitor an <code>IProgressMonitor</code> that the implementation of save may use to show progress
-	 * @since 2.0
-	 */
-	public void saveChanges(IProgressMonitor pm) throws CoreException {
-		
-		// flush changes in any dirty viewer
-		flushViewer(fStructureInputPane, pm);
-		flushViewer(fStructurePane1, pm);
-		flushViewer(fStructurePane2, pm);
-		flushViewer(fContentInputPane, pm);
-
-		save(pm);
-	}
-	
-	private static void flushViewer(CompareViewerSwitchingPane pane, IProgressMonitor pm) throws CoreException {
-		if (pane != null) {
-			Viewer v= pane.getViewer();
-			if (v instanceof ISavable)
-				((ISavable)v).save(pm);
-		}
-	}
-}
-
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/CompareUI.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/CompareUI.java
deleted file mode 100644
index 0c150c1..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/CompareUI.java
+++ /dev/null
@@ -1,281 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare;
-
-import java.util.ResourceBundle;
-
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.Viewer;
-
-import org.eclipse.core.runtime.IAdaptable;
-
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-
-import org.eclipse.compare.internal.CompareUIPlugin;
-import org.eclipse.compare.structuremergeviewer.ICompareInput;
-
-
-/**
- * The class <code>CompareUI</code> defines the entry point to initiate a configurable
- * compare operation on arbitrary resources. The result of the compare
- * is opened into a compare editor where the details can be browsed and
- * edited in dynamically selected structure and content viewers.
- * <p>
- * The Compare UI provides a registry for content and structure compare viewers,
- * which is initialized from extensions contributed to extension points
- * declared by this plug-in.
- */
-public final class CompareUI {
-	
-	/**
-	 * Compare Plug-in ID (value <code>"org.eclipse.compare"</code>).
-	 * @since 2.0
-	 */
-	public static final String PLUGIN_ID= "org.eclipse.compare"; //$NON-NLS-1$
-
-	/**
-	 * Image descriptor for the disabled icon of the 'Next' tool bar button.
-	 * @since 2.0
-	 */
-	public static final ImageDescriptor DESC_DTOOL_NEXT= CompareUIPlugin.getImageDescriptor(CompareUIPlugin.DTOOL_NEXT);
-	/**
-	 * Image descriptor for the normal icon of the 'Next' tool bar button.
-	 * @since 2.0
-	 */
-	public static final ImageDescriptor DESC_CTOOL_NEXT= CompareUIPlugin.getImageDescriptor(CompareUIPlugin.CTOOL_NEXT);
-	/**
-	 * Image descriptor for the roll-over icon of the 'Next' tool bar button.
-	 * @since 2.0
-	 */
-	public static final ImageDescriptor DESC_ETOOL_NEXT= CompareUIPlugin.getImageDescriptor(CompareUIPlugin.ETOOL_NEXT);
-	
-	/**
-	 * Image descriptor for the disabled icon of the 'Previous' tool bar button.
-	 * @since 2.0
-	 */
-	public static final ImageDescriptor DESC_DTOOL_PREV= CompareUIPlugin.getImageDescriptor(CompareUIPlugin.DTOOL_PREV);
-	/**
-	 * Image descriptor for the normal icon of the 'Previous' tool bar button.
-	 * @since 2.0
-	 */
-	public static final ImageDescriptor DESC_CTOOL_PREV= CompareUIPlugin.getImageDescriptor(CompareUIPlugin.CTOOL_PREV);
-	/**
-	 * Image descriptor for the roll-over icon of the 'Previous' tool bar button.
-	 * @since 2.0
-	 */
-	public static final ImageDescriptor DESC_ETOOL_PREV= CompareUIPlugin.getImageDescriptor(CompareUIPlugin.ETOOL_PREV);
-
-	/**
-	 * Name of the title property of a compare viewer.
- 	 * If a property with this name is set
- 	 * on the top level SWT control of a viewer, it is used as a title in the pane's
- 	 * title bar.
- 	 */
-	public static final String COMPARE_VIEWER_TITLE= "org.eclipse.compare.CompareUI.CompareViewerTitle"; //$NON-NLS-1$
-	
-	private CompareUI() {
-	}
-	
-	public static AbstractUIPlugin getPlugin() {
-		return CompareUIPlugin.getDefault();
-	}
-	
-	/**
-	 * Returns this plug-in's resource bundle.
-	 *
-	 * @return the plugin's resource bundle
-	 */
-	public static ResourceBundle getResourceBundle() {
-		return CompareUIPlugin.getResourceBundle();
-	}
-	
-	/**
-	 * Performs the comparison described by the given input and opens a
-	 * compare editor on the result in the currently active workbench page.
-	 *
-	 * @param input the input on which to open the compare editor
-	 */
-	public static void openCompareEditor(CompareEditorInput input) {
-		openCompareEditorOnPage(input, null);
-	}
-			
-	/**
-	 * Performs the comparison described by the given input and opens a
-	 * compare editor on the result in the given workbench page.
-	 *
-	 * @param input the input on which to open the compare editor
-	 * @param page the workbench page in which to open the compare editor
-	 * @since 2.1
-	 */
-	public static void openCompareEditorOnPage(CompareEditorInput input, IWorkbenchPage page) {
-		CompareUIPlugin plugin= CompareUIPlugin.getDefault();
-		if (plugin != null)
-			plugin.openCompareEditor(input, page);
-	}
-			
-	/**
-	 * Performs the comparison described by the given input and opens a
-	 * modal compare dialog on the result.
-	 *
-	 * @param input the input on which to open the compare dialog
-	 */
-	public static void openCompareDialog(CompareEditorInput input) {
-		CompareUIPlugin plugin= CompareUIPlugin.getDefault();
-		if (plugin != null)
-			plugin.openCompareDialog(input);
-	}
-			
-	/**
-	 * Registers an image descriptor for the given type.
-	 *
-	 * @param type the type
-	 * @param descriptor the image descriptor
-	 */
-	public static void registerImageDescriptor(String type, ImageDescriptor descriptor) {
-		CompareUIPlugin.registerImageDescriptor(type, descriptor);
-	}
-	
-	/**
-	 * Returns a shared image for the given type, or a generic image if none
-	 * has been registered for the given type.
-	 * <p>
-	 * Note: Images returned from this method will be automatically disposed
-	 * of when this plug-in shuts down. Callers must not dispose of these
-	 * images themselves.
-	 * </p>
-	 *
-	 * @param type the type
-	 * @return the image
-	 */
-	public static Image getImage(String type) {
-		return CompareUIPlugin.getImage(type);
-	}
-		
-	/**
-	 * Registers the given image for being disposed when this plug-in is shutdown.
-	 *
-	 * @param image the image to register for disposal
-	 */
-	public static void disposeOnShutdown(Image image) {
-		CompareUIPlugin.disposeOnShutdown(image);
-	}
-	
-	/**
-	 * Returns a shared image for the given adaptable.
-	 * This convenience method queries the given adaptable
-	 * for its <code>IWorkbenchAdapter.getImageDescriptor</code>, which it
-	 * uses to create an image if it does not already have one.
-	 * <p>
-	 * Note: Images returned from this method will be automatically disposed
-	 * of when this plug-in shuts down. Callers must not dispose of these
-	 * images themselves.
-	 * </p>
-	 *
-	 * @param adaptable the adaptable for which to find an image
-	 * @return an image
-	 */
-	public static Image getImage(IAdaptable adaptable) {
-		return CompareUIPlugin.getImage(adaptable);
-	}
-		
-	/**
-	 * Returns a structure compare viewer based on an old viewer and an input object.
-	 * If the old viewer is suitable for showing the input, the old viewer
-	 * is returned. Otherwise, the input's type is used to find a viewer descriptor in the registry
-	 * which in turn is used to create a structure compare viewer under the given parent composite.
-	 * If no viewer descriptor can be found <code>null</code> is returned.
-	 *
-	 * @param oldViewer a new viewer is only created if this old viewer cannot show the given input
-	 * @param input the input object for which to find a structure viewer
-	 * @param parent the SWT parent composite under which the new viewer is created
-	 * @param configuration a configuration which is passed to a newly created viewer
-	 * @return the compare viewer which is suitable for the given input object or <code>null</code>
-	 */
-	public static Viewer findStructureViewer(Viewer oldViewer, ICompareInput input, Composite parent,
-				CompareConfiguration configuration) {
-
-		return CompareUIPlugin.findStructureViewer(oldViewer, input, parent, configuration);
-	}
-	
-	/**
-	 * Returns a content compare viewer based on an old viewer and an input object.
-	 * If the old viewer is suitable for showing the input the old viewer
-	 * is returned. Otherwise the input's type is used to find a viewer descriptor in the registry
-	 * which in turn is used to create a content compare viewer under the given parent composite.
-	 * If no viewer descriptor can be found <code>null</code> is returned.
-	 *
-	 * @param oldViewer a new viewer is only created if this old viewer cannot show the given input
-	 * @param input the input object for which to find a content viewer
-	 * @param parent the SWT parent composite under which the new viewer is created
-	 * @param configuration a configuration which is passed to a newly created viewer
-	 * @return the compare viewer which is suitable for the given input object or <code>null</code>
-	 */
-	public static Viewer findContentViewer(Viewer oldViewer, ICompareInput input, Composite parent,
-			CompareConfiguration configuration) {
-		return CompareUIPlugin.findContentViewer(oldViewer, input, parent, configuration);
-	}
-	
-	/**
-	 * Returns a content compare viewer based on an old viewer and an input
-	 * object. If the old viewer is suitable for showing the input the old
-	 * viewer is returned. Otherwise the input's type is used to find a viewer
-	 * descriptor in the registry which in turn is used to create a content
-	 * compare viewer under the given parent composite. In order to determine
-	 * the input's type, the input must either implement IStreamContentAccessor
-	 * and ITypedElement or ICompareInput. If no viewer descriptor can be found
-	 * <code>null</code> is returned.
-	 *
-	 * @param oldViewer a new viewer is only created if this old viewer cannot show the given input
-	 * @param input the input object for which to find a content viewer. Must
-	 * implement either <code>IStreamContentAccessor</code> and<code>
-	 * ITypedElement</code> or <code>ICompareInput</code>.
-	 * @param parent the SWT parent composite under which the new viewer is created
-	 * @param configuration a configuration which is passed to a newly created viewer
-	 * @return the compare viewer which is suitable for the given input object or <code>null</code>
-	 */
-	public static Viewer findContentViewer(Viewer oldViewer, Object input, Composite parent,
-			CompareConfiguration configuration) {
-		
-		return CompareUIPlugin.findContentViewer(oldViewer, input, parent, configuration);
-	}
-
-	/**
-	 * Adds an alias for the given type.
-	 * Subsequent calls to <code>findStructureViewer</code>
-	 * treat alias as a synonym for type and return the same viewer.
-	 * <p>
-	 * Note: this method is for internal use only. Clients should not call this method. 
-	 * @param type a type name for which a viewer has been registered
-	 * @param alias a type name which should be treated as a synonym of type
-	 * @since 2.0
-	 */
-	public static void addStructureViewerAlias(String type, String alias) {
-		CompareUIPlugin.addStructureViewerAlias(type, alias);
-	}
-	
-	/**
-	 * Remove all aliases for the given type. This method does not affect
-	 * the initial binding between type and viewer. If no aliases exist for the
-	 * given type this method does nothing.
-	 * <p>
-	 * Note: this method is for internal use only. Clients should not call this method. 
-	 * @param type the type name for which all synonymes are removed.
-	 * @since 2.0
-	 */
-	public static void removeAllStructureViewerAliases(String type) {
-		CompareUIPlugin.removeAllStructureViewerAliases(type);
-	}
-}
-
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/CompareViewerPane.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/CompareViewerPane.java
deleted file mode 100644
index be2e177..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/CompareViewerPane.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.*;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.*;
-
-import org.eclipse.jface.action.ToolBarManager;
-
-/**
- * A <code>CompareViewerPane</code> is a convenience class which installs a
- * <code>CLabel</code> and a <code>Toolbar</code> in a <code>ViewForm</code>.
- * <P>
- * Double clicking onto the <code>CompareViewerPane</code>'s title bar maximizes
- * the <code>CompareViewerPane</code> to the size of an enclosing <code>Splitter</code>
- * (if there is one).
- * If more <code>Splitters</code> are nested maximizing walks up and
- * maximizes to the outermost <code>Splitter</code>.
- * 
- * @since 2.0
- */
-public class CompareViewerPane extends ViewForm {
-	
-	private ToolBarManager fToolBarManager;
-
-	/**
-	 * Constructs a new instance of this class given its parent
-	 * and a style value describing its behavior and appearance.
-	 *
-	 * @param parent a widget which will be the parent of the new instance (cannot be null)
-	 * @param style the style of widget to construct
-	 *
-	 * @exception IllegalArgumentException <ul>
-	 *    <li>ERROR_NULL_ARGUMENT - if the parent is null</li>
-	 * </ul>
-	 * @exception SWTException <ul>
-	 *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the parent</li>
-	 * </ul>
-	 */		
-	public CompareViewerPane(Composite container, int style) {
-		super(container, style);
-		
-		marginWidth= 0;
-		marginHeight= 0;
-		
-		CLabel label= new CLabel(this, SWT.NONE) {
-			public Point computeSize(int wHint, int hHint, boolean changed) {
-				return super.computeSize(wHint, Math.max(24, hHint), changed);
-			}
-		};
-		setTopLeft(label);
-		
-		MouseAdapter ml= new MouseAdapter() {
-			public void mouseDoubleClick(MouseEvent e) {
-				Control content= getContent();
-				if (content != null && content.getBounds().contains(e.x, e.y))
-					return;
-				Control parent= getParent();
-				if (parent instanceof Splitter)
-					((Splitter)parent).setMaximizedControl(CompareViewerPane.this);
-			}
-		};	
-				
-		addMouseListener(ml);
-		label.addMouseListener(ml);	
-	}
-	
-	/**
-	 * Set the pane's title text.
-	 * The value <code>null</code> clears it.
-	 * 
-	 * @param text the text to be displayed in the pane or null
-	 */
-	public void setText(String label) {
-		CLabel cl= (CLabel) getTopLeft();
-		cl.setText(label);		
-	}
-	
-	/**
-	 * Set the pane's title Image.
-	 * The value <code>null</code> clears it.
-	 * 
-	 * @param image the image to be displayed in the pane or null
-	 */
-	public void setImage(Image image) {
-		CLabel cl= (CLabel) getTopLeft();
-		cl.setImage(image);
-	}
-	
-	/**
-	 * Returns a <code>ToolBarManager</code> if the given parent is a
-	 * <code>CompareViewerPane</code> or <code>null</code> otherwise.
-	 * 
-	 * @param parent a <code>Composite</code> or <code>null</code>
-	 * @return a <code>ToolBarManager</code> if the given parent is a <code>CompareViewerPane</code> otherwise <code>null</code>
-	 */
-	public static ToolBarManager getToolBarManager(Composite parent) {
-		if (parent instanceof CompareViewerPane) {
-			CompareViewerPane pane= (CompareViewerPane) parent;
-			return pane.getToolBarManager();
-		}
-		return null;
-	}
-
-	/**
-	 * Clears tool items in the <code>CompareViewerPane</code>'s control bar.
-	 * 
-	 * @param parent a <code>Composite</code> or <code>null</code>
-	 */
-	public static void clearToolBar(Composite parent) {
-		ToolBarManager tbm= getToolBarManager(parent);
-		if (tbm != null) {
-			tbm.removeAll();
-			tbm.update(true);
-		}
-	}
-	
-	//---- private stuff
-	
-	private ToolBarManager getToolBarManager() {
-		if (fToolBarManager == null) {
-			ToolBar tb= new ToolBar(this, SWT.FLAT);
-			setTopCenter(tb);
-			fToolBarManager= new ToolBarManager(tb);
-		}
-		return fToolBarManager;
-	}
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/CompareViewerSwitchingPane.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/CompareViewerSwitchingPane.java
deleted file mode 100644
index 5568251..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/CompareViewerSwitchingPane.java
+++ /dev/null
@@ -1,371 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare;
-
-import java.text.MessageFormat;
-
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.*;
-
-import org.eclipse.jface.util.ListenerList;
-import org.eclipse.jface.viewers.*;
-
-import org.eclipse.compare.internal.*;
-import org.eclipse.compare.structuremergeviewer.ICompareInput;
-
-
-/**
- * A custom <code>CompareViewerPane</code> that supports dynamic viewer switching.
- * 
- * <p>
- * Clients must implement the viewer switching strategy by implementing
- * the <code>getViewer(Viewer, Object)</code> method.
- * <p>
- * If a property with the name <code>CompareUI.COMPARE_VIEWER_TITLE</code> is set
- * on the top level SWT control of a viewer, it is used as a title in the <code>CompareViewerPane</code>'s
- * title bar.
- * 
- * @since 2.0
- */
-public abstract class CompareViewerSwitchingPane extends CompareViewerPane
-				implements ISelectionChangedListener, ISelectionProvider, IDoubleClickListener {
-	
-	private Viewer fViewer;
-	private Object fInput;
-	private ListenerList fSelectionListeners= new ListenerList();
-	private ListenerList fDoubleClickListener= new ListenerList();
-	private ListenerList fOpenListener= new ListenerList();
-	private boolean fControlVisibility= false;
-	private String fTitle;
-	private String fTitleArgument;
-	
-	private IOpenListener fOpenHandler= new IOpenListener() {
-		public void open(OpenEvent event) {
-			Object[] listeners= fOpenListener.getListeners();
-			for (int i= 0; i < listeners.length; i++)
-				((IOpenListener) listeners[i]).open(event);
-		}
-	};
-	
-	/**
-	 * Creates a <code>CompareViewerSwitchingPane</code> as a child of the given parent and with the
-	 * specified SWT style bits.
-	 *
-	 * @param parent a widget which will be the parent of the new instance (cannot be null)
-	 * @param style the style of widget to construct
-	 *
-	 * @exception IllegalArgumentException <ul>
-	 *    <li>ERROR_NULL_ARGUMENT - if the parent is null</li>
-	 * </ul>
-	 * @exception SWTException <ul>
-	 *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the parent</li>
-	 * </ul>
-	 */		
-	public CompareViewerSwitchingPane(Composite parent, int style) {
-		this(parent, style, false);
-	}
-	
-	/**
-	 * Creates a <code>CompareViewerSwitchingPane</code> as a child of the given parent and with the
-	 * specified SWT style bits.
-	 *
-	 * @param parent a widget which will be the parent of the new instance (cannot be null)
-	 * @param style the style of widget to construct
-	 * @param visibility the initial visibility of the CompareViewerSwitchingPane
-	 *
-	 * @exception IllegalArgumentException <ul>
-	 *    <li>ERROR_NULL_ARGUMENT - if the parent is null</li>
-	 * </ul>
-	 * @exception SWTException <ul>
-	 *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the parent</li>
-	 * </ul>
-	 */		
-	public CompareViewerSwitchingPane(Composite parent, int style, boolean visibility) {
-		super(parent, style);
-
-		fControlVisibility= visibility;
-		
-		setViewer(new NullViewer(this));
-		
-		addDisposeListener(
-			new DisposeListener() {
-				public void widgetDisposed(DisposeEvent e) {
-					if (fViewer instanceof ISelectionProvider)
-						((ISelectionProvider) fViewer).removeSelectionChangedListener(CompareViewerSwitchingPane.this);
-					if (fViewer instanceof StructuredViewer) {
-						StructuredViewer sv= (StructuredViewer) fViewer;
-						sv.removeDoubleClickListener(CompareViewerSwitchingPane.this);
-						sv.removeOpenListener(fOpenHandler);
-					}
-					fViewer= null;
-					fInput= null;
-					fSelectionListeners= null;
-				}
-			}
-		);
-	}
-	
-	/**
-	 * Returns the current viewer.
-	 * 
-	 * @return the current viewer
-	 */
-	public Viewer getViewer() {
-		return fViewer;
-	}
-	
-	private void setViewer(Viewer newViewer) {
-		
-		if (newViewer == fViewer)
-			return;
-				
-		boolean oldEmpty= isEmpty();
-
-		if (fViewer != null) {
-			
-			if (fViewer instanceof ISelectionProvider)
-				 ((ISelectionProvider) fViewer).removeSelectionChangedListener(this);
-				 
-			if (fViewer instanceof StructuredViewer) {
-				StructuredViewer sv= (StructuredViewer) fViewer;
-				sv.removeDoubleClickListener(this);
-				sv.removeOpenListener(fOpenHandler);
-			}
-
-			Control content= getContent();
-			setContent(null);
-			
-			fViewer.setInput(null);
-								
-			if (content != null && !content.isDisposed())
-				content.dispose();
-
-		} else
-			oldEmpty= false;			
-		setContent(null);
-
-		fViewer= newViewer;
-
-		if (fViewer != null) {
-			// we have to remember and restore the old visibility of the CustomPane
-			// since setContent changes the visibility
-			boolean old= getVisible();
-			setContent(fViewer.getControl());
-			setVisible(old);	// restore old visibility
-
-			boolean newEmpty= isEmpty();
-
-			if (fViewer instanceof ISelectionProvider)
-				 ((ISelectionProvider) fViewer).addSelectionChangedListener(this);
-
-			if (fViewer instanceof StructuredViewer) {
-				StructuredViewer sv= (StructuredViewer) fViewer;
-				sv.addDoubleClickListener(this);
-				sv.addOpenListener(fOpenHandler);
-			}
-			
-			if (oldEmpty != newEmpty) {	// relayout my container
-				Composite parent= getParent();
-				if (parent instanceof Splitter)
-					((Splitter)parent).setVisible(this, fControlVisibility ? !newEmpty : true);
-			}
-				
-			layout(true);
-		}
-	}
-
-	/**
-	 * Returns the optional title argument that has been set with <code>setTitelArgument</code>
-	 * or <code>null</code> if no optional title argument has been set.
-	 * <p>
-	 * Note: this method is for internal use only. Clients should not call this method.
-	 * 
-	 * @return the optional title argument or <code>null</code>
-	 */
-	public String getTitleArgument() {
-		return fTitleArgument;
-	}
-
-	/**
-	 * Returns <code>true</code> if no viewer is installed or if the current viewer
-	 * is a <code>NullViewer</code>.
-	 * 
-	 * @return <code>true</code> if no viewer is installed or if the current viewer is a <code>NullViewer</code>
-	 */
-	public boolean isEmpty() {
-		return fViewer == null || fViewer instanceof NullViewer;
-	}
-
-	public void addSelectionChangedListener(ISelectionChangedListener l) {
-		fSelectionListeners.add(l);
-	}
-
-	public void removeSelectionChangedListener(ISelectionChangedListener l) {
-		fSelectionListeners.remove(l);
-	}
-
-	public void addDoubleClickListener(IDoubleClickListener l) {
-		fDoubleClickListener.add(l);
-	}
-
-	public void removeDoubleClickListener(IDoubleClickListener l) {
-		fDoubleClickListener.remove(l);
-	}
-
-	public void addOpenListener(IOpenListener l) {
-		fOpenListener.add(l);
-	}
-
-	public void removeOpenListener(IOpenListener l) {
-		fOpenListener.remove(l);
-	}
-
-	public void doubleClick(DoubleClickEvent event) {
-		Object[] listeners= fDoubleClickListener.getListeners();
-		for (int i= 0; i < listeners.length; i++)
-			((IDoubleClickListener) listeners[i]).doubleClick(event);
-	}
-
-	public ISelection getSelection() {
-		if (fViewer instanceof ISelectionProvider)
-			return ((ISelectionProvider) fViewer).getSelection();
-		return null;
-	}
-
-	public void setSelection(ISelection s) {
-		if (fViewer instanceof ISelectionProvider)
-			 ((ISelectionProvider) fViewer).setSelection(s);
-	}
-
-	public void selectionChanged(SelectionChangedEvent ev) {
-		Object[] listeners= fSelectionListeners.getListeners();
-		for (int i= 0; i < listeners.length; i++)
-			((ISelectionChangedListener) listeners[i]).selectionChanged(ev);
-	}
-	
-	private boolean hasFocus2() {
-		// do we have focus?
-		Display display= getDisplay();
-		if (display != null)
-			for (Control focus= display.getFocusControl(); focus != null; focus= focus.getParent())
-				if (focus == this)
-					return true;
-		return false;
-	}
-		
-	/**
-	 * Sets the input object of this pane. 
-	 * For this input object a suitable viewer is determined by calling the abstract
-	 * method <code>getViewer(Viewer, Object)</code>.
-	 * If the returned viewer differs from the current one, the old viewer
-	 * is disposed and the new one installed. Then the input object is fed
-	 * into the newly installed viewer by calling its <code>setInput(Object)</code> method.
-	 * If new and old viewer don't differ no new viewer is installed but just
-	 * <code>setInput(Object)</code> is called.
-	 * If the input is <code>null</code> the pane is cleared,
-	 * that is the current viewer is disposed.
-	 * 
-	 * @param input the new input object or <code>null</code>
-	 */ 
-	public void setInput(Object input) {
-
-		if (fInput == input)
-			return;
-			
-		boolean hadFocus= hasFocus2();
-		
-		fInput= input;
-
-		// viewer switching
-		Viewer newViewer= null;
-		if (input != null)
-			newViewer= getViewer(fViewer, input);
-
-		if (newViewer == null) {
-			if (fViewer instanceof NullViewer)
-				return;
-			newViewer= new NullViewer(this);
-		}
-		
-		setViewer(newViewer);
-
-		// set input
-		fViewer.setInput(input);
-
-		Image image= null;
-		if (!(fViewer instanceof NullViewer) && input instanceof ICompareInput)
-			image= ((ICompareInput)input).getImage();
-		setImage(image);
-		
-		String title= null;	
-		if (fViewer != null) {
-			Control c= fViewer.getControl();
-			if (c != null) {
-				Object data= c.getData(CompareUI.COMPARE_VIEWER_TITLE);
-				if (data instanceof String)
-					title= (String) data;
-				if (hadFocus)
-					c.setFocus();
-			}	
-		}
-			
-		fTitle= title;
-		updateTitle();
-	}
-	
-	/**
-	 * Sets an additional and optional argument for the pane's title.
-	 * Note: this method is for internal use only. Clients should not call this method.
-	 *  
-	 * @param argument an optional argument for the pane's title
-	 */
-	public void setTitleArgument(String argument) {
-		fTitleArgument= argument;
-		updateTitle();
-	}
-
-	private void updateTitle() {
-		if (fTitle != null) {
-			if (fTitleArgument != null) {
-				String format= CompareMessages.getString("CompareViewerSwitchingPane.Titleformat");	//$NON-NLS-1$
-				String t= MessageFormat.format(format, new String[] { fTitle, fTitleArgument } );
-				setText(t);
-			} else
-				setText(fTitle);			
-		} else {
-			setText("");	//$NON-NLS-1$
-		}
-	}
-
-	/**
-	 * Returns the current input of this pane or null if the pane has no input.
-	 * 
-	 * @return an <code>Object</code> that is the input to this pane or null if the pane has no input.
-	 */
-	public Object getInput() {
-		return fInput;
-	}
-
-	/**
-	 * Returns a viewer which is able to display the given input.
-	 * If no viewer can be found, <code>null</code> is returned.
-	 * The additional argument oldViewer represents the viewer currently installed
-	 * in the pane (or <code>null</code> if no viewer is installed).
-	 * It can be returned from this method if the current viewer can deal with the
-	 * input (and no new viewer must be created).
-	 *
-	 * @param oldViewer the currently installed viewer or <code>null</code>
-	 * @param input the input object for which a viewer must be determined or <code>null</code>
-	 * @return a viewer for the given input, or <code>null</code> if no viewer can be determined
-	 */
-	abstract protected Viewer getViewer(Viewer oldViewer, Object input);
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/EditionSelectionDialog.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/EditionSelectionDialog.java
deleted file mode 100644
index 5969b20..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/EditionSelectionDialog.java
+++ /dev/null
@@ -1,1126 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare;
-
-import java.util.HashMap;
-import java.util.ResourceBundle;
-import java.util.Date;
-import java.util.List;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.HashSet;
-import java.util.Calendar;
-import java.io.InputStream;
-import java.text.*;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.swt.widgets.TreeItem;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableItem;
-import org.eclipse.swt.widgets.Item;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.*;
-import org.eclipse.jface.util.Assert;
-import org.eclipse.jface.dialogs.*;
-
-import org.eclipse.core.runtime.CoreException;
-
-import org.eclipse.compare.internal.*;
-import org.eclipse.compare.structuremergeviewer.*;
-
-
-/**
- * A dialog where one input element can be compared against
- * a list of historic variants (editions) of the same input element.
- * The dialog can be used to implement functions like "Compare/Replace with Version" or
- * "Compare/Replace from Local History" on workspace resources.
- * <p>
- * In addition it is possible to specify a subsection of the input element
- * (e.g. a method in a Java source file) by means of a "path".
- * In this case the dialog compares only the subsection (as specified by the path)
- * with the corresponding subsection in the list of editions.
- * Only those editions are shown where the subsection differs from the same subsection in
- * another edition thereby minimizing the number of presented variants.
- * This functionality can be used to implement "Replace from Local History"
- * for the Java language.
- * <p>
- * Subsections of an input element are determined by first finding an
- * <code>IStructureCreator</code> for the input's type.
- * Then the method <code>locate</code> is used to extract the subsection.
- * <p>
- * Each edition (variant in the list of variants) must implement the <code>IModificationDate</code> interface
- * so that the dialog can sort the editions and present them in a tree structure where every
- * node corresponds one day.
- * <p>
- * The functionality is surfaced in a single function <code>selectEdition</code>.
- * <p>
- * Clients may instantiate this class; it is not intended to be subclassed.
- * </p>
- *
- * @see IModificationDate
- * @see ITypedElement
- */
-public class EditionSelectionDialog extends ResizableDialog {
-		
-	/**
-	 * An item in an underlying edition.
-	 */
-	private static class Pair {
-		
-		private ITypedElement fEdition;
-		private ITypedElement fItem;
-		private String fContent;
-		private IStructureCreator fStructureCreator;
-		private boolean fHasError= false;
-				
-		Pair(IStructureCreator structureCreator, ITypedElement edition, ITypedElement item) {
-			fStructureCreator= structureCreator;
-			fEdition= edition;
-			fItem= item;
-		}
-		
-		Pair(IStructureCreator structureCreator, ITypedElement edition) {
-			this(structureCreator, edition, edition);
-		}
-		
-		ITypedElement getEdition() {
-			return fEdition;
-		}
-
-		ITypedElement getItem() {
-			return fItem;
-		}
-		
-		/**
-		 * The content is lazily loaded
-		 */
-		private String getContent() {
-			if (fContent == null) {
-				if (fStructureCreator != null)
-					fContent= fStructureCreator.getContents(fItem, false);
-				else {
-					if (fItem instanceof IStreamContentAccessor) {
-						IStreamContentAccessor sca= (IStreamContentAccessor) fItem;
-						try {
-							InputStream is= sca.getContents();
-							if (is != null)
-								fContent= Utilities.readString(is);
-						} catch (CoreException ex) {
-						}
-					}
-				}
-				if (fContent == null)
-					fContent= ""; //$NON-NLS-1$
-			}
-			return fContent;
-		}
-		
-		/**
-		 * Compares content of item.
-		 */
-		public boolean equals(Object other) {
-			if (other != null && other.getClass() == getClass()) {
-				if (getContent().equals(((Pair)other).getContent()))
-					return true;
-			}
-			return super.equals(other);
-		}
-	}
-	
-	// Configuration options
-	private CompareConfiguration fCompareConfiguration;
-	private ArrayList fArrayList= new ArrayList();
-	/** use a side-by-side compare viewer */
-	private boolean fCompare= true;
-	/** show target on right hand side */
-	private boolean fTargetIsRight= false;
-	/** hide entries which have identical content */
-	private boolean fHideIdentical= true;
-	/** add mode if true, otherwise replace mode */
-	private boolean fAddMode= false;
-	/** compare mode if true, otherwise replace/add mode */
-	private boolean fCompareMode= false;
-	/** perform structure compare on editions */
-	private boolean fStructureCompare= false;
-	/** allow for multiple selection */
-	private boolean fMultiSelect= false;
-	
-	/**
-	 * Maps from members to their corresponding editions.
-	 * Has only a single entry if dialog is used in "Replace" (and not "Add") mode.
-	 */
-	private HashMap fMemberEditions;
-	/**
-	 * Maps from members to their corresponding selected edition.
-	 */
-	private HashMap fMemberSelection;
-	/** The editions of the current selected member */
-	private List fCurrentEditions;
-	private Thread fThread;
-	private Pair fTargetPair;
-	/** The selected edition in the edition viewer */
-	private ITypedElement fSelectedItem;
-	private String fTitleArg;
-	private Image fTitleImage;
-	
-	// SWT controls
-	private CompareViewerSwitchingPane fContentPane;
-	private Button fCommitButton;
-	private Table fMemberTable;
-	private CompareViewerPane fMemberPane;
-	private Tree fEditionTree;
-	private CompareViewerPane fEditionPane;
-	private Image fDateImage;
-	private Image fTimeImage;
-	private CompareViewerSwitchingPane fStructuredComparePane;
-	
-	/**
-	 * Creates a new modal, resizable dialog.
-	 * Various titles, icons, and labels are configured from the given resource bundle.
-	 * The following resource keys are used:
-	 * <pre>
-	 *	key         type          description
-	 *	title       String        dialog title
-	 *	width       Integer       initial width of dialog
-	 *	height      Integer       initial height of dialog
-	 *	treeTitleFormat   MessageFormat pane title for edition tree; arg 0 is the target
-	 *	dateIcon    String        icon for node in edition tree; path relative to plugin
-	 *	timeIcon    String        icon for leaf in edition tree; path relative to plugin
-	 *	todayFormat MessageFormat format string if date is todays date; arg 0 is date
-	 *	yesterdayFormat MessageFormat format string if date is yesterdays date; arg 0 is date
-	 *	dayFormat   MessageFormat format string if date is any other date; arg 0 is date
-	 *	editionLabel String       label for editions side of compare viewer; arg 0 is the date
-	 *	targetLabel  String       label for target side of compare viewer 
-	 *  buttonLabel  String       label for OK button; default is IDialogConstants.OK_LABEL
-	 * </pre>
-	 *
-	 * @param parent if not <code>null</code> the new dialog stays on top of this parent shell
-	 * @param bundle <code>ResourceBundle</code> to configure the dialog
-	 */
-	public EditionSelectionDialog(Shell parent, ResourceBundle bundle) {
-		super(parent, bundle);
-		
-		fCompareConfiguration= new CompareConfiguration();
-		fCompareConfiguration.setLeftEditable(false);
-		fCompareConfiguration.setRightEditable(false);
-				
-		String iconName= Utilities.getString(fBundle, "dateIcon", "obj16/day_obj.gif"); //$NON-NLS-2$ //$NON-NLS-1$
-		ImageDescriptor id= CompareUIPlugin.getImageDescriptor(iconName);
-		if (id != null)
-			fDateImage= id.createImage();
-		iconName= Utilities.getString(fBundle, "timeIcon", "obj16/resource_obj.gif"); //$NON-NLS-1$ //$NON-NLS-2$
-		id= CompareUIPlugin.getImageDescriptor(iconName);
-		if (id != null)
-			fTimeImage= id.createImage();
-	}
-		
-	/**
-	 * Sets an additional and optional argument for the edition pane's title.
-	 *  
-	 * @param titleArgument an optional argument for the edition pane's title
-	 * @since 2.0
-	 */
-	public void setEditionTitleArgument(String titleArgument) {
-		fTitleArg= titleArgument;
-	}
-	
-	/**
-	 * Sets an optional image for the edition pane's title.
-	 *  
-	 * @param titleImage an optional image for the edition pane's title
-	 * @since 2.0
-	 */
-	public void setEditionTitleImage(Image titleImage) {
-		fTitleImage= titleImage;
-	}
-	
-	/**
-	 * Select the previous edition (presenting a UI).
-	 *
-	 * @param target the input object against which the editions are compared; must not be <code>null</code>
-	 * @param editions the list of editions (element type: <code>ITypedElement</code>s)
-	 * @param path If <code>null</code> dialog shows full input; if non <code>null</code> it extracts a subsection
-	 * @return returns the selected edition or <code>null</code> if error occurred.
-	 * The returned <code>ITypedElement</code> is one of the original editions
-	 * if <code>path</code> was <code>null</code>; otherwise
-	 * it is an <code>ITypedElement</code> returned from <code>IStructureCreator.locate(path, item)</code>
-	 * @since 2.0
-	 */
-	public ITypedElement selectPreviousEdition(final ITypedElement target, ITypedElement[] inputEditions, Object ppath) {
-		Assert.isNotNull(target);
-		fTargetPair= new Pair(null, target);
-		
-		// sort input editions
-		final int count= inputEditions.length;
-		final IModificationDate[] editions= new IModificationDate[count];
-		for (int i= 0; i < count; i++)
-			editions[i]= (IModificationDate) inputEditions[i];
-		if (count > 1)
-			internalSort(editions, 0, count-1);
-			
-		// find StructureCreator if ppath is not null
-		IStructureCreator structureCreator= null;
-		if (ppath != null) {
-			String type= target.getType();
-			IStructureCreatorDescriptor scd= CompareUIPlugin.getStructureCreator(type);
-			if (scd != null)
-				structureCreator= scd.createStructureCreator();
-		}
-
-		if (fAddMode) {
-			// does not work in add mode
-			return null;
-		}
-			
-		if (structureCreator != null) {
-			Pair pair= createPair(structureCreator, ppath, target);
-			if (pair != null)
-				fTargetPair= pair;
-			else
-				ppath= null;	// couldn't extract item because of error
-		}
-					
-		// from front (newest) to back (oldest)
-		for (int i= 0; i < count; i++) {
-				
-			ITypedElement edition= (ITypedElement) editions[i];
-			Pair pair= null;
-			
-			if (structureCreator != null && ppath != null) {
-				// extract sub element from edition
-				pair= createPair(structureCreator, ppath, edition);
-			} else {
-				pair= new Pair(null, edition);
-			}
-			
-			if (pair != null && pair.fHasError)
-				return null;
-				
-			if (pair != null && !fTargetPair.equals(pair)) {
-				return pair.fItem;
-			}
-		}
-		
-		// nothing found
-		return null;
-	}
-	
-	/**
-	 * Presents this modal dialog with the functionality described in the class comment above.
-	 *
-	 * @param target the input object against which the editions are compared; must not be <code>null</code>
-	 * @param editions the list of editions (element type: <code>ITypedElement</code>s)
-	 * @param path If <code>null</code> dialog shows full input; if non <code>null</code> it extracts a subsection
-	 * @return returns the selected edition or <code>null</code> if dialog was cancelled.
-	 * The returned <code>ITypedElement</code> is one of the original editions
-	 * if <code>path</code> was <code>null</code>; otherwise
-	 * it is an <code>ITypedElement</code> returned from <code>IStructureCreator.locate(path, item)</code>
-	 */
-	public ITypedElement selectEdition(final ITypedElement target, ITypedElement[] inputEditions, Object ppath) {
-		
-		Assert.isNotNull(target);
-		fTargetPair= new Pair(null, target);
-		
-		// sort input editions
-		final int count= inputEditions.length;
-		final IModificationDate[] editions= new IModificationDate[count];
-		for (int i= 0; i < count; i++)
-			editions[i]= (IModificationDate) inputEditions[i];
-		if (count > 1)
-			internalSort(editions, 0, count-1);
-			
-		// find StructureCreator if ppath is not null
-		IStructureCreator structureCreator= null;
-		if (ppath != null) {
-			String type= target.getType();
-			IStructureCreatorDescriptor scd= CompareUIPlugin.getStructureCreator(type);
-			if (scd != null)
-				structureCreator= scd.createStructureCreator();
-		}
-
-		if (!fAddMode) {
-			// replace mode
-			
-			if (structureCreator != null) {
-				Pair pair= createPair(structureCreator, ppath, target);
-				if (pair != null)
-					fTargetPair= pair;
-				else
-					ppath= null;	// couldn't extract item because of error
-			}
-			
-			// set the left and right labels for the compare viewer
-			String targetLabel= getTargetLabel(target, fTargetPair.getItem());
-			if (fTargetIsRight)
-				fCompareConfiguration.setRightLabel(targetLabel);
-			else
-				fCompareConfiguration.setLeftLabel(targetLabel);
-			
-			if (structureCreator != null && ppath != null) {	// extract sub element
-				
-				final IStructureCreator sc= structureCreator;
-				final Object path= ppath;
-				
-				// construct the comparer thread
-				// and perform the background extract
-				fThread= new Thread() {
-					public void run() {
-																				
-						// from front (newest) to back (oldest)
-						for (int i= 0; i < count; i++) {
-								
-							if (fEditionTree == null || fEditionTree.isDisposed())
-								break;
-							ITypedElement edition= (ITypedElement) editions[i];
-							
-							// extract sub element from edition
-							Pair pair= createPair(sc, path, edition);
-							if (pair != null)
-								sendPair(pair);
-						}
-						sendPair(null);
-					}
-				};
-			} else {
-				// create tree widget
-				create();
-				
-				// from front (newest) to back (oldest)
-				for (int i= 0; i < count; i++)
-					addMemberEdition(new Pair(null, (ITypedElement) editions[i]));
-			}
-			
-		} else {
-			// add mode
-			final Object container= ppath;
-			Assert.isNotNull(container);
-								
-			if (structureCreator == null)
-				return null;	// error
-		
-			// extract all elements of container
-			final HashSet current= new HashSet();
-			IStructureComparator sco= structureCreator.locate(container, target);
-			if (sco != null) {
-				Object[] children= sco.getChildren();
-				if (children != null)
-					for (int i= 0; i < children.length; i++)
-						current.add(children[i]);
-			}
-			
-			final IStructureCreator sc= structureCreator;
-			
-			// construct the comparer thread
-			// and perform the background extract
-			fThread= new Thread() {
-				public void run() {
-					
-					// from front (newest) to back (oldest)
-					for (int i= 0; i < count; i++) {
-							
-						if (fEditionTree == null || fEditionTree.isDisposed())
-							break;
-						ITypedElement edition= (ITypedElement) editions[i];
-						
-						IStructureComparator sco2= sc.locate(container, edition);
-						if (sco2 != null) {
-							Object[] children= sco2.getChildren();
-							if (children != null) {
-								for (int i2= 0; i2 < children.length; i2++) {
-									ITypedElement child= (ITypedElement) children[i2];
-									if (!current.contains(child))
-										sendPair(new Pair(sc, edition, child));
-								}
-							}
-						}
-					}
-					sendPair(null);
-				}
-			};
-		}
-		
-		open();
-		
-		if (getReturnCode() == OK)
-			return fSelectedItem;
-		return null;
-	}
-	
-	private Pair createPair(IStructureCreator sc, Object path, ITypedElement input) {
-		IStructureComparator scmp= sc.locate(path, input);
-		if (scmp == null && sc.getStructure(input) == null) {	// parse error
-			Pair p= new Pair(sc, input);
-			p.fHasError= true;
-			return p;
-		}
-		if (scmp instanceof ITypedElement)
-			return new Pair(sc, input, (ITypedElement) scmp);
-		return null;
-	}
-
-	/**
-	 * Controls whether identical entries are shown or not (default).
-	 * This method must be called before <code>selectEdition</code>.
-	 *
-	 * @param hide if true identical entries are hidden; otherwise they are shown.
-	 * @since 2.0
-	 */
-	public void setHideIdenticalEntries(boolean hide) {
-		fHideIdentical= hide;
-	}
-
-	/**
-	 * Controls whether workspace target is on the left (the default) or right hand side.
-	 *
-	 * @param isRight if true target is shown on right hand side.
-	 * @since 2.0
-	 */
-	public void setTargetIsRight(boolean isRight) {
-		fTargetIsRight= isRight;
-	}
-		
-	/**
-	 * Controls whether the <code>EditionSelectionDialog</code> is in 'add' mode
-	 * or 'replace' mode (the default).
-	 *
-	 * @param addMode if true dialog is in 'add' mode.
-	 * @since 2.0
-	 */
-	public void setAddMode(boolean addMode) {
-		fAddMode= addMode;
-		fMultiSelect= addMode;
-	}
-	
-	/**
-	 * Controls whether the <code>EditionSelectionDialog</code> is in 'compare' mode
-	 * or 'add/replace' (the default) mode. 
-	 *
-	 * @param addMode if true dialog is in 'add' mode.
-	 * @since 2.0
-	 */
-	public void setCompareMode(boolean compareMode) {
-		fCompareMode= compareMode;
-		fStructureCompare= fCompareMode && !fAddMode;
-	}
-	
-	/**
-	 * Returns the input target that has been specified with the most recent call
-	 * to <code>selectEdition</code>. If a not <code>null</code> path was specified this method
-	 * returns a subsection of this target (<code>IStructureCreator.locate(path, target)</code>)
-	 * instead of the input target.
-	 * <p>
-	 * For example if the <code>target</code> is a Java compilation unit and <code>path</code> specifies
-	 * a method, the value returned from <code>getTarget</code> will be the method not the compilation unit.
-	 *
-	 * @return the last specified target or a subsection thereof.
-	 */
-	public ITypedElement getTarget() {
-		return fTargetPair.getItem();
-	}
- 	
-	/**
-	 * Returns the editions that have been selected with the most
-	 * recent call to <code>selectEdition</code>.
-	 * 
-	 * @return the selected editions as an array.
-	 * @since 2.1
-	 */
-	public ITypedElement[] getSelection() {
-		ArrayList result= new ArrayList();
-		if (fMemberSelection != null) {
-			Iterator iter= fArrayList.iterator();
-			for (int i= 0; iter.hasNext(); i++) {
-				Object edition= iter.next();		
-				Object item= fMemberSelection.get(edition);
-				if (item != null)
-					result.add(item);
-			}
-		} else if (fSelectedItem != null)
-			result.add(fSelectedItem);
-		return (ITypedElement[]) result.toArray(new ITypedElement[result.size()]);
-	}
-		
- 	/**
- 	 * Returns a label for identifying the target side of a compare viewer.
- 	 * This implementation extracts the value for the key "targetLabel" from the resource bundle
- 	 * and passes it as the format argument to <code>MessageFormat.format</code>.
- 	 * The single format argument for <code>MessageFormat.format</code> ("{0}" in the format string)
- 	 * is the name of the given input element.
-	 * <p>
-	 * Subclasses may override to create their own label.
-	 * </p>
- 	 *
- 	 * @param target the target element for which a label must be returned
- 	 * @param item if a path has been specified in <code>selectEdition</code> a sub element of the given target; otherwise the same as target
- 	 * @return a label the target side of a compare viewer
-  	 */
-	protected String getTargetLabel(ITypedElement target, ITypedElement item) {
-		String format= null;
-		if (target instanceof ResourceNode)
-			format= Utilities.getString(fBundle, "workspaceTargetLabel", null); //$NON-NLS-1$
-		if (format == null)
-			format= Utilities.getString(fBundle, "targetLabel"); //$NON-NLS-1$
-		if (format == null)
-			format= "x{0}"; //$NON-NLS-1$
-		
-		return MessageFormat.format(format, new Object[] { target.getName() });
-	}
-	
- 	/**
- 	 * Returns a label for identifying the edition side of a compare viewer.
- 	 * This implementation extracts the value for the key "editionLabel" from the resource bundle
- 	 * and passes it as the format argument to <code>MessageFormat.format</code>.
- 	 * The single format argument for <code>MessageFormat.format</code> ("{0}" in the format string)
- 	 * is the formatted modification date of the given input element.
- 	 * <p>
-	 * Subclasses may override to create their own label.
-	 * </p>
-	 *
-	 * @param selectedEdition the selected edition for which a label must be returned
- 	 * @param item if a path has been specified in <code>selectEdition</code> a sub element of the given selectedEdition; otherwise the same as selectedEdition
- 	 * @return a label for the edition side of a compare viewer
-  	 */
-	protected String getEditionLabel(ITypedElement selectedEdition, ITypedElement item) {
-		String format= null;
-		if (selectedEdition instanceof ResourceNode)
-			format= Utilities.getString(fBundle, "workspaceEditionLabel", null);	//$NON-NLS-1$
-		else if (selectedEdition instanceof HistoryItem)
-			format= Utilities.getString(fBundle, "historyEditionLabel", null);	//$NON-NLS-1$
-		if (format == null)
-			format= Utilities.getString(fBundle, "editionLabel");	//$NON-NLS-1$
-		if (format == null)
-			format= "x{0}";	//$NON-NLS-1$
-		
-
-		String date= "";	//$NON-NLS-1$
-		if (selectedEdition instanceof IModificationDate) {
-			long modDate= ((IModificationDate)selectedEdition).getModificationDate();
-			date= DateFormat.getDateTimeInstance().format(new Date(modDate));
-		}
-		
-		return MessageFormat.format(format, new Object[] { date });
-	}
-	
- 	/**
- 	 * Returns a label for identifying a node in the edition tree viewer.
- 	 * This implementation extracts the value for the key "workspaceTreeFormat" or
- 	 * "treeFormat" (in that order) from the resource bundle
- 	 * and passes it as the format argument to <code>MessageFormat.format</code>.
- 	 * The single format argument for <code>MessageFormat.format</code> ("{0}" in the format string)
- 	 * is the formatted modification date of the given input element.
- 	 * <p>
-	 * Subclasses may override to create their own label.
-	 * </p>
-	 *
-	 * @param edition the edition for which a label must be returned
- 	 * @param item if a path has been specified in <code>edition</code> a sub element of the given edition; otherwise the same as edition
- 	 * @return a label of a node in the edition tree viewer
-	 * @since 2.0
-	 */
-	protected String getShortEditionLabel(ITypedElement edition, ITypedElement item, Date date) {
-		String format= null;
-		if (edition instanceof ResourceNode)
-			format= Utilities.getString(fBundle, "workspaceTreeFormat", null);	//$NON-NLS-1$
-		if (format == null)
-			format= Utilities.getString(fBundle, "treeFormat", null);	//$NON-NLS-1$
-		if (format == null)
-			format= "x{0}"; //$NON-NLS-1$
-
-		String ds= DateFormat.getTimeInstance().format(date);
-		return MessageFormat.format(format, new Object[] { ds });
-	}
-	
- 	/**
- 	 * Returns an image for identifying the edition side of a compare viewer.
- 	 * This implementation extracts the value for the key "editionLabel" from the resource bundle
- 	 * and passes it as the format argument to <code>MessageFormat.format</code>.
- 	 * The single format argument for <code>MessageFormat.format</code> ("{0}" in the format string)
- 	 * is the formatted modification date of the given input element.
- 	 * <p>
-	 * Subclasses may override to create their own label.
-	 * </p>
-	 *
-	 * @param selectedEdition the selected edition for which a label must be returned
- 	 * @param item if a path has been specified in <code>selectEdition</code> a sub element of the given selectedEdition; otherwise the same as selectedEdition
- 	 * @return a label the edition side of a compare viewer
-  	 * @since 2.0
- 	 */
-	protected Image getEditionImage(ITypedElement selectedEdition, ITypedElement item) {
-		if (selectedEdition instanceof ResourceNode)
-			return selectedEdition.getImage();
-		if (selectedEdition instanceof HistoryItem)
-			return fTimeImage;
-		return null;
-	}
-	
- 	/* (non Javadoc)
- 	 * Creates SWT control tree.
- 	 */
-	protected synchronized Control createDialogArea(Composite parent2) {
-		
-		Composite parent= (Composite) super.createDialogArea(parent2);
-
-		getShell().setText(Utilities.getString(fBundle, "title")); //$NON-NLS-1$
-		
-		Splitter vsplitter= new Splitter(parent,  SWT.VERTICAL);
-		vsplitter.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL
-					| GridData.VERTICAL_ALIGN_FILL | GridData.GRAB_VERTICAL));
-
-		vsplitter.addDisposeListener(
-			new DisposeListener() {
-				public void widgetDisposed(DisposeEvent e) {
-					if (fDateImage != null)
-						fDateImage.dispose();
-					if (fTimeImage != null)
-						fTimeImage.dispose();
-				}
-			}
-		);
-		
-		if (fAddMode) {
-			// we need two panes: the left for the elements, the right one for the editions
-			Splitter hsplitter= new Splitter(vsplitter,  SWT.HORIZONTAL);
-			
-			fMemberPane= new CompareViewerPane(hsplitter, SWT.BORDER | SWT.FLAT);
-			fMemberPane.setText(Utilities.getString(fBundle, "memberPaneTitle")); //$NON-NLS-1$
-			
-			int flags= SWT.H_SCROLL + SWT.V_SCROLL;
-			if (fMultiSelect)
-				flags|= SWT.CHECK;
-			fMemberTable= new Table(fMemberPane, flags);
-			fMemberTable.addSelectionListener(
-				new SelectionAdapter() {
-					public void widgetSelected(SelectionEvent e) {
-						if (e.detail == SWT.CHECK) {
-							if (e.item instanceof TableItem) {
-								TableItem ti= (TableItem) e.item;
-								Object data= ti.getData();
-								if (ti.getChecked())
-									fArrayList.add(data);
-								else
-									fArrayList.remove(data);
-									
-								if (fCommitButton != null)
-									fCommitButton.setEnabled(fArrayList.size() > 0);
-									
-								fMemberTable.setSelection(new TableItem[] { ti });
-							}
-						}
-						handleMemberSelect(e.item);
-					}
-				}
-			);
-			fMemberPane.setContent(fMemberTable);
-			fMemberTable.setFocus();
-						
-			fEditionPane= new CompareViewerPane(hsplitter, SWT.BORDER | SWT.FLAT);
-		} else {
-			if (fStructureCompare) {
-				// we need two panes: the left for the elements, the right one for the structured diff
-				Splitter hsplitter= new Splitter(vsplitter,  SWT.HORIZONTAL);
-				
-				fEditionPane= new CompareViewerPane(hsplitter, SWT.BORDER | SWT.FLAT);
-				fStructuredComparePane= new CompareViewerSwitchingPane(hsplitter, SWT.BORDER | SWT.FLAT, true) {
-					protected Viewer getViewer(Viewer oldViewer, Object input) {
-						if (input instanceof ICompareInput)
-							return CompareUIPlugin.findStructureViewer(oldViewer, (ICompareInput)input, this, fCompareConfiguration);
-						return null;
-					}
-				};
-				fStructuredComparePane.addSelectionChangedListener(
-					new ISelectionChangedListener() {
-						public void selectionChanged(SelectionChangedEvent e) {
-							feedInput2(e.getSelection());
-						}
-					}
-				);
-			} else {
-				// only a single pane showing the editions
-				fEditionPane= new CompareViewerPane(vsplitter, SWT.BORDER | SWT.FLAT);
-			}
-			if (fTitleArg == null)
-				fTitleArg= fTargetPair.getItem().getName();
-			String titleFormat= Utilities.getString(fBundle, "treeTitleFormat"); //$NON-NLS-1$
-			String title= MessageFormat.format(titleFormat, new String[] { fTitleArg });
-			fEditionPane.setText(title);
-			if (fTitleImage != null)
-				fEditionPane.setImage(fTitleImage);
-		}
-		
-		fEditionTree= new Tree(fEditionPane, SWT.H_SCROLL + SWT.V_SCROLL);
-		fEditionTree.addSelectionListener(
-			new SelectionAdapter() {
-//				public void widgetDefaultSelected(SelectionEvent e) {
-//					handleDefaultSelected();
-//				}
-				public void widgetSelected(SelectionEvent e) {
-					feedInput(e.item);
-				}
-			}
-		);
-		fEditionPane.setContent(fEditionTree);		
-		
-		// now start the thread (and forget about it)
-		if (fThread != null) {
-			fThread.start();
-			fThread= null;
-		}
-		
-		fContentPane= new CompareViewerSwitchingPane(vsplitter, SWT.BORDER | SWT.FLAT) {
-			protected Viewer getViewer(Viewer oldViewer, Object input) {
-				return CompareUIPlugin.findContentViewer(oldViewer, input, this, fCompareConfiguration);	
-			}
-		};
-		vsplitter.setWeights(new int[] { 30, 70 });
-
-		applyDialogFont(parent);				
-		return parent;
-	}	
-	
-	/* (non-Javadoc)
-	 * Method declared on Dialog.
-	 */
-	protected void createButtonsForButtonBar(Composite parent) {
-		String buttonLabel= Utilities.getString(fBundle, "buttonLabel", IDialogConstants.OK_LABEL); //$NON-NLS-1$
-		if (fCompareMode) {
-			// only a 'Done' button
-			createButton(parent, IDialogConstants.CANCEL_ID, buttonLabel, false);
-		} else {
-			// a 'Cancel' and a 'Add/Replace' button
-			fCommitButton= createButton(parent, IDialogConstants.OK_ID, buttonLabel, true);
-			fCommitButton.setEnabled(false);
-			createButton(parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, false);
-		}
-	}
-
-	/**
-	 * Overidden to disable dismiss on double click in compare mode.
-	 * @since 2.0
-	 */
-	protected void okPressed() {
-		if (fCompareMode)
-			;	// don't dismiss dialog
-		else
-			super.okPressed();
-	}
-
-	//---- private stuff ----------------------------------------------------------------------------------------
-				
-	/**
-	 * Asynchroneously sends a Pair (or null) to the UI thread.
-	 */
-	private void sendPair(final Pair pair) {		
-		if (fEditionTree != null && !fEditionTree.isDisposed()) {
-			Display display= fEditionTree.getDisplay();
-			display.asyncExec(
-				new Runnable() {
-					public void run() {
-						addMemberEdition(pair);
-					}
-				}
-			);
-		}
-	}
-	
-	private static void internalSort(IModificationDate[] keys, int left, int right) { 
-	
-		int original_left= left;
-		int original_right= right;
-		
-		IModificationDate mid= keys[(left + right) / 2]; 
-		do { 
-			while (keys[left].getModificationDate() > mid.getModificationDate())
-				left++; 
-			
-			while (mid.getModificationDate() > keys[right].getModificationDate())
-				right--; 
-		
-			if (left <= right) { 
-				IModificationDate tmp= keys[left]; 
-				keys[left]= keys[right]; 
-				keys[right]= tmp;			
-				left++; 
-				right--; 
-			} 
-		} while (left <= right);
-		
-		if (original_left < right)
-			internalSort(keys, original_left, right); 
-		
-		if (left < original_right)
-			internalSort(keys, left, original_right); 
-	}
-	
-	/**
-	 * Adds the given Pair to the member editions.
-	 * If HIDE_IDENTICAL is true the new Pair is only added if its contents
-	 * is different from the preceeding Pair.
-	 * If the argument is <code>null</code> the message "No Editions found" is shown
-	 * in the member or edition viewer.
-	 */
-	private void addMemberEdition(Pair pair) {
-		
-		if (pair == null) {	// end of list of pairs
-			if (fMemberTable != null) {	
-				if (!fMemberTable.isDisposed() && fMemberTable.getItemCount() == 0) {
-					if (fMultiSelect) {
-						fMemberTable.dispose();
-						fMemberTable= new Table(fMemberPane, SWT.NONE);
-						fMemberPane.setContent(fMemberTable);
-					}
-					TableItem ti= new TableItem(fMemberTable, SWT.NONE);
-					ti.setText(Utilities.getString(fBundle, "noAdditionalMembersMessage")); //$NON-NLS-1$
-				}
-				return;
-			}
-			if (fEditionTree != null && !fEditionTree.isDisposed() && fEditionTree.getItemCount() == 0) {
-				TreeItem ti= new TreeItem(fEditionTree, SWT.NONE);
-				ti.setText(Utilities.getString(fBundle, "notFoundInLocalHistoryMessage")); //$NON-NLS-1$
-			}
-			return;
-		}
-		
-		if (fMemberEditions == null)
-			fMemberEditions= new HashMap();
-		if (fMultiSelect && fMemberSelection == null)
-			fMemberSelection= new HashMap();
-		
-		ITypedElement item= pair.getItem();
-		List editions= (List) fMemberEditions.get(item);
-		if (editions == null) {
-			editions= new ArrayList();
-			fMemberEditions.put(item, editions);
-			if (fMemberTable != null && !fMemberTable.isDisposed()) {
-				ITypedElement te= (ITypedElement)item;
-				String name= te.getName();
-				
-				// find position
-				TableItem[] items= fMemberTable.getItems();
-				int where= items.length;
-				for (int i= 0; i < where; i++) {
-					String n= items[i].getText();
-					if (n.compareTo(name) > 0) {
-						where= i;
-						break;
-					}
-				}
-				
-				TableItem ti= new TableItem(fMemberTable, where, SWT.NULL);
-				ti.setImage(te.getImage());
-				ti.setText(name);
-				ti.setData(editions);
-			}
-		}
-		if (fHideIdentical) {
-			Pair last= fTargetPair;
-			int size= editions.size();
-			if (size > 0)
-				last= (Pair) editions.get(size-1);
-			if (last != null && last.equals(pair))
-				return;	// don't add since the new one is equal to old
-		}
-		editions.add(pair);
-		
-		if (!fAddMode || editions == fCurrentEditions)
-			addEdition(pair);
-	}
-		
-	/**
-	 * Returns the number of s since Jan 1st, 1970.
-	 * The given date is converted to GMT and daylight saving is taken into account too.
-	 */
-	private long dayNumber(long date) {
-		int ONE_DAY_MS= 24*60*60 * 1000; // one day in milli seconds
-		
-		Calendar calendar= Calendar.getInstance();
-		long localTimeOffset= calendar.get(Calendar.ZONE_OFFSET) + calendar.get(Calendar.DST_OFFSET);
-		
-		return (date + localTimeOffset) / ONE_DAY_MS;
-	}
-	
-	/**
-	 * Adds the given Pair to the edition tree.
-	 * It takes care of creating tree nodes for different dates.
-	 */
-	private void addEdition(Pair pair) {
-		if (fEditionTree == null || fEditionTree.isDisposed())
-			return;
-		
-		// find last day
-		TreeItem[] days= fEditionTree.getItems();
-		TreeItem lastDay= null;
-		if (days.length > 0)
-			lastDay= days[days.length-1];
-		
-		boolean first= lastDay == null;
-		
-		ITypedElement edition= pair.getEdition();
-		ITypedElement item= pair.getItem();
-		
-		long ldate= ((IModificationDate)edition).getModificationDate();		
-		long day= dayNumber(ldate);
-		Date date= new Date(ldate);
-		if (lastDay == null || day != dayNumber(((Date)lastDay.getData()).getTime())) {
-			lastDay= new TreeItem(fEditionTree, SWT.NONE);
-			lastDay.setImage(fDateImage);
-			String df= DateFormat.getDateInstance().format(date);
-			long today= dayNumber(System.currentTimeMillis());
-			
-			String formatKey;
-			if (day == today)
-				formatKey= "todayFormat"; //$NON-NLS-1$
-			else if (day == today-1)
-				formatKey= "yesterdayFormat"; //$NON-NLS-1$
-			else
-				formatKey= "dayFormat"; //$NON-NLS-1$
-			String pattern= Utilities.getString(fBundle, formatKey);
-			if (pattern != null)
-				df= MessageFormat.format(pattern, new String[] { df });
-			lastDay.setText(df);
-			lastDay.setData(date);
-		}
-		TreeItem ti= new TreeItem(lastDay, SWT.NONE);
-		ti.setImage(getEditionImage(edition, item));
-		
-		String s= getShortEditionLabel(edition, item, date);
-		if (pair.fHasError) {
-			String pattern= Utilities.getString(fBundle, "parseErrorFormat"); //$NON-NLS-1$
-			s= MessageFormat.format(pattern, new String[] { s } );
-		}
-		ti.setText(s);
-		
-		ti.setData(pair);
-		
-		// determine selected TreeItem
-		TreeItem selection= first ? ti : null;
-		if (fMemberSelection != null) {
-			Object selected= fMemberSelection.get(fCurrentEditions);
-			if (selected != null) {
-				if (selected == pair.getItem())
-					selection= ti;
-				else
-					selection= null;
-			}
-		}
-		if (selection != null) {
-			fEditionTree.setSelection(new TreeItem[] { selection });
-			if (!fAddMode)
-				fEditionTree.setFocus();
-			feedInput(selection);
-		}
-		
-		if (first) // expand first node
-			lastDay.setExpanded(true);
-	}
-						
-	/**
-	 * Feeds selection from member viewer to edition viewer.
-	 */
-	private void handleMemberSelect(Widget w) {
-		Object data= w.getData();
-		if (data instanceof List) {
-			List editions= (List) data;
-			if (editions != fCurrentEditions) {
-				fCurrentEditions= editions;
-				fEditionTree.removeAll();
-				
-				String pattern= Utilities.getString(fBundle, "treeTitleFormat"); //$NON-NLS-1$
-				String title= MessageFormat.format(pattern, new Object[] { ((Item)w).getText() });
-				fEditionPane.setText(title);
-								
-				Iterator iter= editions.iterator();
-				while (iter.hasNext()) {
-					Object item= iter.next();
-					if (item instanceof Pair)
-						addEdition((Pair) item);
-				}
-			}
-		}
-	}
-	
-	private void setInput(Object input) {
-		if (!fCompare && input instanceof ICompareInput) {
-			ICompareInput ci= (ICompareInput) input;
-			if (fTargetIsRight)
-				input= ci.getLeft();
-			else
-				input= ci.getRight();
-		}
-		fContentPane.setInput(input);
-		if (fStructuredComparePane != null)
-			fStructuredComparePane.setInput(input);
-	}
-	
-	/*
-	 * Feeds selection from edition viewer to content (and structure) viewer.
-	 */
-	private void feedInput(Widget w) {
-		Object input= w.getData();
-		boolean isOK= false;
-		if (input instanceof Pair) {
-			Pair pair= (Pair) input;
-			fSelectedItem= pair.getItem();
-			isOK= !pair.fHasError;
-			
-			ITypedElement edition= pair.getEdition();
-			String editionLabel= getEditionLabel(edition, fSelectedItem);
-			Image editionImage= getEditionImage(edition, fSelectedItem);
-					
-			if (fAddMode) {
-				if (fMemberSelection != null)
-					fMemberSelection.put(fCurrentEditions, fSelectedItem);
-				setInput(fSelectedItem);
-				fContentPane.setText(editionLabel);
-				fContentPane.setImage(editionImage);
-			} else {
-				if (fTargetIsRight) {
-					fCompareConfiguration.setLeftLabel(editionLabel);
-					fCompareConfiguration.setLeftImage(editionImage);
-					setInput(new DiffNode(fSelectedItem, fTargetPair.getItem()));
-				} else {
-					fCompareConfiguration.setRightLabel(editionLabel);
-					fCompareConfiguration.setRightImage(editionImage);
-					setInput(new DiffNode(fTargetPair.getItem(), fSelectedItem));
-				}
-			}
-		} else {
-			fSelectedItem= null;
-			setInput(null);
-		}
-		if (fCommitButton != null) {
-			if (fMultiSelect)
-				fCommitButton.setEnabled(isOK && fSelectedItem != null && fArrayList.size() > 0);
-			else
-				fCommitButton.setEnabled(isOK && fSelectedItem != null && fTargetPair.getItem() != fSelectedItem);
-		}
-	}
-	
-	/*
-	 * Feeds selection from structure viewer to content viewer.
-	 */
-	private void feedInput2(ISelection sel) {
-		if (sel instanceof IStructuredSelection) {
-			IStructuredSelection ss= (IStructuredSelection) sel;
-			if (ss.size() == 1)
-				fContentPane.setInput(ss.getFirstElement());
-		}
-	}
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/HistoryItem.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/HistoryItem.java
deleted file mode 100644
index cc521e1..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/HistoryItem.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare;
-
-import java.io.InputStream;
-import java.io.BufferedInputStream;
-
-import org.eclipse.swt.graphics.Image;
-
-import org.eclipse.core.resources.IFileState;
-import org.eclipse.core.runtime.CoreException;
-
-/**
- * A combination <code>IFileState</code> and <code>ITypedElement</code> that can be used as
- * an input to a compare viewer or other places where an <code>IStreamContentAccessor</code>
- * is needed.
- * <p>
- * <p>
- * Clients may instantiate this class; it is not intended to be subclassed.
- * </p>
- */
-public class HistoryItem implements IStreamContentAccessor, ITypedElement, IModificationDate {
-	
-	private ITypedElement fBase;
-	private IFileState fFileState; 
-
-	/**
-	 * Creates a <code>HistoryItem</code> object which combines the given <code>IFileState</code>
-	 * and <code>ITypedElement</code> into an object
-	 * which is suitable as input for a compare viewer or <code>ReplaceWithEditionDialog</code>.
-	 *
-	 * @param base the implementation of the <code>ITypedElement</code> interface delegates to this base <code>ITypedElement</code>
-	 * @param fileState the <code>IFileState</code> from which the streamable contents and the modification time is derived from
-	 */
-	public HistoryItem(ITypedElement base, IFileState fileState) {
-		fBase= base;
-		fFileState= fileState;
-	}
-	
-	/* (non-Javadoc)
-	 * see ITypedElement.getName
-	 */
-	public String getName() {
-		return fBase.getName();
-	}
-	
-	/* (non-Javadoc)
-	 * see ITypedElement.getImage
-	 */
-	public Image getImage() {
-		return fBase.getImage();
-	}
-	
-	/* (non-Javadoc)
-	 * see ITypedElement.getType
-	 */
-	public String getType() {
-		return fBase.getType();
-	}
-
-	/* (non-Javadoc)
-	 * see IModificationDate.getModificationDate
-	 */
-	public long getModificationDate() {
-		return fFileState.getModificationTime();
-	}
-	
-	/* (non-Javadoc)
-	 * see IStreamContentAccessor.getContents
-	 */
-	public InputStream getContents() throws CoreException {
-		return new BufferedInputStream(fFileState.getContents());
-	}
-}
-
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/IContentChangeListener.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/IContentChangeListener.java
deleted file mode 100644
index 9aab4f1..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/IContentChangeListener.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare;
-
-/**
- * An <code>IContentChangeListener</code> is informed about content changes of a 
- * <code>IContentChangeNotifier</code>.
- * <p>
- * Clients may implement this interface.
- * </p>
- *
- * @see IContentChangeNotifier
- */
-public interface IContentChangeListener {
-
-	/**
-	 * Called whenever the content of the given source has changed.
-	 *
-	 * @param source the source whose contents has changed
-	 */
-	void contentChanged(IContentChangeNotifier source);
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/IContentChangeNotifier.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/IContentChangeNotifier.java
deleted file mode 100644
index fba34d2..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/IContentChangeNotifier.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare;
-
-/**
- * Interface common to all objects that provide a means for registering
- * for content change notification.
- * <p>
- * Clients may implement this interface.
- * </p>
- *
- * @see IContentChangeListener
- */
-public interface IContentChangeNotifier {
-	
-	/**
-	 * Adds a content change listener to this notifier.
-	 * Has no effect if an identical listener is already registered.
-	 *
-	 * @param listener a content changed listener
-	 */
-	void addContentChangeListener(IContentChangeListener listener);
-	
-	/**
-	 * Removes the given content changed listener from this notifier.
-	 * Has no effect if the listener is not registered.
-	 *
-	 * @param listener a content changed listener
-	 */
-	void removeContentChangeListener(IContentChangeListener listener);
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/IEditableContent.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/IEditableContent.java
deleted file mode 100644
index 44fdc1c..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/IEditableContent.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare;
-
-/**
- * Common interface for objects with editable contents.
- * Typically it is implemented by objects that also implement
- * the <code>IStreamContentAccessor</code> interface.
- * <p>
- * Clients may implement this interface.
- * <p>
- * Note that implementing <code>IEditableContent</code> does not
- * automatically mean that it is editable. An object is only editable if
- * it implements <code>IEditableContent</code> and the <code>isEditable</code> method returns <code>true</code>.
- *
- * @see IStreamContentAccessor
- */
-public interface IEditableContent {
-	
-	/**
-	 * Returns <code>true</code> if this object can be modified.
-	 * If it returns <code>false</code> the other methods of this API must not be called.
-	 * 
-	 * @return <code>true</code> if this object can be modified
-	 */
-	boolean isEditable();
-			
-	/**
-	 * Replaces the current content with the given new bytes.
-	 * 
-	 * @param newContent this new contents replaces the old contents
-	 */
-	void setContent(byte[] newContent); 
-
-	/**
-	 * This method is called on a parent to add or remove a child,
-	 * or to copy the contents of a child.
-	 * 
-	 * What to do is encoded in the two arguments as follows:
-	 * <TABLE>
-	 * <TR>
-	 * 	<TD>add:</TD>
-	 *  <TD>child == null</TD>
-	 *  <TD>other != null</TD>
-	 * </TR>
-	 * <TR>
-	 * 	<TD>remove:</TD>
-	 *  <TD>child != null</TD>
-	 *  <TD>other == null</TD>
-	 * </TR>
-	 * <TR>
-	 * 	<TD>copy:</TD>
-	 *  <TD>child != null</TD>
-	 *  <TD>other != null</TD>
-	 * </TR>
-	 * </TABLE>
-	 */
-	ITypedElement replace(ITypedElement child, ITypedElement other);
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/IModificationDate.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/IModificationDate.java
deleted file mode 100644
index 5e8def8..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/IModificationDate.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare;
-
-/**
- * Common interface for objects with a modification date. The modification date
- * can be used in the UI to give the user a general idea of how old an object is.
- * <p>
- * Clients may implement this interface.
- * </p>
- */
-public interface IModificationDate {
-	
-	/**
-	 * Returns the modification time of this object.
-	 * <p>
-	 * Note that this value should only be used to give the user a general idea of how
-	 * old the object is.
-	 *
-	 * @return the time of last modification, in milliseconds since January 1, 1970, 00:00:00 GMT
-	 */
-	long getModificationDate();
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/IPropertyChangeNotifier.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/IPropertyChangeNotifier.java
deleted file mode 100644
index 85f4f34..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/IPropertyChangeNotifier.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare;
-
-import org.eclipse.jface.util.IPropertyChangeListener;
-
-/**
- * Interface common to all objects that provide a means for registering
- * for property change notification.
- * <p>
- * Clients may implement this interface.
- * </p>
- *
- * @see org.eclipse.jface.util.IPropertyChangeListener
- */
-public interface IPropertyChangeNotifier {
-	
-	/**
-	 * Adds a listener for property changes to this notifier.
-	 * Has no effect if an identical listener is already registered.
-	 *
-	 * @param listener a property change listener
-	 */
-	void addPropertyChangeListener(IPropertyChangeListener listener);
-	
-	/**
-	 * Removes the given content change listener from this notifier.
-	 * Has no effect if the identical listener is not registered.
-	 *
-	 * @param listener a property change listener
-	 */
-	void removePropertyChangeListener(IPropertyChangeListener listener);
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/IStreamContentAccessor.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/IStreamContentAccessor.java
deleted file mode 100644
index f17b318..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/IStreamContentAccessor.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare;
-
-import java.io.InputStream;
-
-import org.eclipse.core.runtime.CoreException;
-
-/**
- * An <code>IStreamContentAccessor</code> object represents a set of bytes which can be
- * accessed by means of a stream.
- * <p>
- * Clients may implement this interface, or use the standard implementation,
- * <code>BufferedContent</code>.
- *
- * @see BufferedContent
- */
-public interface IStreamContentAccessor {
-	/**
-	 * Returns an open <code>InputStream</code> for this object which can be used to retrieve the object's content.
-	 * The client is responsible for closing the stream when finished.
-	 * Returns <code>null</code> if this object has no streamable contents.
-	 *
-	 * @return an input stream containing the contents of this object
-	 * @exception CoreException if the contents of this object could not be accessed
-	 */
-	InputStream getContents() throws CoreException;
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/ITypedElement.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/ITypedElement.java
deleted file mode 100644
index 15dd45c..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/ITypedElement.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare;
-
-import org.eclipse.swt.graphics.Image;
-
-/**
- * Interface for getting the name, image, and type for an object.
- * <p>
- * These methods are typically used to present an input object in the compare UI
- * (<code>getName</code> and <code>getImage</code>)
- * and for finding a viewer for a given input type (<code>getType</code>).
- * <p>
- * Clients may implement this interface.
- */
-public interface ITypedElement {
-
-	/**
-	 * Type for a folder input (value <code>"FOLDER"</code>).
-	 * Folders are comparison elements that have no contents, only a name and children.
-	 */
-	public static final String FOLDER_TYPE= "FOLDER"; //$NON-NLS-1$
-
-	/**
-	 * Type for an element whose actual type is text  (value <code>"txt"</code>).
-	 */
-	public static final String TEXT_TYPE= "txt"; //$NON-NLS-1$
-
-	/**
-	 * Type for an element whose actual type could not
-	 * be determined. (value <code>"???"</code>).
-	 */
-	public static final String UNKNOWN_TYPE= "???"; //$NON-NLS-1$
-
-	/**
-	 * Returns the name of this object.
-	 * The name is used when displaying this object in the UI.
-	 *
-	 * @return the name of this object
-	 */
-	String getName();
-
-	/**
-	 * Returns an image for this object.
-	 * This image is used when displaying this object in the UI.
-	 *
-	 * @return the image of this object or <code>null</code> if this type of input has no image
-	 */
-	Image getImage();
-
-	/**
-	 * Returns the type of this object. For objects with a file name
-	 * this is typically the file extension. For folders its the constant
-	 * <code>FOLDER_TYPE</code>.
-	 * The type is used for determining a suitable viewer for this object.
-	 *
-	 * @return the type of this object
-	 */
-	String getType();
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/IViewerCreator.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/IViewerCreator.java
deleted file mode 100644
index 918ed6b..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/IViewerCreator.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare;
-
-import org.eclipse.swt.widgets.Composite;
-
-import org.eclipse.jface.viewers.Viewer;
-
-/**
- * A factory object for <code>Viewer</code>.
- * <p>
- * This interface is only required when creating a <code>Viewer</code> from a plugin.xml file.
- * Since <code>Viewer</code>s have no default constructor they cannot be
- * instantiated directly with <code>Class.forName</code>.
- */
-public interface IViewerCreator {
-
-	/**
-	 * Creates a new viewer under the given SWT parent control.
-	 *
-	 * @param parent the SWT parent control under which to create the viewer's SWT control
-	 * @param config a compare configuration the newly created viewer might want to use
-	 * @return a new viewer
-	 */
-	Viewer createViewer(Composite parent, CompareConfiguration config);
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/NavigationAction.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/NavigationAction.java
deleted file mode 100644
index b0fac34..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/NavigationAction.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare;
-
-import java.util.ResourceBundle;
-import org.eclipse.jface.action.Action;
-
-import org.eclipse.compare.internal.CompareNavigator;
-import org.eclipse.compare.internal.CompareUIPlugin;
-import org.eclipse.compare.internal.Utilities;
-
-/**
- * A <code>NavigationAction</code> is used to navigate through the individual
- * differences of a <code>CompareEditorInput</code>.
- * <p>
- * Clients may instantiate this class; it is not intended to be subclassed.
- * </p>
- * @since 2.0
- */
-public class NavigationAction extends Action {
-	
-	private boolean fNext;
-	private CompareEditorInput fCompareEditorInput;
-	
-	
-	/**
-	 * Creates a <code>NavigationAction</code>.
-	 *
-	 * @param next if <code>true</code> action goes to the next difference; otherwise to the previous difference.
-	 */
-	public NavigationAction(boolean next) {
-		this(CompareUIPlugin.getResourceBundle(), next);
-	}
-
-	/**
-	 * Creates a <code>NavigationAction</code> that initializes its attributes
-	 * from the given <code>ResourceBundle</code>.
-	 *
-	 * @param bundle is used to initialize the action
-	 * @param next if <code>true</code> action goes to the next difference; otherwise to the previous difference.
-	 */
-	public NavigationAction(ResourceBundle bundle, boolean next) {
-		Utilities.initAction(this, bundle, next ? "action.Next." : "action.Previous."); //$NON-NLS-2$ //$NON-NLS-1$
-		fNext= next;
-	}
-
-	public void run() {
-		if (fCompareEditorInput != null) {
-			Object adapter= fCompareEditorInput.getAdapter(CompareNavigator.class);
-			if (adapter instanceof CompareNavigator)
-				((CompareNavigator)adapter).selectChange(fNext);
-		}
-	}
-	
-	/**
-	 * Sets the <code>CompareEditorInput</code> on which this action operates.
-	 * 
-	 * @param input the <code>CompareEditorInput</code> on which this action operates; if <code>null</code> action does nothing
-	 */
-	public void setCompareEditorInput(CompareEditorInput input) {
-		fCompareEditorInput= input;
-	}
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/ResourceNode.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/ResourceNode.java
deleted file mode 100644
index 31c367b..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/ResourceNode.java
+++ /dev/null
@@ -1,196 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare;
-
-import java.io.*;
-import java.util.ArrayList;
-
-import org.eclipse.swt.graphics.Image;
-
-import org.eclipse.jface.util.Assert;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.compare.structuremergeviewer.IStructureComparator;
-
-/**
- * A <code>ResourceNode</code> wrappers an <code>IResources</code> so that it can be used
- * as input for the differencing engine (interfaces <code>IStructureComparator</code> and <code>ITypedElement</code>)
- * and the <code>ReplaceWithEditionDialog</code> (interfaces <code>ITypedElement</code> and <code>IModificationDate</code>).
- * <p>
- * Clients may instantiate this class; it is not intended to be subclassed.
- * </p>
- *
- * @see EditionSelectionDialog
- */
-public class ResourceNode extends BufferedContent
-			implements IStructureComparator, ITypedElement, IEditableContent, IModificationDate {
-			
-	private IResource fResource;
-	private ArrayList fChildren;
-		
-	
-	/**
-	 * Creates a <code>ResourceNode</code> for the given resource.
-	 *
-	 * @param resource the resource
-	 */
-	public ResourceNode(IResource resource) {
-		fResource= resource;
-		Assert.isNotNull(resource);
-	}
-		
-	/**
-	 * Returns the corresponding resource for this object.
-	 *
-	 * @return the corresponding resource
-	 */
-	public IResource getResource() {
-		return fResource;
-	}
-	
-	/* (non Javadoc)
-	 * see IStreamContentAccessor.getContents
-	 */
-	public InputStream getContents() throws CoreException {
-		if (fResource instanceof IStorage)
-			return super.getContents();
-		return null;
-	}
-	
-	/* (non Javadoc)
-	 * see IModificationDate.getModificationDate
-	 */
-	public long getModificationDate() {
-		IPath path= fResource.getLocation();
-		File file= path.toFile();
-		return file.lastModified();
-	}
-	
-	/* (non Javadoc)
-	 * see ITypedElement.getName
-	 */
-	public String getName() {
-		if (fResource != null)
-			return fResource.getName();
-		return null;
-	}
-		
-	/* (non Javadoc)
-	 * see ITypedElement.getType
-	 */
-	public String getType() {
-		if (fResource instanceof IContainer)
-			return ITypedElement.FOLDER_TYPE;
-		if (fResource != null) {
-			String s= fResource.getFileExtension();
-			if (s != null)
-				return s;
-		}
-		return ITypedElement.UNKNOWN_TYPE;
-	}
-	
-	/* (non Javadoc)
-	 * see ITypedElement.getImage
-	 */
-	public Image getImage() {
-		return CompareUI.getImage(fResource);
-	}
-
-	/**
-	 * Returns <code>true</code> if the other object is of type <code>ITypedElement</code>
-	 * and their names are identical. The content is not considered.
-	 */
-	/* (non Javadoc)
-	 * see IStructureComparator.equals
-	 */
-	public boolean equals(Object other) {
-		if (other instanceof ITypedElement) {
-			String otherName= ((ITypedElement)other).getName();
-			return getName().equals(otherName);
-		}
-		return super.equals(other);
-	}
-	
-	/**
-	 * Returns the hash code of the name.
-	 */
-	/* (non Javadoc)
-	 * see IStructureComparator.hashCode
-	 */
-	public int hashCode() {
-		return getName().hashCode();
-	}
-	
-	/* (non Javadoc)
-	 * see IStructureComparator.getChildren
-	 */
-	public Object[] getChildren() {
-		if (fChildren == null) {
-			fChildren= new ArrayList();
-			if (fResource instanceof IContainer) {
-				try {
-					IResource members[]= ((IContainer)fResource).members();
-					for (int i= 0; i < members.length; i++) {
-						IStructureComparator child= createChild(members[i]);
-						if (child != null)
-							fChildren.add(child);
-					}
-				} catch (CoreException ex) {
-				}
-			}
-		}
-		return fChildren.toArray();
-	}
-	
-	/**
-	 * This hook method is called from <code>getChildren</code> once for every
-	 * member of a container resource. This implementation
-	 * creates a new <code>ResourceNode</code> for the given child resource.
-	 * Clients may override this method to create a different type of
-	 * <code>IStructureComparator</code> or to filter children by returning <code>null</code>.
-	 *
-	 * @param child the child resource for which a <code>IStructureComparator</code> must be returned
-	 * @return a <code>ResourceNode</code> for the given child or <code>null</code>
-	 */
-	protected IStructureComparator createChild(IResource child) {
-		return new ResourceNode(child);
-	}
-		
-	/**
-	 * Returns an open stream if the corresponding resource implements the
-	 * <code>IStorage</code> interface. Otherwise the value <code>null</code> is returned.
-	 *
-	 * @return a buffered input stream containing the contents of this storage
-	 * @exception CoreException if the contents of this storage could not be accessed
-	 */
-	protected InputStream createStream() throws CoreException {
-		if (fResource instanceof IStorage)
-			return new BufferedInputStream(((IStorage)fResource).getContents());
-		return null;
-	}
-			
-	/* (non Javadoc)
-	 * see IEditableContent.isEditable
-	 */
-	public boolean isEditable() {
-		return true;
-	}
-	
-	/* (non Javadoc)
-	 * see IEditableContent.replace
-	 */
-	public ITypedElement replace(ITypedElement child, ITypedElement other) {
-		return child;
-	}
-}
-
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/Splitter.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/Splitter.java
deleted file mode 100644
index 7e63053..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/Splitter.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare;
-
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.custom.SashForm;
-
-/**
- * The Splitter adds support for nesting to a SashForm.
- * <P>
- * If Splitters are nested directly:
- * <UL>
- * <LI>changing the visibility of a child may propagate upward to the parent Splitter if the child
- * is the last child to become invisible or the first to become visible.</LI>
- * <LI>maximizing a child makes it as large as the topmost enclosing Splitter</LI>
- * </UL>
- * 
- * @since 2.1
- */
-public class Splitter extends SashForm {
-	
-	private static final String VISIBILITY= "org.eclipse.compare.internal.visibility"; //$NON-NLS-1$
-	
-	/**
-	 * Constructs a new instance of this class given its parent
-	 * and a style value describing its behavior and appearance.
-	 * <p>
-	 * The style value is either one of the style constants defined in
-	 * class <code>SWT</code> which is applicable to instances of this
-	 * class, or must be built by <em>bitwise OR</em>'ing together
-	 * (that is, using the <code>int</code> "|" operator) two or more
-	 * of those <code>SWT</code> style constants. The class description
-	 * lists the style constants that are applicable to the class.
-	 * Style bits are also inherited from superclasses.
-	 * </p>
-	 *
-	 * @param parent a widget which will be the parent of the new instance (cannot be null)
-	 * @param style the style of widget to construct
-	 *
-	 * @exception IllegalArgumentException <ul>
-	 *    <li>ERROR_NULL_ARGUMENT - if the parent is null</li>
-	 * </ul>
-	 * @exception SWTException <ul>
-	 *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the parent</li>
-	 * </ul>
-	 */
-	public Splitter(Composite parent, int style) {
-		super(parent, style);
-	}
-		
-	/**
-	 * Sets the visibility of the given child in this Splitter. If this change
-	 * affects the visibility state of the whole Splitter, and if the Splitter
-	 * is directly nested in one or more Splitters, this method recursively
-	 * propagates the new state upward.
-	 *
-	 * @param child the child control for which the visibility is changed
-	 * @param visible the new visibility state
-	 */
-	public void setVisible(Control child, boolean visible) {
-		
-		boolean wasEmpty= isEmpty();
-				
-		child.setVisible(visible);
-		child.setData(VISIBILITY, new Boolean(visible));
-		
-		if (wasEmpty != isEmpty()) {
-			// recursively walk up
-			Composite parent= getParent();
-			if (parent instanceof Splitter) {
-				Splitter sp= (Splitter) parent;
-				sp.setVisible(this, visible);
-				sp.layout();
-			}
-		} else {
-			layout();
-		}
-	}
-
-	/* (non-Javadoc)
-	 * Recursively calls setMaximizedControl for all direct parents that are
-	 * itself Splitters.
-	 */
-	public void setMaximizedControl(Control control) {
-		if (control == null || control == getMaximizedControl())
-			super.setMaximizedControl(null);
-		else
-			super.setMaximizedControl(control);
-
-		// recursively walk upward
-		Composite parent= getParent();
-		if (parent instanceof Splitter)
-			((Splitter) parent).setMaximizedControl(this);
-		else
-			layout(true);
-	}
-
-	/* (non-Javadoc)
-	 * Returns true if Splitter has no children or if all children are invisible.
-	 */
-	private boolean isEmpty() {
-		Control[] controls= getChildren();
-		for (int i= 0; i < controls.length; i++)
-			if (isVisible(controls[i]))
-				return false;
-		return true;
-	}
-	
-	/* (non-Javadoc)
-	 * Returns the visibility state of the given child control. If the
-	 * control is a Sash, this method always returns false.
-	 */
-	private boolean isVisible(Control child) {
-		if (child instanceof Sash)
-			return false;
-		Object data= child.getData(VISIBILITY);
-		if (data instanceof Boolean)
-			return ((Boolean)data).booleanValue();
-		return true;
-	}
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/ZipFileStructureCreator.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/ZipFileStructureCreator.java
deleted file mode 100644
index f497f18..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/ZipFileStructureCreator.java
+++ /dev/null
@@ -1,314 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare;
-
-import java.io.*;
-import java.util.Iterator;
-import java.util.HashMap;
-import java.util.zip.*;
-
-import org.eclipse.swt.graphics.Image;
-
-import org.eclipse.jface.util.Assert;
-
-import org.eclipse.core.runtime.CoreException;
-
-import org.eclipse.compare.structuremergeviewer.*;
-import org.eclipse.compare.internal.Utilities;
-
-
-/**
- * This implementation of the <code>IStructureCreator</code> interface
- * makes the contents of a zip archive available as a
- * hierarchical structure of <code>IStructureComparator</code>s.
- * <p>
- * It is used when comparing the internal structure of a zip archive.
- *
- * @since 2.0
- */
-public class ZipFileStructureCreator implements IStructureCreator {
-
-	/**
-	 * Common base class for ZipFolder and ZipFile
-	 */
-	static abstract class ZipResource implements IStructureComparator, ITypedElement {
-
-		private String fName;
-
-		ZipResource(String name) {
-			fName= name;
-		}
-
-		public String getName() {
-			return fName;
-		}
-
-		public Image getImage() {
-			return CompareUI.getImage(getType());
-		}
-
-		/**
-		 * Returns true if other is ITypedElement and names are equal.
-		 * @see IComparator#equals
-		 */
-		public boolean equals(Object other) {
-			if (other instanceof ITypedElement)
-				return fName.equals(((ITypedElement) other).getName());
-			return super.equals(other);
-		}
-
-		public int hashCode() {
-			return fName.hashCode();
-		}
-	}
-
-	static class ZipFolder extends ZipResource {
-
-		private HashMap fChildren= new HashMap(10);
-
-		ZipFolder(String name) {
-			super(name);
-		}
-
-		public String getType() {
-			return ITypedElement.FOLDER_TYPE;
-		}
-
-		public Object[] getChildren() {
-			Object[] children= new Object[fChildren.size()];
-			Iterator iter= fChildren.values().iterator();
-			for (int i= 0; iter.hasNext(); i++)
-				children[i]= iter.next();
-			return children;
-		}
-
-		ZipFile createContainer(String path) {
-			String entry= path;
-			int pos= path.indexOf('/');
-			if (pos < 0)
-				pos= path.indexOf('\\');
-			if (pos >= 0) {
-				entry= path.substring(0, pos);
-				path= path.substring(pos + 1);
-			} else if (entry.length() > 0) {
-				ZipFile ze= new ZipFile(entry);
-				fChildren.put(entry, ze);
-				return ze;
-			} else
-				return null;
-
-			ZipFolder folder= null;
-			if (fChildren != null) {
-				Object o= fChildren.get(entry);
-				if (o instanceof ZipFolder)
-					folder= (ZipFolder) o;
-			}
-
-			if (folder == null) {
-				folder= new ZipFolder(entry);
-				fChildren.put(entry, folder);
-			}
-
-			return folder.createContainer(path);
-		}
-	}
-
-	static class ZipFile extends ZipResource implements IStreamContentAccessor {
-
-		private byte[] fContents;
-
-		ZipFile(String name) {
-			super(name);
-		}
-
-		public String getType() {
-			String s= this.getName();
-			int pos= s.lastIndexOf('.');
-			if (pos >= 0)
-				return s.substring(pos + 1);
-			return ITypedElement.UNKNOWN_TYPE;
-		}
-
-		public Object[] getChildren() {
-			return null;
-		}
-		
-		public InputStream getContents() {
-			if (fContents == null)
-				fContents= new byte[0];
-			return new ByteArrayInputStream(fContents);
-		}
-
-		byte[] getBytes() {
-			return fContents;
-		}
-
-		void setBytes(byte[] buffer) {
-			fContents= buffer;
-		}
-
-		void appendBytes(byte[] buffer, int length) {
-	    	if (length > 0) {
-				int oldLen= 0;
-				if (fContents != null)
-					oldLen= fContents.length;
-				byte[] newBuf= new byte[oldLen + length];
-				if (oldLen > 0)
-		    		System.arraycopy(fContents, 0, newBuf, 0, oldLen);
-	    		System.arraycopy(buffer, 0, newBuf, oldLen, length);
-	    		fContents= newBuf;
-	    	}
-		}
-	}
-	
-	private String fTitle;
-
-	/**
-	 * Create a new ZipFileStructureCreator.
-	 */
-	public ZipFileStructureCreator() {
-		this(Utilities.getString("ZipStructureCreator.name")); //$NON-NLS-1$
-	}
-	
-	/**
-	 * Create a new ZipFileStructureCreator with the given title.
-	 * The title is returned by the method <code>getName()</code>.
-	 * @param title the title of this strcuture creator
-	 */
-	public ZipFileStructureCreator(String title) {
-		fTitle= title;
-	}
-
-	public String getName() {
-		return fTitle;
-	}
-
-	public IStructureComparator getStructure(Object input) {
-
-		InputStream is= null;
-		
-		if (input instanceof IStreamContentAccessor) {
-			IStreamContentAccessor sca= (IStreamContentAccessor) input;
-			try {
-				is= sca.getContents();
-			} catch (CoreException ex) {
-			}
-		}
-
-		if (is == null)
-			return null;
-
-		ZipInputStream zip= new ZipInputStream(is);
-		ZipFolder root= new ZipFolder(""); //$NON-NLS-1$
-		try {
-			for (;;) {
-				ZipEntry entry= zip.getNextEntry();
-				if (entry == null)
-					break;
-
-				ZipFile ze= root.createContainer(entry.getName());
-				if (ze != null) {
-					int length= (int) entry.getSize();
-					if (length >= 0) {
-						byte[] buffer= new byte[length];
-						int offset= 0;
-	
-						do {
-							int n= zip.read(buffer, offset, length);
-							offset += n;
-							length -= n;
-						} while (length > 0);
-	
-						ze.setBytes(buffer);
-					} else {
-						byte[] buffer= new byte[1024];		
-						int n;
-						do {
-							n= zip.read(buffer, 0, 1024);
-							ze.appendBytes(buffer, n);
-						} while (n >= 0);
-					}
-				}
-				zip.closeEntry();
-			}
-		} catch (IOException ex) {
-			return null;
-		} finally {
-			try {
-				zip.close();
-			} catch (IOException ex) {
-			}
-		}
-
-		if (root.fChildren.size() == 1) {
-			Iterator iter= root.fChildren.values().iterator();
-			return (IStructureComparator) iter.next();
-		}
-		return root;
-	}
-
-	public String getContents(Object o, boolean ignoreWhitespace) {
-		if (o instanceof ZipFile) {
-			byte[] bytes= ((ZipFile)o).getBytes();
-			if (bytes != null)
-				return new String(bytes);
-			return ""; //$NON-NLS-1$
-		}
-		return null;
-	}
-
-	/**
-	 * Returns <code>false</code> since we cannot update a zip archive.
-	 * @return <code>false</code>
-	 */
-	public boolean canSave() {
-		return false;
-	}
-
-	/**
-	 * Called whenever a copy operation has been performed on a tree node.
-	 * This implementation throws an <code>AssertionFailedException</code>
-	 * since we cannot update a zip archive.
-	 *
-	 * @param structure the node for which to save the new content
-	 * @param input the object from which the structure tree was created in <code>getStructure</code>
-	 */
-	public void save(IStructureComparator structure, Object input) {
-		Assert.isTrue(false); // Cannot update zip archive
-	}
-	
-	public IStructureComparator locate(Object path, Object source) {
-		return null;
-	}
-		
-	/**
-	 * Returns <code>false</code> since this <code>IStructureCreator</code>
-	 * cannot rewrite the diff tree in order to fold certain combinations of
-	 * additons and deletions.
-	 * <p>
-	 * Note: this method is for internal use only. Clients should not call this method. 
-	 * @return <code>false</code>
-	 */
-	public boolean canRewriteTree() {
-		return false;
-	}
-	
-	/**
-	 * Empty implementation since this <code>IStructureCreator</code>
-	 * cannot rewrite the diff tree in order to fold certain combinations of
-	 * additons and deletions.
-	 * <p>
-	 * Note: this method is for internal use only. Clients should not call this method. 
-	 */
-	public void rewriteTree(Differencer diff, IDiffContainer root) {
-	}
-}
-
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/ContentMergeViewer.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/ContentMergeViewer.java
deleted file mode 100644
index e6e83c4..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/ContentMergeViewer.java
+++ /dev/null
@@ -1,978 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.compare.contentmergeviewer;
-
-import java.util.ResourceBundle;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.ui.IKeyBindingService;
-import org.eclipse.ui.IWorkbenchPartSite;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.CoreException;
-
-import org.eclipse.jface.util.*;
-import org.eclipse.jface.action.*;
-import org.eclipse.jface.dialogs.*;
-import org.eclipse.jface.viewers.ContentViewer;
-import org.eclipse.jface.viewers.IContentProvider;
-import org.eclipse.jface.viewers.ISelection;
-
-import org.eclipse.compare.*;
-import org.eclipse.compare.structuremergeviewer.*;
-import org.eclipse.compare.internal.*;
-
-/**
- * An abstract compare and merge viewer with two side-by-side content areas
- * and an optional content area for the ancestor. The implementation makes no
- * assumptions about the content type.
- * <p>
- * <code>ContentMergeViewer</code>
- * <ul>
- * <li>implements the overall layout and defines hooks so that subclasses
- *	can easily provide an implementation for a specific content type,
- * <li>implements the UI for making the areas resizable,
- * <li>has an action for controlling whether the ancestor area is visible or not,
- * <li>has actions for copying one side of the input to the other side,
- * <li>tracks the dirty state of the left and right sides and send out notification
- *	on state changes.
- * </ul>
- * A <code>ContentMergeViewer</code> accesses its
- * model by means of a content provider which must implement the
- * <code>IMergeViewerContentProvider</code> interface.
- * </p>
- * <p>
- * Clients may wish to use the standard concrete subclass <code>TextMergeViewer</code>,
- * or define their own subclass.
- * 
- * @see IMergeViewerContentProvider
- * @see TextMergeViewer
- */
-public abstract class ContentMergeViewer extends ContentViewer
-					implements IPropertyChangeNotifier, ISavable {
-	
-	class SaveAction extends MergeViewerAction {
-				
-		SaveAction(boolean left) {
-			super(true, false, false);
-			Utilities.initAction(this, getResourceBundle(), "action.save."); //$NON-NLS-1$
-		}
-			
-		public void run() {
-			saveContent(getInput());
-		}
-	};
-	
-	/**
-	 * Property names.
-	 */
-	private static final String ANCESTOR_ENABLED= ComparePreferencePage.INITIALLY_SHOW_ANCESTOR_PANE;	
-	
-	/* package */ static final int HORIZONTAL= 1;
-	/* package */ static final int VERTICAL= 2;
-	
-	static final double HSPLIT= 0.5;
-	static final double VSPLIT= 0.3;
-	
-	private class ContentMergeViewerLayout extends Layout {
-		
-		public Point computeSize(Composite c, int w, int h, boolean force) {
-			return new Point(100, 100);
-		}
-		
-		public void layout(Composite composite, boolean force) {
-			
-			// determine some derived sizes
-			int headerHeight= fLeftLabel.computeSize(SWT.DEFAULT, SWT.DEFAULT, true).y;
-			Rectangle r= composite.getClientArea();
-			
-			int centerWidth= getCenterWidth();	
-			int width1= (int)((r.width-centerWidth)*fHSplit);
-			int width2= r.width-width1-centerWidth;
-			
-			int height1= 0;
-			int height2= 0;
-			if (fAncestorEnabled && fShowAncestor) {
-				height1= (int)((r.height-(2*headerHeight))*fVSplit);
-				height2= r.height-(2*headerHeight)-height1;
-			} else {
-				height1= 0;
-				height2= r.height-headerHeight;
-			}		
-							
-			int y= 0;
-			
-			if (fAncestorEnabled && fShowAncestor) {
-				fAncestorLabel.setBounds(0, y, r.width, headerHeight);
-				fAncestorLabel.setVisible(true);
-				y+= headerHeight;
-				handleResizeAncestor(0, y, r.width, height1);
-				y+= height1;
-			} else {
-				fAncestorLabel.setVisible(false);
-				handleResizeAncestor(0, 0, 0, 0);
-			}
-			
-			fLeftLabel.getSize();	// without this resizing would not always work
-			
-			if (centerWidth > 3) {
-				fLeftLabel.setBounds(0, y, width1+1, headerHeight);
-				fDirectionLabel.setVisible(true);
-				fDirectionLabel.setBounds(width1+1, y, centerWidth-1, headerHeight);
-				fRightLabel.setBounds(width1+centerWidth, y, width2, headerHeight);
-			} else {
-				fLeftLabel.setBounds(0, y, width1, headerHeight);
-				fDirectionLabel.setVisible(false);
-				fRightLabel.setBounds(width1, y, r.width-width1, headerHeight);
-			}
-			
-			y+= headerHeight;
-			
-			if (fCenter != null && !fCenter.isDisposed())
-				fCenter.setBounds(width1, y, centerWidth, height2);
-					
-			handleResizeLeftRight(0, y, width1, centerWidth, width2, height2);
-		}
-	}
-
-	class Resizer extends MouseAdapter implements MouseMoveListener {
-				
-		Control fControl;
-		int fX, fY;
-		int fWidth1, fWidth2;
-		int fHeight1, fHeight2;
-		int fDirection;
-		boolean fLiveResize;
-		boolean fIsDown;
-		
-		public Resizer(Control c, int dir) {
-			fDirection= dir;
-			fControl= c;
-			fLiveResize= !(fControl instanceof Sash);
-			fControl.addMouseListener(this);
-			fControl.addMouseMoveListener(this);
-			fControl.addDisposeListener(
-				new DisposeListener() {
-					public void widgetDisposed(DisposeEvent e) {
-						fControl= null;
-					}
-				}
-			);
-		}
-		
-		public void mouseDoubleClick(MouseEvent e) {
-			if ((fDirection & HORIZONTAL) != 0)
-				fHSplit= HSPLIT;
-			if ((fDirection & VERTICAL) != 0)
-				fVSplit= VSPLIT;
-			fComposite.layout(true);
-		}
-		
-		public void mouseDown(MouseEvent e) {
-			Composite parent= fControl.getParent();
-			
-			Point s= parent.getSize();
-			Point as= fAncestorLabel.getSize();
-			Point ys= fLeftLabel.getSize();
-			Point ms= fRightLabel.getSize();
-			
-			fWidth1= ys.x;
-			fWidth2= ms.x;
-			fHeight1= fLeftLabel.getLocation().y-as.y;
-			fHeight2= s.y-(fLeftLabel.getLocation().y+ys.y);
-			
-			fX= e.x;
-			fY= e.y;
-			fIsDown= true;
-		}
-		
-		public void mouseUp(MouseEvent e) {
-			fIsDown= false;
-			if (!fLiveResize)
-				resize(e);
-		}
-		
-		public void mouseMove(MouseEvent e) {
-			if (fIsDown && fLiveResize)
-				resize(e);
-		}
-		
-		private void resize(MouseEvent e) {
-			int dx= e.x-fX;
-			int dy= e.y-fY;
-		
-			int centerWidth= fCenter.getSize().x;
-
-			if (fWidth1 + dx > centerWidth && fWidth2 - dx > centerWidth) {
-				fWidth1+= dx;
-				fWidth2-= dx;
-				if ((fDirection & HORIZONTAL) != 0)
-					fHSplit= (double)fWidth1/(double)(fWidth1+fWidth2);
-			}
-			if (fHeight1 + dy > centerWidth && fHeight2 - dy > centerWidth) {
-				fHeight1+= dy;
-				fHeight2-= dy;
-				if ((fDirection & VERTICAL) != 0)
-					fVSplit= (double)fHeight1/(double)(fHeight1+fHeight2);
-			}
-
-			fComposite.layout(true);
-			fControl.getDisplay().update();
-		}
-	};
-
-	/** Style bits for top level composite */
-	private int fStyles;
-	private ResourceBundle fBundle;
-	private CompareConfiguration fCompareConfiguration;
-	private IPropertyChangeListener fPropertyChangeListener;
-	private ICompareInputChangeListener fCompareInputChangeListener;
-	private ListenerList fListenerList;
-	boolean fConfirmSave= true;
-	
-	private double fHSplit= HSPLIT;		// width ratio of left and right panes
-	private double fVSplit= VSPLIT;		// height ratio of ancestor and bottom panes
-	
-	private boolean fAncestorEnabled= true;	// show ancestor in case of conflicts
-	/* package */ boolean fShowAncestor= false;	// if current input has conflicts
-	private boolean fIsThreeWay= false;
-	private ActionContributionItem fAncestorItem;
-	
-	private Action fCopyLeftToRightAction;	// copy from left to right
-	private Action fCopyRightToLeftAction;	// copy from right to left
-
-	MergeViewerAction fLeftSaveAction;
-	MergeViewerAction fRightSaveAction;
-	
-	private IKeyBindingService fKeyBindingService;
-
-	// SWT widgets
-	/* package */ Composite fComposite;
-	private CLabel fAncestorLabel;
-	private CLabel fLeftLabel;
-	private CLabel fRightLabel;
-	/* package */ CLabel fDirectionLabel;
-	/* package */ Control fCenter;
-		
-	//---- SWT resources to be disposed
-	private Image fRightArrow;
-	private Image fLeftArrow;
-	private Image fBothArrow;
-	//---- end
-	
-	/**
-	 * Creates a new content merge viewer and initializes with a resource bundle and a
-	 * configuration.
-	 *
-	 * @param bundle the resource bundle
-	 * @param cc the configuration object
-	 */
-	protected ContentMergeViewer(int style, ResourceBundle bundle, CompareConfiguration cc) {
-		fStyles= style;
-		fBundle= bundle;
-		
-		fAncestorEnabled= Utilities.getBoolean(cc, ANCESTOR_ENABLED, fAncestorEnabled);
-		fConfirmSave= Utilities.getBoolean(cc, CompareEditor.CONFIRM_SAVE_PROPERTY, fConfirmSave);
-
-		setContentProvider(new MergeViewerContentProvider(cc));
-		
-		fCompareInputChangeListener= new ICompareInputChangeListener() {
-			public void compareInputChanged(ICompareInput input) {
-				ContentMergeViewer.this.internalRefresh(input);
-			}
-		};
-		
-		fCompareConfiguration= cc;
-		if (fCompareConfiguration != null) {
-			fPropertyChangeListener= new IPropertyChangeListener() {
-				public void propertyChange(PropertyChangeEvent event) {
-					ContentMergeViewer.this.propertyChange(event);
-				}
-			};
-			fCompareConfiguration.addPropertyChangeListener(fPropertyChangeListener);
-		}
-			
-		fLeftSaveAction= new SaveAction(true);
-		fLeftSaveAction.setEnabled(false);
-		fRightSaveAction= new SaveAction(false);
-		fRightSaveAction.setEnabled(false);
-	}
-	
-	//---- hooks ---------------------
-	
-	/**
-	 * Returns the viewer's name.
-	 *
-	 * @return the viewer's name
-	 */
-	public String getTitle() {
-		return Utilities.getString(getResourceBundle(), "title"); //$NON-NLS-1$
-	}
-	
-	/**
-	 * Creates the SWT controls for the ancestor, left, and right
-	 * content areas of this compare viewer.
-	 * Implementations typically hold onto the controls
-	 * so that they can be initialized with the input objects in method
-	 * <code>updateContent</code>.
-	 *
-	 * @param composite the container for the three areas
-	 */
-	abstract protected void createControls(Composite composite);
-
-	/**
-	 * Lays out the ancestor area of the compare viewer.
-	 * It is called whenever the viewer is resized or when the sashes between
-	 * the areas are moved to adjust the size of the areas.
-	 *
-	 * @param x the horizontal position of the ancestor area within its container
-	 * @param y the vertical position of the ancestor area within its container
-	 * @param width the width of the ancestor area
-	 * @param height the height of the ancestor area
-	 */
-	abstract protected void handleResizeAncestor(int x, int y, int width, int height);
-	
-	/**
-	 * Lays out the left and right areas of the compare viewer.
-	 * It is called whenever the viewer is resized or when the sashes between
-	 * the areas are moved to adjust the size of the areas.
-	 *
-	 * @param x the horizontal position of the left area within its container
-	 * @param y the vertical position of the left and right area within its container
-	 * @param leftWidth the width of the left area
-	 * @param centerWidth the width of the gap between the left and right areas
-	 * @param rightWidth the width of the right area
-	 * @param height the height of the left and right areas
-	 */
-	abstract protected void handleResizeLeftRight(int x, int y, int leftWidth, int centerWidth,
-			int rightWidth, int height);
-
-	/**
-	 * Contributes items to the given <code>ToolBarManager</code>.
-	 * It is called when this viewer is installed in its container and if the container
-	 * has a <code>ToolBarManager</code>.
-	 * The <code>ContentMergeViewer</code> implementation of this method does nothing.
-	 * Subclasses may reimplement.
-	 *
-	 * @param toolBarManager the toolbar manager to contribute to
-	 */
-	protected void createToolItems(ToolBarManager toolBarManager) {
-	}
-
-	/**
-	 * Initializes the controls of the three content areas with the given input objects.
-	 *
-	 * @param ancestor the input for the ancestor area
-	 * @param left the input for the left area
-	 * @param right the input for the right area
-	 */
-	abstract protected void updateContent(Object ancestor, Object left, Object right);
-		
-	/**
-	 * Copies the content of one side to the other side.
-	 * Called from the (internal) actions for copying the sides of the viewer's input object.
-	 * 
-	 * @param leftToRight if <code>true</code>, the left side is copied to the right side;
-	 * if <code>false</code>, the right side is copied to the left side
-	 */
-	abstract protected void copy(boolean leftToRight);
-
-	/**
-	 * Returns the byte contents of the left or right side. If the viewer
-	 * has no editable content <code>null</code> can be returned.
-	 *
-	 * @param left if <code>true</code>, the byte contents of the left area is returned;
-	 * 	if <code>false</code>, the byte contents of the right area
-	 * @return the content as an array of bytes, or <code>null</code>
-	 */
-	abstract protected byte[] getContents(boolean left);
-
-	//----------------------------
-	
-	/**
-	 * Returns the resource bundle of this viewer.
-	 *
-	 * @return the resource bundle
-	 */
-	protected ResourceBundle getResourceBundle() {
-		return fBundle;
-	}
-	
-	/**
-	 * Returns the compare configuration of this viewer,
-	 * or <code>null</code> if this viewer does not yet have a configuration.
-	 *
-	 * @return the compare configuration, or <code>null</code> if none
-	 */
-	protected CompareConfiguration getCompareConfiguration() {
-		return fCompareConfiguration;
-	}
-	
-	/**
-	 * The <code>ContentMergeViewer</code> implementation of this 
-	 * <code>ContentViewer</code> method
-	 * checks to ensure that the content provider is an <code>IMergeViewerContentProvider</code>.
-	 */
-	public void setContentProvider(IContentProvider contentProvider) {
-		Assert.isTrue(contentProvider instanceof IMergeViewerContentProvider);
-		super.setContentProvider(contentProvider);
-	}
-
-	/* package */ IMergeViewerContentProvider getMergeContentProvider() {
-		return (IMergeViewerContentProvider) getContentProvider();
-	}
-
-	/**
-	 * The <code>ContentMergeViewer</code> implementation of this 
-	 * <code>Viewer</code> method returns the empty selection. Subclasses may override.
-	 */
-	public ISelection getSelection() {
-		return new ISelection() {
-			public boolean isEmpty() {
-				return true;
-			}
-		};
-	}
-	
-	/**
-	 * The <code>ContentMergeViewer</code> implementation of this 
-	 * <code>Viewer</code> method does nothing. Subclasses may reimplement.
-	 */
-	public void setSelection(ISelection s, boolean reveal) {
-	}
-
-	/* package */ void propertyChange(PropertyChangeEvent event) {
-		
-		String key= event.getProperty();
-
-		if (key.equals(ANCESTOR_ENABLED)) {
-			fAncestorEnabled= Utilities.getBoolean(getCompareConfiguration(), ANCESTOR_ENABLED, fAncestorEnabled);
-			fComposite.layout(true);
-			return;
-		}
-	}
-	
-	void setAncestorVisibility(boolean visible, boolean enabled) {
-		if (fAncestorItem != null) {
-			Action action= (Action) fAncestorItem.getAction();
-			if (action != null) {
-				action.setChecked(visible);
-				action.setEnabled(enabled);
-			}
-		}
-		if (fCompareConfiguration != null)
-			fCompareConfiguration.setProperty(ANCESTOR_ENABLED, new Boolean(visible));
-	}
-
-	//---- input
-			 
-	/* package */ boolean isThreeWay() {
-		return fIsThreeWay;
-	}
-	
-	/**
-	 * Internal hook method called when the input to this viewer is
-	 * initially set or subsequently changed.
-	 * <p>
-	 * The <code>ContentMergeViewer</code> implementation of this <code>Viewer</code>
-	 * method tries to save the old input by calling <code>doSave(...)</code> and
-	 * then calls <code>internalRefresh(...)</code>.
-	 *
-	 * @param input the new input of this viewer, or <code>null</code> if there is no new input
-	 * @param oldInput the old input element, or <code>null</code> if there was previously no input
-	 */
-	protected final void inputChanged(Object input, Object oldInput) {
-		
-		if (input != oldInput)
-			if (oldInput instanceof ICompareInput)
-				((ICompareInput)oldInput).removeCompareInputChangeListener(fCompareInputChangeListener);
-		
-		boolean success= doSave(input, oldInput);
-		
-		if (input != oldInput)
-			if (input instanceof ICompareInput)
-				((ICompareInput)input).addCompareInputChangeListener(fCompareInputChangeListener);
-		
-		if (success) {
-			setLeftDirty(false);
-			setRightDirty(false);
-		}
-
-		if (input != oldInput)
-			internalRefresh(input);
-	}
-	
-	/**
-	 * This method is called from the <code>Viewer</code> method <code>inputChanged</code>
-	 * to save any unsaved changes of the old input.
-	 * <p>
-	 * The <code>ContentMergeViewer</code> implementation of this
-	 * method calls <code>saveContent(...)</code>. If confirmation has been turned on
-	 * with <code>setConfirmSave(true)</code>, a confirmation alert is posted before saving.
-	 * </p>
-	 * Clients can override this method and are free to decide whether
-	 * they want to call the inherited method.
-	 * @param newInput the new input of this viewer, or <code>null</code> if there is no new input
-	 * @param oldInput the old input element, or <code>null</code> if there was previously no input
-	 * @return <code>true</code> if saving was successful, or if the user didn't want to save (by pressing 'NO' in the confirmation dialog).
-	 * @since 2.0
-	 */
-	protected boolean doSave(Object newInput, Object oldInput) {
-		
-		// before setting the new input we have to save the old
-		if (fLeftSaveAction.isEnabled() || fRightSaveAction.isEnabled()) {
-			
-			// post alert
-			if (fConfirmSave) {
-				Shell shell= fComposite.getShell();
-				
-				MessageDialog dialog= new MessageDialog(shell,
-					Utilities.getString(getResourceBundle(), "saveDialog.title"), //$NON-NLS-1$
-					null, 	// accept the default window icon
-					Utilities.getString(getResourceBundle(), "saveDialog.message"), //$NON-NLS-1$
-					MessageDialog.QUESTION,
-					new String[] {
-						IDialogConstants.YES_LABEL,
-						IDialogConstants.NO_LABEL,
-					},
-					0);		// default button index
-									
-				switch (dialog.open()) {	// open returns index of pressed button
-				case 0:
-					saveContent(oldInput);
-					break;
-				case 1:
-					setLeftDirty(false);
-					setRightDirty(false);
-					break;
-				case 2:
-					throw new ViewerSwitchingCancelled();
-				}
-			} else
-				saveContent(oldInput);
-			return true;
-		}
-		return false;
-	}
-		
-	/**
-	 * Controls whether <code>doSave(Object, Object)</code> asks for confirmation before saving
-	 * the old input with <code>saveContent(Object)</code>.
-	 * @param enable a value of <code>true</code> enables confirmation
-	 * @since 2.0
-	 */
-	public void setConfirmSave(boolean enable) {
-		fConfirmSave= enable;
-	}
-	
-	/* (non Javadoc)
-	 * see Viewer.refresh
-	 */
-	public void refresh() {
-		internalRefresh(getInput());
-	}
-	
-	private void internalRefresh(Object input) {
-		
-		IMergeViewerContentProvider content= getMergeContentProvider();
-		if (content != null) {
-			Object ancestor= content.getAncestorContent(input);
-			if (input instanceof ICompareInput)	
-				fIsThreeWay= (((ICompareInput)input).getKind() & Differencer.DIRECTION_MASK) != 0;
-			else
-				fIsThreeWay= ancestor != null;
-				
-			if (fAncestorItem != null)
-				fAncestorItem.setVisible(fIsThreeWay);
-				
-			boolean oldFlag= fShowAncestor;
-			fShowAncestor= fIsThreeWay && content.showAncestor(input);
-			
-			if (fAncestorEnabled && oldFlag != fShowAncestor)
-				fComposite.layout(true);
-			
-			ToolBarManager tbm= CompareViewerSwitchingPane.getToolBarManager(fComposite.getParent());
-			if (tbm != null) {
-				updateToolItems();
-				tbm.update(true);
-				tbm.getControl().getParent().layout(true);
-			}
-			
-			updateHeader();
-									
-			Object left= content.getLeftContent(input);
-			Object right= content.getRightContent(input);
-			updateContent(ancestor, left, right);
-		}
-	}
-	
-	//---- layout & SWT control creation
-		
-	/**
-	 * Builds the SWT controls for the three areas of a compare/merge viewer.
-	 * <p>
-	 * Calls the hooks <code>createControls</code> and <code>createToolItems</code>
-	 * to let subclasses build the specific content areas and to add items to
-	 * an enclosing toolbar.
-	 * <p>
-	 * This method must only be called in the constructor of subclasses.
-	 *
-	 * @param parent the parent control
-	 * @return the new control
-	 */
-	protected final Control buildControl(Composite parent) {
-									
-		fComposite= new Composite(parent, fStyles) {
-			public boolean setFocus() {
-				return internalSetFocus();
-			}
-		};
-		fComposite.setData(CompareUI.COMPARE_VIEWER_TITLE, getTitle());
-		
-		hookControl(fComposite);	// hook help & dispose listener
-		
-		fComposite.setLayout(new ContentMergeViewerLayout());
-		
-		int style= SWT.SHADOW_OUT;
-		fAncestorLabel= new CLabel(fComposite, style);
-		
-		fLeftLabel= new CLabel(fComposite, style);
-		new Resizer(fLeftLabel, VERTICAL);
-		
-		fDirectionLabel= new CLabel(fComposite, style);
-		fDirectionLabel.setAlignment(SWT.CENTER);
-		new Resizer(fDirectionLabel, HORIZONTAL | VERTICAL);
-		
-		fRightLabel= new CLabel(fComposite, style);
-		new Resizer(fRightLabel, VERTICAL);
-		
-		if (fCenter == null || fCenter.isDisposed())
-			fCenter= createCenter(fComposite);
-				
-		createControls(fComposite);
-		
-		IWorkbenchPartSite ps= Utilities.findSite(fComposite);
-		fKeyBindingService= ps != null ? ps.getKeyBindingService() : null;
-						
-		ToolBarManager tbm= CompareViewerSwitchingPane.getToolBarManager(parent);
-		if (tbm != null) {
-			tbm.removeAll();
-			
-			// define groups
-			tbm.add(new Separator("modes"));	//$NON-NLS-1$
-			tbm.add(new Separator("merge"));	//$NON-NLS-1$
-			tbm.add(new Separator("navigation"));	//$NON-NLS-1$
-			
-			CompareConfiguration cc= getCompareConfiguration();
-		
-			if (cc.isRightEditable()) {
-				fCopyLeftToRightAction=
-					new Action() {
-						public void run() {
-							copy(true);
-						}
-					};
-				Utilities.initAction(fCopyLeftToRightAction, getResourceBundle(), "action.CopyLeftToRight."); //$NON-NLS-1$
-				tbm.appendToGroup("merge", fCopyLeftToRightAction); //$NON-NLS-1$
-				Utilities.registerAction(fKeyBindingService, fCopyLeftToRightAction, "org.eclipse.compare.copyAllLeftToRight");	//$NON-NLS-1$
-			}
-			
-			if (cc.isLeftEditable()) {
-				fCopyRightToLeftAction=
-					new Action() {
-						public void run() {
-							copy(false);
-						}
-					};
-				Utilities.initAction(fCopyRightToLeftAction, getResourceBundle(), "action.CopyRightToLeft."); //$NON-NLS-1$
-				tbm.appendToGroup("merge", fCopyRightToLeftAction); //$NON-NLS-1$
-				Utilities.registerAction(fKeyBindingService, fCopyRightToLeftAction, "org.eclipse.compare.copyAllRightToLeft");	//$NON-NLS-1$
-			}
-			
-			Action a= new ChangePropertyAction(fBundle, fCompareConfiguration, "action.EnableAncestor.", ANCESTOR_ENABLED); //$NON-NLS-1$
-			a.setChecked(fAncestorEnabled);
-			fAncestorItem= new ActionContributionItem(a);
-			fAncestorItem.setVisible(false);
-			tbm.appendToGroup("modes", fAncestorItem); //$NON-NLS-1$
-			
-			createToolItems(tbm);
-			updateToolItems();
-			
-			tbm.update(true);
-		}
-	
-		return fComposite;
-	}
-	
-	/* package */ boolean internalSetFocus() {
-		return false;
-	}
-	
-	/* package */ int getCenterWidth() {
-		return 3;
-	}
-	
-	/* package */ boolean getAncestorEnabled() {
-		return fAncestorEnabled;
-	}
-	
-	/* package */ Control createCenter(Composite parent) {
-		Sash sash= new Sash(parent, SWT.VERTICAL);
-		new Resizer(sash, HORIZONTAL);
-		return sash;
-	}
-	
-	/* package */ Control getCenter() {
-		return fCenter;
-	}
-		
-	/* 
-	 * @see Viewer.getControl()
-	 */
-	public Control getControl() {
-		return fComposite;
-	}
-	
-	/**
-	 * Called on the viewer disposal.
-	 * Unregisters from the compare configuration.
-	 * Clients may extend if they have to do additional cleanup.
-	 */
-	protected void handleDispose(DisposeEvent event) {
-		
-		if (fKeyBindingService != null) {
-			if (fCopyLeftToRightAction != null)
-				fKeyBindingService.unregisterAction(fCopyLeftToRightAction);
-			if (fCopyRightToLeftAction != null)
-				fKeyBindingService.unregisterAction(fCopyRightToLeftAction);
-			fKeyBindingService= null;
-		}
-		
-		Object input= getInput();	
-		if (input instanceof ICompareInput)
-			((ICompareInput)input).removeCompareInputChangeListener(fCompareInputChangeListener);
-		
-		if (fCompareConfiguration != null && fPropertyChangeListener != null) {
-			fCompareConfiguration.removePropertyChangeListener(fPropertyChangeListener);
-			fPropertyChangeListener= null;
-		}
-
-		fAncestorLabel= null;
-		fLeftLabel= null;
-		fDirectionLabel= null;
-		fRightLabel= null;
-		fCenter= null;
-				
-		if (fRightArrow != null) {
-			fRightArrow.dispose();
-			fRightArrow= null;
-		}
-		if (fLeftArrow != null) {
-			fLeftArrow.dispose();
-			fLeftArrow= null;
-		}
-		if (fBothArrow != null) {
-			fBothArrow.dispose();
-			fBothArrow= null;
-		}
-		
-		super.handleDispose(event);
-  	}
-  	
-	/**
-	 * Updates the enabled state of the toolbar items.
-	 * <p>
-	 * This method is called whenever the state of the items needs updating.
-	 * <p>
-	 * Subclasses may extend this method, although this is generally not required.
-	 */
-	protected void updateToolItems() {
-										
-		IMergeViewerContentProvider content= getMergeContentProvider();
-		
-		Object input= getInput();
-		
-		if (fCopyLeftToRightAction != null) {
-			boolean enable= content.isRightEditable(input);
-//			if (enable && input instanceof ICompareInput) {
-//				ITypedElement e= ((ICompareInput) input).getLeft();
-//				if (e == null)
-//					enable= false;
-//			}
-			fCopyLeftToRightAction.setEnabled(enable);
-		}
-		
-		if (fCopyRightToLeftAction != null) {
-			boolean enable= content.isLeftEditable(input);
-//			if (enable && input instanceof ICompareInput) {
-//				ITypedElement e= ((ICompareInput) input).getRight();
-//				if (e == null)
-//					enable= false;
-//			}
-			fCopyRightToLeftAction.setEnabled(enable);
-		}
-	}
-	
-	/**
-	 * Updates the headers of the three areas
-	 * by querying the content provider for a name and image for
-	 * the three sides of the input object.
-	 * <p>
-	 * This method is called whenever the header must be updated.
-	 * <p>
-	 * Subclasses may extend this method, although this is generally not required.
-	 */
-	protected void updateHeader() {
-						
-		IMergeViewerContentProvider content= getMergeContentProvider();
-		Object input= getInput();
-
-		if (fAncestorLabel != null) {
-			fAncestorLabel.setImage(content.getAncestorImage(input));
-			fAncestorLabel.setText(content.getAncestorLabel(input));
-		}
-		if (fLeftLabel != null) {
-			fLeftLabel.setImage(content.getLeftImage(input));
-			fLeftLabel.setText(content.getLeftLabel(input));
-		}
-		if (fRightLabel != null) {
-			fRightLabel.setImage(content.getRightImage(input));
-			fRightLabel.setText(content.getRightLabel(input));
-		}
-	}
-	
-//	private Image loadImage(String name) {
-//		ImageDescriptor id= ImageDescriptor.createFromFile(ContentMergeViewer.class, name);
-//		if (id != null)
-//			return id.createImage();
-//		return null;
-//	}
-		
-	/**
-	 * Calculates the height of the header.
-	 */
-	/* package */ int getHeaderHeight() {
-		int headerHeight= fLeftLabel.computeSize(SWT.DEFAULT, SWT.DEFAULT, true).y;
-		headerHeight= Math.max(headerHeight, fDirectionLabel.computeSize(SWT.DEFAULT, SWT.DEFAULT, true).y);		
-		return headerHeight;
-	}
-
-	//---- merge direction
-	
-	/**
-	 * Returns true if both sides are editable.
-	 */
-	/* package */ boolean canToggleMergeDirection() {
-		IMergeViewerContentProvider content= getMergeContentProvider();
-		Object input= getInput();
-		return content.isLeftEditable(input) && content.isRightEditable(input);
-	}
-	
-	//---- dirty state & saving state
-	
-	/* (non Javadoc)
-	 * see IPropertyChangeNotifier.addPropertyChangeListener
-	 */
-	public void addPropertyChangeListener(IPropertyChangeListener listener) {
-		if (fListenerList == null)
-			fListenerList= new ListenerList();
-		fListenerList.add(listener);
-	}
-	
-	/* (non Javadoc)
-	 * see IPropertyChangeNotifier.removePropertyChangeListener
-	 */
-	public void removePropertyChangeListener(IPropertyChangeListener listener) {
-		if (fListenerList != null) {
-			fListenerList.remove(listener);
-			if (fListenerList.isEmpty())
-				fListenerList= null;
-		}
-	}
-	
-	/* package */ void fireDirtyState(boolean state) {
-		Utilities.firePropertyChange(fListenerList, this, CompareEditorInput.DIRTY_STATE, null, new Boolean(state));
-	}
-	
-	/**
-	 * Sets the dirty state of the left side of this viewer.
-	 * If the new value differs from the old
-	 * all registered listener are notified with
-	 * a <code>PropertyChangeEvent</code> with the
-	 * property name <code>CompareEditorInput.DIRTY_STATE</code>.
-	 *
-	 * @param dirty the state of the left side dirty flag
-	 */
-	protected void setLeftDirty(boolean dirty) {
-		if (fLeftSaveAction.isEnabled() != dirty) {
-			fLeftSaveAction.setEnabled(dirty);
-			fireDirtyState(dirty);
-		}
-	}
-	
-	/**
-	 * Sets the dirty state of the right side of this viewer.
-	 * If the new value differs from the old
-	 * all registered listener are notified with
-	 * a <code>PropertyChangeEvent</code> with the
-	 * property name <code>CompareEditorInput.DIRTY_STATE</code>.
-	 *
-	 * @param dirty the state of the right side dirty flag
-	 */
-	protected void setRightDirty(boolean dirty) {
-		if (fRightSaveAction.isEnabled() != dirty) {
-			fRightSaveAction.setEnabled(dirty);
-			fireDirtyState(dirty);
-		}
-	}
-	
-	/**
-	 * Save the viewers's content.
-	 * Note: this method is for internal use only. Clients should not call this method. 
-	 * @since 2.0
-	 */
-	public void save(IProgressMonitor pm) throws CoreException {
-		saveContent(getInput());
-	}
-	
-	/**
-	 * Save modified content back to input elements via the content provider.
-	 */
-	/* package */ void saveContent(Object oldInput) {
-				
-		// write back modified contents
-		IMergeViewerContentProvider content= (IMergeViewerContentProvider) getContentProvider();
-		
-		boolean leftEmpty= content.getLeftContent(oldInput) == null;
-		boolean rightEmpty= content.getRightContent(oldInput) == null;
-
-		if (fCompareConfiguration.isLeftEditable() && fLeftSaveAction.isEnabled()) {
-			byte[] bytes= getContents(true);
-			if (leftEmpty && bytes != null && bytes.length == 0)
-				bytes= null;
-			setLeftDirty(false);
-			content.saveLeftContent(oldInput, bytes);
-		}
-		
-		if (fCompareConfiguration.isRightEditable() && fRightSaveAction.isEnabled()) {
-			byte[] bytes= getContents(false);
-			if (rightEmpty && bytes != null && bytes.length == 0)
-				bytes= null;
-			setRightDirty(false);
-			content.saveRightContent(oldInput, bytes);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/DelayedProgressMonitor.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/DelayedProgressMonitor.java
deleted file mode 100644
index 45d4482..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/DelayedProgressMonitor.java
+++ /dev/null
@@ -1,146 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.contentmergeviewer;
-
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.core.runtime.IProgressMonitor;
-import java.lang.reflect.InvocationTargetException;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.operation.ModalContext;
-import org.eclipse.jface.dialogs.ProgressMonitorDialog;
-
-
-class DelayedProgressMonitor implements IProgressMonitor {
-	
-	ProgressMonitorDialog fProgressDialog;
-	IProgressMonitor fRealProgressMonitor;
-	String fTaskName;
-	String fSubTaskName;
-	int fTotalWork;
-	int fWorked;
-	boolean fCancelable;
-	Shell fShell;
-	int fTime;
-	
-	
-	DelayedProgressMonitor(Shell shell) {
-		fShell= shell;
-	}
-
-	/*
-	 * @see IProgressMonitor#beginTask(String, int)
-	 */
-	public void beginTask(String name, int totalWork) {
-		fTaskName= name;
-		fTotalWork= totalWork;
-		fTime= 0;
-	}
-
-	/*
-	 * @see IProgressMonitor#done()
-	 */
-	public void done() {
-		if (fRealProgressMonitor != null)
-			fRealProgressMonitor.done();
-	}
-
-	/*
-	 * @see IProgressMonitor#internalWorked(double)
-	 */
-	public void internalWorked(double work) {
-		if (fRealProgressMonitor != null) {
-			fRealProgressMonitor.internalWorked(work);
-		}
-	}
-	
-	private void checkTimeout() {
-		if (fRealProgressMonitor == null) {
-			
-			//if (fTime++ < 100)
-			//	return;
-			
-			fProgressDialog= new ProgressMonitorDialog(fShell);
-			fProgressDialog.setCancelable(true);
-			fProgressDialog.open();
-			fRealProgressMonitor= fProgressDialog.getProgressMonitor();
-			fRealProgressMonitor.beginTask(fTaskName, fTotalWork);
-			if (fSubTaskName != null)
-				fRealProgressMonitor.subTask(fSubTaskName);
-			fRealProgressMonitor.worked(fWorked);
-		}
-	}
-
-	/*
-	 * @see IProgressMonitor#isCanceled()
-	 */
-	public boolean isCanceled() {
-		checkTimeout();
-		if (fRealProgressMonitor != null)
-			return fRealProgressMonitor.isCanceled();
-		return false;
-	}
-
-	/*
-	 * @see IProgressMonitor#setCanceled(boolean)
-	 */
-	public void setCanceled(boolean value) {
-		if (fRealProgressMonitor != null)
-			fRealProgressMonitor.setCanceled(value);
-		else
-			fCancelable= value;
-	}
-
-	/*
-	 * @see IProgressMonitor#setTaskName(String)
-	 */
-	public void setTaskName(String name) {
-		if (fRealProgressMonitor != null)
-			fRealProgressMonitor.setTaskName(name);
-		else
-			fTaskName= name;
-	}
-
-	/*
-	 * @see IProgressMonitor#subTask(String)
-	 */
-	public void subTask(String name) {
-		if (fRealProgressMonitor != null)
-			fRealProgressMonitor.subTask(name);
-		else
-			fSubTaskName= name;
-	}
-
-	/*
-	 * @see IProgressMonitor#worked(int)
-	 */
-	public void worked(int work) {
-		if (fRealProgressMonitor != null)
-			fRealProgressMonitor.internalWorked(work);
-		else {
-			fWorked+= work;
-			checkTimeout();
-		}
-	}
-	
-	public static void run(Shell shell, boolean fork, boolean cancelable, IRunnableWithProgress runnable)
-						throws InvocationTargetException, InterruptedException {
-		
-		DelayedProgressMonitor pm= new DelayedProgressMonitor(shell);
-		pm.checkTimeout();
-		try {
-			ModalContext.run(runnable, fork, pm, shell.getDisplay());
-		} finally {
-			if (pm.fProgressDialog != null)
-				pm.fProgressDialog.close();
-		}
-	}
-}
-
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/IDocumentRange.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/IDocumentRange.java
deleted file mode 100644
index 851749d..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/IDocumentRange.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.contentmergeviewer;
-
-import org.eclipse.jface.text.Position;
-import org.eclipse.jface.text.IDocument;
-
-
-/**
- * Defines a subrange in a document.
- * <p>
- * It is used by text viewers that can work on a subrange of a document. For example,
- * a text viewer for Java compilation units might use this to restrict the view
- * to a single method.
- * </p>
- * <p>
- * Clients may implement this interface.
- * </p>
- *
- * @see TextMergeViewer
- * @see org.eclipse.compare.structuremergeviewer.DocumentRangeNode
- */
-public interface IDocumentRange {
-	
-	/**
-	 * The position category typically used for an <code>IDocumentRange</code> position
-	 * (value <code>"DocumentRangeCategory"</code>).
-	 * @since 2.0
-	 */
-	public static final String RANGE_CATEGORY= "DocumentRangeCategory";	//$NON-NLS-1$
-
-	/**
-	 * Returns the underlying document.
-	 * 
-	 * @return the underlying document
-	 */
-	IDocument getDocument();
-	
-	/**
-	 * Returns a position that specifies a subrange in the underlying document,
-	 * or <code>null</code> if this document range spans the whole underlying document.
-	 * 
-	 * @return a position that specifies a subrange in the underlying document, or <code>null</code>
-	 */
-	Position getRange();
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/IMergeViewerContentProvider.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/IMergeViewerContentProvider.java
deleted file mode 100644
index d4a2066..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/IMergeViewerContentProvider.java
+++ /dev/null
@@ -1,155 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.contentmergeviewer;
-
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.jface.viewers.IContentProvider;
-
-
-/** 
- * A content provider that mediates between a <code>ContentMergeViewer</code>'s model
- * and the viewer itself.
- * <p>
- * Clients may implement this interface.
- * </p>
- * 
- * @see ContentMergeViewer
- */
-public interface IMergeViewerContentProvider extends IContentProvider {
-	
-	//---- ancestor side
-
-	/**
-	 * Returns the label for the ancestor side of a <code>ContentMergeViewer</code>.
-	 *
-	 * @param input the input object of the <code>ContentMergeViewer</code>
-	 * @return the label for the ancestor side of a <code>ContentMergeViewer</code>
-	 */
-	String getAncestorLabel(Object input);
-
-	/**
-	 * Returns an optional image for the ancestor side of a <code>ContentMergeViewer</code>.
-	 *
-	 * @param input the input object of the <code>ContentMergeViewer</code>
-	 * @return the image for the ancestor side of a <code>ContentMergeViewer</code>,
-	 *   or <code>null</code> if none
-	 */
-	Image getAncestorImage(Object input);
-
-	/**
-	 * Returns the contents for the ancestor side of a <code>ContentMergeViewer</code>.
-	 * The interpretation of the returned object depends on the concrete <code>ContentMergeViewer</code>.
-	 *
-	 * @param input the input object of the <code>ContentMergeViewer</code>
-	 * @return the content for the ancestor side of a <code>ContentMergeViewer</code>,
-	 *   or <code>null</code> if none
-	 */
-	Object getAncestorContent(Object input);
-
-	/**
-	 * Returns whether the ancestor side of the given input element should be shown.
-	 *
-	 * @return <code>true</code> if the ancestor side of the given input element should be shown
-	 */
-	boolean showAncestor(Object input);
-	
-	//---- left side
-
-	/**
-	 * Returns the label for the left side of a <code>ContentMergeViewer</code>.
-	 *
-	 * @param input the input object of the <code>ContentMergeViewer</code>
-	 * @return the label for the left side of a <code>ContentMergeViewer</code>
-	 */
-	String getLeftLabel(Object input);
-
-	/**
-	 * Returns an optional image for the left side of a <code>ContentMergeViewer</code>.
-	 *
-	 * @param input the input object of the <code>ContentMergeViewer</code>
-	 * @return the image for the left side of a <code>ContentMergeViewer</code>,
-	 *   or <code>null</code> if none
-	 */
-	Image getLeftImage(Object input);
-
-	/**
-	 * Returns the contents for the left side of a <code>ContentMergeViewer</code>.
-	 * The interpretation of the returned object depends on the concrete <code>ContentMergeViewer</code>.
-	 *
-	 * @param input the input object of the <code>ContentMergeViewer</code>
-	 * @return the content for the left side of a <code>ContentMergeViewer</code>,
-	 *   or <code>null</code> if none
-	 */
-	Object getLeftContent(Object input);
-
-	/**
-	 * Returns whether the left side is editable.
-	 *
-	 * @param input the input object of the <code>ContentMergeViewer</code>
-	 * @return <code>true</code> if the left side of a <code>ContentMergeViewer</code> is editable	 
-	 */
-	boolean isLeftEditable(Object input);
-
-	/**
-	 * Saves new contents for the left side of the <code>ContentMergeViewer</code>.
-	 *
-	 * @param input the input object of the <code>ContentMergeViewer</code>
-	 * @param bytes the new contents to save for the left side
-	 */
-	void saveLeftContent(Object input, byte[] bytes);
-
-	//---- right side
-
-	/**
-	 * Returns the label for the right side of a <code>ContentMergeViewer</code>.
-	 *
-	 * @param input the input object of the <code>ContentMergeViewer</code>
-	 * @return the label for the right side of a <code>ContentMergeViewer</code>
-	 */
-	String getRightLabel(Object input);
-
-	/**
-	 * Returns an optional image for the right side of a <code>ContentMergeViewer</code>.
-	 *
-	 * @param input the input object of the <code>ContentMergeViewer</code>
-	 * @return the image for the right side of a <code>ContentMergeViewer</code>,
-	 *   or <code>null</code> if none
-	 */
-	Image getRightImage(Object input);
-
-	/**
-	 * Returns the contents for the right side of a <code>ContentMergeViewer</code>.
-	 * The interpretation of the returned object depends on the concrete <code>ContentMergeViewer</code>.
-	 *
-	 * @param input the input object of the <code>ContentMergeViewer</code>
-	 * @return the content for the right side of a <code>ContentMergeViewer</code>,
-	 *   or <code>null</code> if none
-	 */
-	Object getRightContent(Object input);
-
-	/**
-	 * Returns whether the right side is editable.
-	 *
-	 * @param input the input object of the <code>ContentMergeViewer</code>
-	 * @return <code>true</code> if the right side of a <code>ContentMergeViewer</code> is editable	 
-	 */
-	boolean isRightEditable(Object input);
-
-	/**
-	 * Saves new contents for the right side of the <code>ContentMergeViewer</code>.
-	 *
-	 * @param input the input object of the <code>ContentMergeViewer</code>
-	 * @param bytes the new contents to save for the right side
-	 */
-	void saveRightContent(Object input, byte[] bytes);
-}
-
-
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/ITokenComparator.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/ITokenComparator.java
deleted file mode 100644
index 27354bf..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/ITokenComparator.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.contentmergeviewer;
-
-import org.eclipse.compare.rangedifferencer.IRangeComparator;
-
-
-/**
- * For performing a so-called "token compare" on a line of text.
- * This interface extends the <code>IRangeComparator</code> interface
- * so that it can be used by the <code>TextMergeViewer</code>.
- * <p>
- * <code>TextMergeViewer</code> activates the token compare when navigating into
- * a range of differing lines. At first the lines are selected as a block.
- * When navigating into this block the token compare shows for every line 
- * the differing token by selecting them.
- * <p>
- * <code>TextMergeViewer</code>'s default token comparator works on characters separated
- * by whitespace. If a different strategy is needed (for example, to use Java tokens in
- * a Java-aware merge viewer), clients may create their own token
- * comparators by implementing this interface (and overriding the
- * <code>TextMergeViewer.createTokenComparator</code> factory method).
- * </p>
- *
- * @see TextMergeViewer
- */
-public interface ITokenComparator extends IRangeComparator {
-
-	/**
-	 * Returns the start character position of the token with the given index.
-	 * If the index is out of range (but not negative) the character position
-	 * behind the last character (the length of the input string) is returned.
-	 *
-	 * @param index index of the token for which to return the start position
-	 * @return the start position of the token with the given index
-	 * @throws java.lang.IndexOutOfBoundsException if index is negative
-	 */
-	int getTokenStart(int index);
-
-	/**
-	 * Returns the character length of the token with the given index.
-	 * If the index is out of range (but not negative) the value 0 is returned.
-	 *
-	 * @param index index of the token for which to return the start position
-	 * @return the character length of the token with the given index
-	 * @throws java.lang.IndexOutOfBoundsException if index is negative
-	 */
-	int getTokenLength(int index);
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewer.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewer.java
deleted file mode 100644
index 14a2010..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewer.java
+++ /dev/null
@@ -1,4125 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     channingwalton@mac.com - curved line code
- *******************************************************************************/
-package org.eclipse.compare.contentmergeviewer;
-
-import java.util.List;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.HashMap;
-import java.util.ResourceBundle;
-import java.io.UnsupportedEncodingException;
-import java.text.MessageFormat;
-
-import java.lang.reflect.InvocationTargetException;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Cursor;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.custom.*;
-
-import org.eclipse.jface.action.*;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.text.*;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.CoreException;
-
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IKeyBindingService;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.IWorkbenchPartSite;
-import org.eclipse.ui.help.WorkbenchHelp;
-
-import org.eclipse.compare.*;
-import org.eclipse.compare.internal.ICompareContextIds;
-import org.eclipse.compare.internal.MergeSourceViewer;
-import org.eclipse.compare.internal.BufferedCanvas;
-import org.eclipse.compare.internal.Utilities;
-import org.eclipse.compare.internal.TokenComparator;
-import org.eclipse.compare.internal.DocLineComparator;
-import org.eclipse.compare.internal.ComparePreferencePage;
-import org.eclipse.compare.internal.INavigatable;
-import org.eclipse.compare.internal.CompareNavigator;
-import org.eclipse.compare.internal.TimeoutContext;
-import org.eclipse.compare.internal.DocumentManager;
-import org.eclipse.compare.internal.CompareMessages;
-import org.eclipse.compare.rangedifferencer.*;
-import org.eclipse.compare.structuremergeviewer.*;
-
-/**
- * A text merge viewer uses the <code>RangeDifferencer</code> to perform a
- * textual, line-by-line comparison of two (or three) input documents.
- * It is based on the <code>ContentMergeViewer</code> and uses <code>TextViewer</code>s
- * to implement the ancestor, left, and right content areas.
- * <p>
- * In the three-way compare case ranges of differing lines are highlighted and framed
- * with different colors to show whether the difference is an incoming, outgoing, or conflicting change.
- * The <code>TextMergeViewer</code> supports the notion of a current "differing range"
- * and provides toolbar buttons to navigate from one range to the next (or previous).
- * <p>
- * If there is a current "differing range" and the underlying document is editable
- * the <code>TextMergeViewer</code> enables actions in context menu and toolbar to
- * copy a range from one side to the other side, thereby performing a merge operation.
- * <p>
- * In addition to a line-by-line comparison the <code>TextMergeViewer</code>
- * uses a token based compare on differing lines.
- * The token compare is activated when navigating into
- * a range of differing lines. At first the lines are selected as a block.
- * When navigating into this block the token compare shows for every line 
- * the differing token by selecting them.
- * <p>
- * The <code>TextMergeViewer</code>'s default token compare works on characters separated
- * by whitespace. If a different strategy is needed (for example, Java tokens in
- * a Java-aware merge viewer), clients can create their own token
- * comparators by implementing the <code>ITokenComparator</code> interface and overriding the
- * <code>TextMergeViewer.createTokenComparator</code> factory method).
- * <p>
- * Access to the <code>TextMergeViewer</code>'s model is by means of an
- * <code>IMergeViewerContentProvider</code>. Its <code>get<it>X</it></code>Content</code> methods must return
- * either an <code>IDocument</code>, an <code>IDocumentRange</code>, or an <code>IStreamContentAccessor</code>.
- * In the <code>IDocumentRange</code> case the <code>TextMergeViewer</code>
- * works on a subrange of a document. In the <code>IStreamContentAccessor</code> case
- * a document is created internally and initialized from the stream.
- * <p>
- * A <code>TextMergeViewer</code> can be used as is. However clients may subclass
- * to customize the behavior. For example a <code>MergeTextViewer</code> for Java would override
- * the <code>configureTextViewer</code> method to configure the <code>TextViewer</code> for Java source code,
- * the <code>createTokenComparator</code> method to create a Java specific tokenizer.
- *
- * @see org.eclipse.compare.rangedifferencer.RangeDifferencer
- * @see org.eclipse.jface.text.TextViewer
- * @see ITokenComparator
- * @see IDocumentRange
- * @see org.eclipse.compare.IStreamContentAccessor
- */
-public class TextMergeViewer extends ContentMergeViewer  {
-	
-	private static final boolean DEBUG= false;
-	
-	private static final String[] GLOBAL_ACTIONS= {
-		IWorkbenchActionConstants.UNDO,
-		IWorkbenchActionConstants.REDO,
-		IWorkbenchActionConstants.CUT,
-		IWorkbenchActionConstants.COPY,
-		IWorkbenchActionConstants.PASTE,
-		IWorkbenchActionConstants.DELETE,
-		IWorkbenchActionConstants.SELECT_ALL,
-		IWorkbenchActionConstants.SAVE
-	};
-	private static final String[] TEXT_ACTIONS= {
-		MergeSourceViewer.UNDO_ID,
-		MergeSourceViewer.REDO_ID,
-		MergeSourceViewer.CUT_ID,
-		MergeSourceViewer.COPY_ID,
-		MergeSourceViewer.PASTE_ID,
-		MergeSourceViewer.DELETE_ID,
-		MergeSourceViewer.SELECT_ALL_ID,
-		MergeSourceViewer.SAVE_ID
-	};
-					
-	private static final String BUNDLE_NAME= "org.eclipse.compare.contentmergeviewer.TextMergeViewerResources"; //$NON-NLS-1$
-			
-	// constants
-	/** Width of left and right vertical bar */
-	private static final int MARGIN_WIDTH= 6;
-	/** Width of center bar */
-	private static final int CENTER_WIDTH= 34;
-	/** Width of birds eye view */
-	private static final int BIRDS_EYE_VIEW_WIDTH= 12;
-	/** Width of birds eye view */
-	private static final int BIRDS_EYE_VIEW_INSET= 2;
-	/** */
-	private static final int RESOLVE_SIZE= 5;
-	/** if true copying conflicts from one side to other concatenates both sides */
-	private static final boolean APPEND_CONFLICT= true;
-
-	/** line width of change borders */
-	private static final int LW= 1;
-	/** Selects between smartTokenDiff and mergingTokenDiff */
-	private static final boolean USE_MERGING_TOKEN_DIFF= false;
-	/** When calculating differences show Progress after this timeout (in milliseconds) */
-	private static final int TIMEOUT= 2000;
-		
-	// determines whether a change between left and right is considered incoming or outgoing
-	private boolean fLeftIsLocal;
-	private boolean fShowCurrentOnly= false;
-	private boolean fShowCurrentOnly2= false;
-	private int fMarginWidth= MARGIN_WIDTH;
-	private int fTopInset;
-	
-	// Colors
-	private RGB fBackground;
-	private RGB fForeground;
-	private boolean fPollSystemForeground= true;
-	private boolean fPollSystemBackground= true;
-	
-	private RGB SELECTED_INCOMING;
-	private RGB INCOMING;
-	private RGB INCOMING_FILL;
-	
-	private RGB SELECTED_CONFLICT;
-	private RGB CONFLICT;
-	private RGB CONFLICT_FILL;
-	
-	private RGB SELECTED_OUTGOING;
-	private RGB OUTGOING;
-	private RGB OUTGOING_FILL;
-	
-	private RGB RESOLVED;
-
-	private boolean fEndOfDocReached;
-	private IDocumentListener fDocumentListener;
-	
-	private IPreferenceStore fPreferenceStore;
-	private IPropertyChangeListener fPreferenceChangeListener;
-	
-	/** All diffs for calculating scrolling position (includes line ranges without changes) */
-	private ArrayList fAllDiffs;
-	/** Subset of above: just real differences. */
-	private ArrayList fChangeDiffs;
-	/** The current diff */
-	private Diff fCurrentDiff;
-	
-	private HashMap fNewAncestorRanges= new HashMap();
-	private HashMap fNewLeftRanges= new HashMap();
-	private HashMap fNewRightRanges= new HashMap();
-	
-	private MergeSourceViewer fAncestor;
-	private MergeSourceViewer fLeft;
-	private MergeSourceViewer fRight;
-	
-	private int fLeftLineCount;
-	private int fRightLineCount;
-	
-	private boolean fInScrolling;
-	
-	private int fPts[]= new int[8];	// scratch area for polygon drawing
-	
-	private boolean fIgnoreAncestor= false;
-	private ActionContributionItem fIgnoreAncestorItem;
-	private boolean fHiglightRanges;
-	
-	private boolean fShowPseudoConflicts= false;
-	
-	private boolean fUseSplines= true;
-	private boolean fUseSingleLine= true;
-	private boolean fUseResolveUI= fUseSingleLine;	// resolve UI only for single lines	private boolean fShowSummeryIcon;
-
-	private String fSymbolicFontName;
-
-	private ActionContributionItem fNextItem;	// goto next difference
-	private ActionContributionItem fPreviousItem;	// goto previous difference
-	private ActionContributionItem fCopyDiffLeftToRightItem;
-	private ActionContributionItem fCopyDiffRightToLeftItem;
-	
-	private IKeyBindingService fKeyBindingService;
-	
-	private boolean fSynchronizedScrolling= true;
-	private boolean fShowMoreInfo= false;
-	
-	private MergeSourceViewer fFocusPart;
-	
-	private boolean fSubDoc= true;
-	private IPositionUpdater fPositionUpdater;
-	private boolean fIsMotif;	
-	private boolean fIsCarbon;	
-		
-
-	// SWT widgets
-	private BufferedCanvas fAncestorCanvas;
-	private BufferedCanvas fLeftCanvas;
-	private BufferedCanvas fRightCanvas;
-	private Canvas fScrollCanvas;
-	private ScrollBar fVScrollBar;
-	private Canvas fBirdsEyeCanvas;
-	private Canvas fSummaryHeader;
-	private HeaderPainter fHeaderPainter;
-	
-	// SWT resources to be disposed
-	private Map fColors;
-	private Cursor fBirdsEyeCursor;
-				
-	// points for center curves
-	private double[] fBasicCenterCurve;
-	
-	private Button fCenterButton;
-	private Diff fButtonDiff;
-					
-	class HeaderPainter implements PaintListener {
-		
-		private static final int INSET= BIRDS_EYE_VIEW_INSET;
-
-		private RGB fIndicatorColor;
-		private Color fSeparatorColor;
-		
-		public HeaderPainter() {
-			fSeparatorColor= getColor(fSummaryHeader.getDisplay(), ViewForm.borderInsideRGB);
-		}
-		
-		/**
-		 * Returns true on color change
-		 */
-		public boolean setColor(RGB color) {
-			RGB oldColor= fIndicatorColor;
-			fIndicatorColor= color;
-			if (color == null)
-				return oldColor != null;
-			if (oldColor != null)
-				return !color.equals(oldColor);
-			return true;
-		}
-		
-		private void drawBevelRect(GC gc, int x, int y, int w, int h, Color topLeft, Color bottomRight) {
-			gc.setForeground(topLeft);
-			gc.drawLine(x, y, x + w -1, y);
-			gc.drawLine(x, y, x, y + h -1);
-		
-			gc.setForeground(bottomRight);
-			gc.drawLine(x + w, y, x + w, y + h);
-			gc.drawLine(x, y + h, x + w, y + h);
-		}
-		
-		public void paintControl(PaintEvent e) {
-			
-			Point s= fSummaryHeader.getSize();
-			
-			if (fIndicatorColor != null) {
-				Display d= fSummaryHeader.getDisplay();
-				e.gc.setBackground(getColor(d, fIndicatorColor));
-				int min= Math.min(s.x, s.y)-2*INSET;
-				Rectangle r= new Rectangle((s.x-min)/2, (s.y-min)/2, min, min);
-				e.gc.fillRectangle(r);
-				if (d != null)
-					drawBevelRect(e.gc, r.x, r.y, r.width -1, r.height -1, d.getSystemColor(SWT.COLOR_WIDGET_NORMAL_SHADOW), d.getSystemColor(SWT.COLOR_WIDGET_HIGHLIGHT_SHADOW));
-
-				e.gc.setForeground(fSeparatorColor);
-				e.gc.setLineWidth(1);
-				e.gc.drawLine(0+1, s.y-1, s.x-1-1, s.y-1);
-			}
-		}
-	};
-
-	/**
-	 * The position updater used to adapt the positions representing
-	 * the child document ranges to changes of the parent document.
-	 */
-	class ChildPositionUpdater extends DefaultPositionUpdater {
-		
-		/**
-		 * Creates the position updated.
-		 */
-		protected ChildPositionUpdater(String category) {
-			super(category);
-		}
-		
-		/**
-		 * Child document ranges cannot be deleted other then by calling
-		 * freeChildDocument.
-		 */
-		protected boolean notDeleted() {
-			return true;
-		}
-		
-		/**
-		 * If an insertion happens at a child document's start offset, the
-		 * position is extended rather than shifted. Also, if something is added 
-		 * right behind the end of the position, the position is extended rather
-		 * than kept stable.
-		 */
-		protected void adaptToInsert() {
-			
-			if (fPosition == fLeft.getRegion() || fPosition == fRight.getRegion()) {
-				int myStart= fPosition.offset;
-				int myEnd=   fPosition.offset + fPosition.length;
-				myEnd= Math.max(myStart, myEnd);
-				
-				int yoursStart= fOffset;
-				int yoursEnd=   fOffset + fReplaceLength -1;
-				yoursEnd= Math.max(yoursStart, yoursEnd);
-				
-				if (myEnd < yoursStart)
-					return;
-				
-				if (myStart <= yoursStart)
-					fPosition.length += fReplaceLength;
-				else
-					fPosition.offset += fReplaceLength;
-			} else {
-				super.adaptToInsert();
-			}			
-		}
-	}
-	
-	/**
-	 * A Diff represents synchronized character ranges in two or three Documents.
-	 * The MergeTextViewer uses Diffs to find differences in line and token ranges.
-	 */
-	/* package */ class Diff {
-		/** character range in ancestor document */
-		Position fAncestorPos;
-		/** character range in left document */
-		Position fLeftPos;
-		/** character range in right document */
-		Position fRightPos;
-		/** if this is a TokenDiff fParent points to the enclosing LineDiff */
-		Diff fParent;	
-		/** if Diff has been resolved */
-		boolean fResolved;
-		int fDirection;
-		boolean fIsToken= false;
-		/** child token diffs */
-		ArrayList fDiffs;
-		boolean fIsWhitespace= false;
-
-		/**
-		 * Create Diff from two ranges and an optional parent diff.
-		 */
-		Diff(Diff parent, int dir, IDocument ancestorDoc, Position aRange, int ancestorStart, int ancestorEnd,
-							 IDocument leftDoc, Position lRange, int leftStart, int leftEnd,
-							 IDocument rightDoc, Position rRange, int rightStart, int rightEnd) {
-			fParent= parent != null ? parent : this;
-			fDirection= dir;
-			
-			fLeftPos= createPosition(leftDoc, lRange, leftStart, leftEnd);
-			fRightPos= createPosition(rightDoc, rRange, rightStart, rightEnd);
-			if (ancestorDoc != null)
-				fAncestorPos= createPosition(ancestorDoc, aRange, ancestorStart, ancestorEnd);
-		}
-		
-		Position getPosition(char type) {
-			switch (type) {
-			case 'A':
-				return fAncestorPos;
-			case 'L':
-				return fLeftPos;
-			case 'R':
-				return fRightPos;
-			}
-			return null;
-		}
-		
-		boolean isInRange(char type, int pos) {
-			Position p= getPosition(type);
-			return (pos >= p.offset) && (pos < (p.offset+p.length));
-		}
-		
-		String changeType() {
-			boolean leftEmpty= fLeftPos.length == 0;
-			boolean rightEmpty= fRightPos.length == 0;
-			
-			if (fDirection == RangeDifference.LEFT) {
-				if (!leftEmpty && rightEmpty)
-					return CompareMessages.getString("TextMergeViewer.changeType.addition"); //$NON-NLS-1$
-				if (leftEmpty && !rightEmpty)
-					return CompareMessages.getString("TextMergeViewer.changeType.deletion"); //$NON-NLS-1$
-			} else {
-				if (leftEmpty && !rightEmpty)
-					return CompareMessages.getString("TextMergeViewer.changeType.addition"); //$NON-NLS-1$
-				if (!leftEmpty && rightEmpty)
-					return CompareMessages.getString("TextMergeViewer.changeType.deletion"); //$NON-NLS-1$
-			}
-			return CompareMessages.getString("TextMergeViewer.changeType.change"); //$NON-NLS-1$
-		}
-		
-		Image getImage() {
-			int code= Differencer.CHANGE;
-			switch (fDirection) {
-			case RangeDifference.RIGHT:
-				code+= Differencer.LEFT;
-				break;
-			case RangeDifference.LEFT:
-				code+= Differencer.RIGHT;
-				break;
-			case RangeDifference.ANCESTOR:
-			case RangeDifference.CONFLICT:
-				code+= Differencer.CONFLICTING;
-				break;
-			}
-			if (code != 0)
-				return getCompareConfiguration().getImage(code);
-			return null;
-		}
-		
-		Position createPosition(IDocument doc, Position range, int start, int end) {
-			try {
-				int l= end-start;
-				if (range != null) {
-					int dl= range.length;
-					if (l > dl)
-						l= dl;					
-				} else {
-					int dl= doc.getLength();
-					if (start+l > dl)
-						l= dl-start;
-				}
-					
-				Position p= null;
-				try {
-					p= new Position(start, l);
-				} catch (RuntimeException ex) {
-					//System.out.println("Diff.createPosition: " + start + " " + l);
-				}
-				
-				try {
-					doc.addPosition(IDocumentRange.RANGE_CATEGORY, p);
-				} catch (BadPositionCategoryException ex) {
-				}
-				return p;
-			} catch (BadLocationException ee) {
-				//System.out.println("Diff.createPosition: " + start + " " + end);
-			}
-			return null;
-		}
-
-		void add(Diff d) {
-			if (fDiffs == null)
-				fDiffs= new ArrayList();
-			fDiffs.add(d);
-		}
-		
-		boolean isDeleted() {
-			if (fAncestorPos != null && fAncestorPos.isDeleted())
-				return true;
-			return fLeftPos.isDeleted() || fRightPos.isDeleted();
-		}
-		
-		void setResolved(boolean r) {
-			fResolved= r;
-			if (r)
-				fDiffs= null;
-		}
-
-		boolean isResolved() {
-			if (!fResolved && fDiffs != null) {
-				Iterator e= fDiffs.iterator();
-				while (e.hasNext()) {
-					Diff d= (Diff) e.next();
-					if (!d.isResolved())
-						return false;
-				}
-				return true;
-			}
-			return fResolved;
-		}
-		
-//		private boolean isIncoming() {
-//			switch (fDirection) {
-//			case RangeDifference.RIGHT:
-//				if (fLeftIsLocal)
-//					return true;
-//				break;
-//			case RangeDifference.LEFT:
-//				if (!fLeftIsLocal)
-//					return true;
-//				break;
-//			}
-//			return false;
-//		}
-		
-		private boolean isIncomingOrConflicting() {
-			switch (fDirection) {
-			case RangeDifference.RIGHT:
-				if (fLeftIsLocal)
-					return true;
-				break;
-			case RangeDifference.LEFT:
-				if (!fLeftIsLocal)
-					return true;
-				break;
-			case RangeDifference.CONFLICT:
-				return true;
-			}
-			return false;
-		}
-		
-//		private boolean isUnresolvedIncoming() {
-//			if (fResolved)
-//				return false;
-//			return isIncoming();
-//		}
-		
-		private boolean isUnresolvedIncomingOrConflicting() {
-			if (fResolved)
-				return false;
-			return isIncomingOrConflicting();
-		}
-				
-		Position getPosition(MergeSourceViewer w) {
-			if (w == fLeft)
-				return fLeftPos;
-			if (w == fRight)
-				return fRightPos;
-			if (w == fAncestor)
-				return fAncestorPos;
-			return null;
-		}
-		
-		/**
-		 * Returns true if given character range overlaps with this Diff.
-		 */
-		boolean contains(MergeSourceViewer w, int start, int end) {
-			Position h= getPosition(w);
-			if (h != null) {
-				int offset= h.getOffset();
-				if (start >= offset) {
-					int endPos= offset+h.getLength();
-					if (end < endPos)
-						return true;
-					if (endPos == w.getDocument().getLength())
-						return true;
-				}
-			}
-			return false;
-		}
-				
-		int getMaxDiffHeight(boolean withAncestor) {
-			Point region= new Point(0, 0);
-			int h= fLeft.getLineRange(fLeftPos, region).y;
-			if (withAncestor)
-				h= Math.max(h, fAncestor.getLineRange(fAncestorPos, region).y);
-			return Math.max(h, fRight.getLineRange(fRightPos, region).y);
-		}
-		
-		int getAncestorHeight() {
-			Point region= new Point(0, 0);			
-			return fAncestor.getLineRange(fAncestorPos, region).y;
-		}
-
-		int getLeftHeight() {
-			Point region= new Point(0, 0);			
-			return fLeft.getLineRange(fLeftPos, region).y;
-		}
-
-		int getRightHeight() {
-			Point region= new Point(0, 0);			
-			return fRight.getLineRange(fRightPos, region).y;
-		}
-	}
-
-	//---- MergeTextViewer
-	
-	/**
-	 * Creates a text merge viewer under the given parent control.
-	 *
-	 * @param parent the parent control
-	 * @param configuration the configuration object
-	 */
-	public TextMergeViewer(Composite parent, CompareConfiguration configuration) {
-		this(parent, SWT.NULL, configuration);
-	}
-	
-	/**
-	 * Creates a text merge viewer under the given parent control.
-	 *
-	 * @param parent the parent control
-	 * @param style SWT style bits for top level composite of this viewer
-	 * @param configuration the configuration object
-	 */
-	public TextMergeViewer(Composite parent, int style, CompareConfiguration configuration) {
-		super(style, ResourceBundle.getBundle(BUNDLE_NAME), configuration);
-		
-		fSymbolicFontName= getClass().getName();
-		
-		String platform= SWT.getPlatform();
-		fIsMotif= "motif".equals(platform); //$NON-NLS-1$
-		fIsCarbon= "carbon".equals(platform); //$NON-NLS-1$
-		
-		if (fIsMotif)
-			fMarginWidth= 0;
-			
-		Display display= parent.getDisplay();
-		
-		fPreferenceChangeListener= new IPropertyChangeListener() {
-			public void propertyChange(PropertyChangeEvent event) {
-				TextMergeViewer.this.propertyChange(event);
-			}
-		};
-
-		fPreferenceStore= configuration.getPreferenceStore();
-		if (fPreferenceStore != null) {
-			fPreferenceStore.addPropertyChangeListener(fPreferenceChangeListener);
-			
-			checkForColorUpdate(display);
-
-			fLeftIsLocal= Utilities.getBoolean(configuration, "LEFT_IS_LOCAL", false); //$NON-NLS-1$
-			fSynchronizedScrolling= fPreferenceStore.getBoolean(ComparePreferencePage.SYNCHRONIZE_SCROLLING);
-			fShowMoreInfo= fPreferenceStore.getBoolean(ComparePreferencePage.SHOW_MORE_INFO);
-			fShowPseudoConflicts= fPreferenceStore.getBoolean(ComparePreferencePage.SHOW_PSEUDO_CONFLICTS);
-			//fUseSplines= fPreferenceStore.getBoolean(ComparePreferencePage.USE_SPLINES);
-			fUseSingleLine= fPreferenceStore.getBoolean(ComparePreferencePage.USE_SINGLE_LINE);
-			fUseResolveUI= fUseSingleLine;
-			//fUseResolveUI= fPreferenceStore.getBoolean(ComparePreferencePage.USE_RESOLVE_UI);
-		}
-		
-		fDocumentListener= new IDocumentListener() {
-			
-			public void documentAboutToBeChanged(DocumentEvent e) {
-			}
-			
-			public void documentChanged(DocumentEvent e) {
-				TextMergeViewer.this.documentChanged(e);
-			}
-		};
-		
-		buildControl(parent);
-		
-		INavigatable nav= new INavigatable() {
-			public boolean gotoDifference(boolean next) {
-				return navigate(next, false, false);
-			}
-		};
-		fComposite.setData(INavigatable.NAVIGATOR_PROPERTY, nav);
-		
-		fBirdsEyeCursor= new Cursor(parent.getDisplay(), SWT.CURSOR_HAND);
-		
-		JFaceResources.getFontRegistry().addListener(fPreferenceChangeListener);
-		updateFont();
-	}
-	
-	private void updateFont() {
-		Font f= JFaceResources.getFont(fSymbolicFontName);
-		if (f != null) {
-			if (fAncestor != null)
-				fAncestor.setFont(f);
-			if (fLeft != null)
-				fLeft.setFont(f);
-			if (fRight != null)
-				fRight.setFont(f);
-		}
-	}
-	
-	private void checkForColorUpdate(Display display) {
-		if (fPollSystemForeground) {
-			RGB fg= display.getSystemColor(SWT.COLOR_LIST_FOREGROUND).getRGB();
-			if (fForeground == null || !fg.equals(fForeground)) {
-				fForeground= fg;
-				updateColors(display);
-			}
-		}
-		if (fPollSystemBackground) {
-			RGB bg= display.getSystemColor(SWT.COLOR_LIST_BACKGROUND).getRGB();
-			if (fBackground == null || !bg.equals(fBackground)) {
-				fBackground= bg;
-				updateColors(display);
-			}
-		}
-	}
-	
-	/**
-	 * Sets the viewer's background color to the given RGB value.
-	 * If the value is <code>null</code> the system's default background color is used.
-	 * @param background the background color or <code>null</code> to use the system's default background color
-	 * @since 2.0
-	 */
-	public void setBackgroundColor(RGB background) {
-		fPollSystemBackground= (background == null);
-		fBackground= background;
-		updateColors(null);
-	}
-	
-	private RGB getBackground(Display display) {
-		if (fBackground != null)
-			return fBackground;
-		if (display == null)
-			display= fComposite.getDisplay();
-		return display.getSystemColor(SWT.COLOR_LIST_BACKGROUND).getRGB();
-	}
-	
-	/**
-	 * Sets the viewer's foreground color to the given RGB value.
-	 * If the value is <code>null</code> the system's default foreground color is used.
-	 * @param foreground the foreground color or <code>null</code> to use the system's default foreground color
-	 * @since 2.0
-	 */
-	public void setForegroundColor(RGB foreground) {
-		fPollSystemForeground= (foreground == null);
-		fForeground= foreground;
-		updateColors(null);
-	}
-	
-	private RGB getForeground(Display display) {
-		if (fForeground != null)
-			return fForeground;
-		if (display == null)
-			display= fComposite.getDisplay();
-		return display.getSystemColor(SWT.COLOR_LIST_FOREGROUND).getRGB();
-	}
-	
-	private void updateColors(Display display) {
-		
-		if (display == null)
-			display= fComposite.getDisplay();
-		
-		Color color= null;
-		if (fBackground != null)
-			color= getColor(display, fBackground);
-		
-		if (fAncestor != null)
-			fAncestor.setBackgroundColor(color);
-		if (fLeft != null)
-			fLeft.setBackgroundColor(color);
-		if (fRight != null)
-			fRight.setBackgroundColor(color);
-						
-		RGB bg= getBackground(display);
-		SELECTED_INCOMING= new RGB(0, 0, 255);
-		INCOMING= interpolate(SELECTED_INCOMING, bg, 0.6);
-		INCOMING_FILL= interpolate(SELECTED_INCOMING, bg, 0.97);
-
-		SELECTED_CONFLICT= new RGB(255, 0, 0);
-		CONFLICT= interpolate(SELECTED_CONFLICT, bg, 0.6);
-		CONFLICT_FILL= interpolate(SELECTED_CONFLICT, bg, 0.97);
-	
-		SELECTED_OUTGOING= getForeground(display);
-		OUTGOING= interpolate(SELECTED_OUTGOING, bg, 0.6);
-		OUTGOING_FILL= interpolate(SELECTED_OUTGOING, bg, 0.97);
-		
-		RESOLVED= new RGB(0, 255, 0);
-				
-		refreshBirdsEyeView();
-		invalidateLines();
-		
-		updateAllDiffBackgrounds(display);
-	}
-	
-	/**
-	 * Invalidates the current presentation by invalidating the three text viewers.
-	 * @since 2.0
-	 */
-	public void invalidateTextPresentation() {
-		if (fAncestor != null)
-			fAncestor.invalidateTextPresentation();
-		if (fLeft != null)
-			fLeft.invalidateTextPresentation();
-		if (fRight != null)
-			fRight.invalidateTextPresentation();
-	}
-	
-	/**
-	 * Configures the passed text viewer.
-	 * This method is called after the three text viewers have been created for the
-	 * content areas.
-	 * The <code>TextMergeViewer</code> implementation of this method does nothing.
-	 * Subclasses may reimplement to provide a specific configuration for the text viewer.
-	 *
-	 * @param textViewer the text viewer to configure
-	 */
-	protected void configureTextViewer(TextViewer textViewer) {
-	}
-				
-	/**
-	 * Creates an <code>ITokenComparator</code> which is used to show the
-	 * intra line differences.
-	 * The <code>TextMergeViewer</code> implementation of this method returns a 
-	 * tokenizer that breaks a line into words separated by whitespace.
-	 * Subclasses may reimplement to provide a specific tokenizer.
-	 *
-	 * @return a ITokenComparator which is used for a second level token compare.
-	 */
-	protected ITokenComparator createTokenComparator(String s) {
-		return new TokenComparator(s);
-	}
-	
-	/**
-	 * Returns a document partitioner which is suitable for the underlying content type.
-	 * This method is only called if the input provided by the content provider is a
-	 * <code>IStreamContentAccessor</code> and an internal document must be created. This
-	 * document is initialized with the partitioner returned from this method.
-	 * <p>
-	 * The <code>TextMergeViewer</code> implementation of this method returns 
-	 * <code>null</code>. Subclasses may reimplement to create a partitioner for a 
-	 * specific content type.
-	 *
-	 * @return a document partitioner, or <code>null</code>
-	 */
-	protected IDocumentPartitioner getDocumentPartitioner() {
-		return null;
-	}
-	
-	/**
-	 * Called on the viewer disposal.
-	 * Unregisters from the compare configuration.
-	 * Clients may extend if they have to do additional cleanup.
-	 */
-	protected void handleDispose(DisposeEvent event) {
-		
-		if (fKeyBindingService != null) {
-			IAction a;
-			if (fNextItem != null) {
-				a= fNextItem.getAction();
-				if (a != null)
-					fKeyBindingService.unregisterAction(a);
-			}
-			if (fPreviousItem != null) {
-				a= fPreviousItem.getAction();
-				if (a != null)
-					fKeyBindingService.unregisterAction(a);
-			}
-			if (fCopyDiffLeftToRightItem != null) {
-				a= fCopyDiffLeftToRightItem.getAction();
-				if (a != null)
-					fKeyBindingService.unregisterAction(a);
-			}
-			if (fCopyDiffRightToLeftItem != null) {
-				a= fCopyDiffRightToLeftItem.getAction();
-				if (a != null)
-					fKeyBindingService.unregisterAction(a);
-			}
-			fKeyBindingService= null;
-		}
-		
-		Object input= getInput();
-		DocumentManager.remove(getDocument2('A', input));
-		DocumentManager.remove(getDocument2('L', input));
-		DocumentManager.remove(getDocument2('R', input));
-		
-		if (DEBUG)
-			DocumentManager.dump();
-
-		if (fPreferenceChangeListener != null) {
-			JFaceResources.getFontRegistry().removeListener(fPreferenceChangeListener);
-			if (fPreferenceStore != null)
-				fPreferenceStore.removePropertyChangeListener(fPreferenceChangeListener);
-			fPreferenceChangeListener= null;
-		}
-		
-		fLeftCanvas= null;
-		fRightCanvas= null;
-		fVScrollBar= null;
-		fBirdsEyeCanvas= null;
-		fSummaryHeader= null;
-
-		unsetDocument(fAncestor);
-		unsetDocument(fLeft);
-		unsetDocument(fRight);
-		
-		if (fColors != null) {
-			Iterator i= fColors.values().iterator();
-			while (i.hasNext()) {
-				Color color= (Color) i.next();
-				if (!color.isDisposed())
-					color.dispose();
-			}
-			fColors= null;
-		}
-		
-		if (fBirdsEyeCursor != null) {
-			fBirdsEyeCursor.dispose();
-			fBirdsEyeCursor= null;
-		}
-		
-		super.handleDispose(event);
-  	}
-  	  	  				 		
-	//-------------------------------------------------------------------------------------------------------------
-	//--- internal ------------------------------------------------------------------------------------------------
-	//-------------------------------------------------------------------------------------------------------------
-	
-	/**
-	 * Creates the specific SWT controls for the content areas.
-	 * Clients must not call or override this method.
-	 */
-	protected void createControls(Composite composite) {
-		
-		WorkbenchHelp.setHelp(composite, ICompareContextIds.TEXT_MERGE_VIEW);
-		
-		// 1st row
-		if (fMarginWidth > 0) {
-			fAncestorCanvas= new BufferedCanvas(composite, SWT.NONE) {
-				public void doPaint(GC gc) {
-					paintSides(gc, fAncestor, fAncestorCanvas, false);
-				}
-			};
-			fAncestorCanvas.addMouseListener(
-				new MouseAdapter() {
-					public void mouseDown(MouseEvent e) {
-						setCurrentDiff2(handleMouseInSides(fAncestorCanvas, fAncestor, e.y), false);
-					}
-				}
-			);
-		}
-									
-		fAncestor= createPart(composite);
-		fAncestor.setEditable(false);
-		
-		fSummaryHeader= new Canvas(composite, SWT.NONE);
-		fHeaderPainter= new HeaderPainter();
-		fSummaryHeader.addPaintListener(fHeaderPainter);
-		updateResolveStatus();
-				
-		// 2nd row
-		if (fMarginWidth > 0) {
-			fLeftCanvas= new BufferedCanvas(composite, SWT.NONE) {
-				public void doPaint(GC gc) {
-					paintSides(gc, fLeft, fLeftCanvas, false);
-				}
-			};
-			fLeftCanvas.addMouseListener(
-				new MouseAdapter() {
-					public void mouseDown(MouseEvent e) {
-						setCurrentDiff2(handleMouseInSides(fLeftCanvas, fLeft, e.y), false);
-					}
-				}
-			);
-		}
-		
-		fLeft= createPart(composite);
-		fLeft.getTextWidget().getVerticalBar().setVisible(!fSynchronizedScrolling);
-		fLeft.addAction(MergeSourceViewer.SAVE_ID, fLeftSaveAction);
-			
-		fRight= createPart(composite);
-		fRight.getTextWidget().getVerticalBar().setVisible(!fSynchronizedScrolling);
-		fRight.addAction(MergeSourceViewer.SAVE_ID, fRightSaveAction);
-		
-		if (fMarginWidth > 0) {
-			fRightCanvas= new BufferedCanvas(composite, SWT.NONE) {
-				public void doPaint(GC gc) {
-					paintSides(gc, fRight, fRightCanvas, fSynchronizedScrolling);
-				}
-			};
-			fRightCanvas.addMouseListener(
-				new MouseAdapter() {
-					public void mouseDown(MouseEvent e) {
-						setCurrentDiff2(handleMouseInSides(fRightCanvas, fRight, e.y), false);
-					}
-				}
-			);
-		}
-		
-		fScrollCanvas= new Canvas(composite, SWT.V_SCROLL);
-		//Rectangle trim= fScrollCanvas.computeTrim(0, 0, 0, 0);
-		Rectangle trim= fLeft.getTextWidget().computeTrim(0, 0, 0, 0);
-		fTopInset= trim.y;
-		
-		fVScrollBar= fScrollCanvas.getVerticalBar();
-		fVScrollBar.setIncrement(1);
-		fVScrollBar.setVisible(true);
-		fVScrollBar.addListener(SWT.Selection,
-			new Listener() {
-				public void handleEvent(Event e) {
-					int vpos= ((ScrollBar)e.widget).getSelection();
-					scrollVertical(vpos, vpos, vpos, null);
-				}
-			}
-		);
-		
-		fBirdsEyeCanvas= new BufferedCanvas(composite, SWT.NONE) {
-			public void doPaint(GC gc) {
-				paintBirdsEyeView(this, gc);
-			}
-		};
-		//fBirdsEyeCanvas.setBackground(composite.getDisplay().getSystemColor(SWT.COLOR_YELLOW));
-		fBirdsEyeCanvas.addMouseListener(
-			new MouseAdapter() {
-				public void mouseDown(MouseEvent e) {
-					setCurrentDiff2(handlemouseInBirdsEyeView(fBirdsEyeCanvas, e.y), true);
-				}
-			}
-		);
-		fBirdsEyeCanvas.addMouseMoveListener(
-			new MouseMoveListener() {
-				
-				private Cursor fLastCursor;
-				
-				public void mouseMove(MouseEvent e) {
-					Cursor cursor= null;
-					Diff diff= handlemouseInBirdsEyeView(fBirdsEyeCanvas, e.y);
-					if (diff != null && diff.fDirection != Differencer.NO_CHANGE)
-						cursor= fBirdsEyeCursor;
-					if (fLastCursor != cursor) {
-						fBirdsEyeCanvas.setCursor(cursor);
-						fLastCursor= cursor;
-					}
-				}
-			}
-		);
-	}
-	
-	private void setCurrentDiff2(Diff diff, boolean reveal) {
-		if (diff != null && diff.fDirection != Differencer.NO_CHANGE) {
-			//fCurrentDiff= null;
-			setCurrentDiff(diff, reveal);
-		}
-	}
-	
-	private Diff handleMouseInSides(Canvas canvas, MergeSourceViewer tp, int my) {
-
-		int lineHeight= tp.getTextWidget().getLineHeight();
-		int visibleHeight= tp.getViewportHeight();
-
-		if (! fHiglightRanges)
-			return null;
-
-		if (fChangeDiffs != null) {
-			int shift= tp.getVerticalScrollOffset() + (2-LW);
-
-			Point region= new Point(0, 0);
-			Iterator e= fChangeDiffs.iterator();
-			while (e.hasNext()) {
-				Diff diff= (Diff) e.next();
-				if (diff.isDeleted())
-					continue;
-
-				if (fShowCurrentOnly2 && !isCurrentDiff(diff))
-					continue;
-
-				tp.getLineRange(diff.getPosition(tp), region);
-				int y= (region.x * lineHeight) + shift;
-				int h= region.y * lineHeight;
-
-				if (y+h < 0)
-					continue;
-				if (y >= visibleHeight)
-					break;
-					
-				if (my >= y && my < y+h)
-					return diff;
-			}
-		}
-		return null;
-	}
-	
-	private Diff getDiffUnderMouse(Canvas canvas, int mx, int my, Rectangle r) {
-
-		if (! fSynchronizedScrolling)
-			return null;
-
-		int lineHeight= fLeft.getTextWidget().getLineHeight();
-		int visibleHeight= fRight.getViewportHeight();
-
-		Point size= canvas.getSize();
-		int w= size.x;
-
-		if (! fHiglightRanges)
-			return null;
-
-		if (fChangeDiffs != null) {
-			int lshift= fLeft.getVerticalScrollOffset();
-			int rshift= fRight.getVerticalScrollOffset();
-
-			Point region= new Point(0, 0);
-
-			Iterator e= fChangeDiffs.iterator();
-			while (e.hasNext()) {
-				Diff diff= (Diff) e.next();
-				if (diff.isDeleted())
-					continue;
-
-				if (fShowCurrentOnly2 && !isCurrentDiff(diff))
-					continue;
-
-				fLeft.getLineRange(diff.fLeftPos, region);
-				int ly= (region.x * lineHeight) + lshift;
-				int lh= region.y * lineHeight;
-
-				fRight.getLineRange(diff.fRightPos, region);
-				int ry= (region.x * lineHeight) + rshift;
-				int rh= region.y * lineHeight;
-
-				if (Math.max(ly+lh, ry+rh) < 0)
-					continue;
-				if (Math.min(ly, ry) >= visibleHeight)
-					break;
-
-				int cx= (w-RESOLVE_SIZE)/2;
-				int cy= ((ly+lh/2) + (ry+rh/2) - RESOLVE_SIZE)/2; 
-				if (my >= cy && my < cy+RESOLVE_SIZE && mx >= cx && mx < cx+RESOLVE_SIZE) {
-					if (r != null) {
-						r.x= cx+RESOLVE_SIZE/2-10;
-						r.y= cy+RESOLVE_SIZE/2-10;
-						r.width= 20;
-						r.height= 20;
-					}
-					return diff;
-				}
-			}
-		}
-		return null;
-	}
-
-	private Diff handlemouseInBirdsEyeView(Canvas canvas, int my) {
-		int yy, hh;
-		
-		Point size= canvas.getSize();
-		
-		int virtualHeight= fSynchronizedScrolling ? getVirtualHeight() : getRightHeight();		
-		if (virtualHeight < getViewportHeight())
-			return null;
-		
-		int y= 0;
-		if (fAllDiffs != null) {
-			Iterator e= fAllDiffs.iterator();
-			for (int i= 0; e.hasNext(); i++) {
-				Diff diff= (Diff) e.next();
-				int h= fSynchronizedScrolling ? diff.getMaxDiffHeight(fShowAncestor)
-											  : diff.getRightHeight();
-				if (useChange(diff.fDirection) && !diff.fIsWhitespace) {
-									
-					yy= (y*size.y)/virtualHeight;
-					hh= (h*size.y)/virtualHeight;
-					if (hh < 3)
-						hh= 3;
-						
-					if (my >= yy && my < yy+hh)
-						return diff;
-				}
-				y+= h;
-			}
-		}
-		return null;
-	}
-	
-	private void paintBirdsEyeView(Canvas canvas, GC gc) {
-		
-		Color c;
-		Rectangle r= new Rectangle(0, 0, 0, 0);
-		int yy, hh;
-		
-		Point size= canvas.getSize();
-		
-		int virtualHeight= fSynchronizedScrolling ? getVirtualHeight() : getRightHeight();		
-		if (virtualHeight < getViewportHeight())
-			return;
-				
-		Display display= canvas.getDisplay();
-		int y= 0;
-		if (fAllDiffs != null) {
-			Iterator e= fAllDiffs.iterator();
-			for (int i= 0; e.hasNext(); i++) {
-				Diff diff= (Diff) e.next();
-				int h= fSynchronizedScrolling ? diff.getMaxDiffHeight(fShowAncestor)
-											  : diff.getRightHeight();
-								
-				if (useChange(diff.fDirection) && !diff.fIsWhitespace) {
-					
-					yy= (y*size.y)/virtualHeight;
-					hh= (h*size.y)/virtualHeight;
-					if (hh < 3)
-						hh= 3;
-					
-					c= getColor(display, getFillColor(diff));
-					if (c != null) {
-						gc.setBackground(c);
-						gc.fillRectangle(BIRDS_EYE_VIEW_INSET, yy, size.x-(2*BIRDS_EYE_VIEW_INSET),hh);
-					}
-					c= getColor(display, getStrokeColor(diff));
-					if (c != null) {
-						gc.setForeground(c);
-						r.x= BIRDS_EYE_VIEW_INSET;
-						r.y= yy;
-						r.width= size.x-(2*BIRDS_EYE_VIEW_INSET)-1;
-						r.height= hh;
-						if (diff == fCurrentDiff ||
-								(fCurrentDiff != null && diff == fCurrentDiff.fParent)) {
-							gc.setLineWidth(2);
-							r.x++;
-							r.y++;
-							r.width--;
-							r.height--;
-						} else {
-							gc.setLineWidth(1);
-						}
-						gc.drawRectangle(r);
-					}
-				}
-				
-				y+= h;
-			}
-		}
-	}
-	
-	private void refreshBirdsEyeView() {
-		if (fBirdsEyeCanvas != null)
-			fBirdsEyeCanvas.redraw();
-	}
-	
-	/**
-	 * Called whenever setFocus() is called on the ContentViewer's top level SWT Composite.
-	 * This implementation sets the focus to the first enabled text widget.
-	 */
-	/* package */ boolean internalSetFocus() {
-		if (fFocusPart == null) {
-			if (fLeft != null && fLeft.getEnabled()) {
-				fFocusPart= fLeft;
-			} else if (fRight != null && fRight.getEnabled()) {
-				fFocusPart= fRight;
-			} else if (fAncestor != null && fAncestor.getEnabled()) {
-				fFocusPart= fAncestor;
-			}
-		}
-		if (fFocusPart != null) {
-			StyledText st= fFocusPart.getTextWidget();
-			if (st != null)
-				return st.setFocus();
-		}
-		return false;	// could not set focus
-	}
-	
-	
-	class HoverResizer extends Resizer {
-		Canvas fCanvas;
-		public HoverResizer(Canvas c, int dir) {
-			super(c, dir);
-			fCanvas= c;
-		}
-		public void mouseMove(MouseEvent e) {
-			if (!fIsDown && showResolveUI() && handleMouseMoveOverCenter(fCanvas, e.x, e.y))
-				return;
-			super.mouseMove(e);
-		}
-	}
-	
-	/**
-	 * Creates the central Canvas.
-	 * Called from ContentMergeViewer.
-	 */
-	/* package */ Control createCenter(Composite parent) {
-		if (fSynchronizedScrolling) {
-			final Canvas canvas= new BufferedCanvas(parent, SWT.NONE) {
-				public void doPaint(GC gc) {
-					paintCenter(this, gc);
-				}
-			};
-			if (!fUseResolveUI) {
-				new Resizer(canvas, HORIZONTAL);
-			} else {
-				
-				new HoverResizer(canvas, HORIZONTAL);
-								
-				fCenterButton= new Button(canvas, "carbon".equals(SWT.getPlatform()) ? SWT.FLAT : SWT.PUSH);	//$NON-NLS-1$
-				fCenterButton.setText("<");	 //$NON-NLS-1$
-				fCenterButton.pack();
-				fCenterButton.setVisible(false);
-				fCenterButton.addSelectionListener(
-					new SelectionAdapter() {
-						public void widgetSelected(SelectionEvent e) {
-							fCenterButton.setVisible(false);
-							if (fButtonDiff != null) {
-								setCurrentDiff(fButtonDiff, false);
-								copy(fCurrentDiff, false, fCurrentDiff.fDirection == RangeDifference.CONFLICT);
-							}
-						}
-					}
-				);				
-			}
-			
-			return canvas;
-		}
-		return super.createCenter(parent);
-	}
-	
-	private boolean handleMouseMoveOverCenter(Canvas canvas, int x, int y) {
-		Rectangle r= new Rectangle(0, 0, 0, 0);
-		Diff diff= getDiffUnderMouse(canvas, x, y, r);
-		if (diff != null && !diff.isUnresolvedIncomingOrConflicting())
-			diff= null;
-		if (diff != fButtonDiff) {
-			if (diff != null) {
-				if (fLeft.isEditable()) {
-					fButtonDiff= diff;
-					fCenterButton.setText("<");		//$NON-NLS-1$
-					String tt= fCopyDiffRightToLeftItem.getAction().getToolTipText();
-					fCenterButton.setToolTipText(tt);
-					fCenterButton.setBounds(r);
-					fCenterButton.setVisible(true);
-				} else if (fRight.isEditable()) {
-					fButtonDiff= diff;
-					fCenterButton.setText(">");		//$NON-NLS-1$
-					String tt= fCopyDiffLeftToRightItem.getAction().getToolTipText();
-					fCenterButton.setToolTipText(tt);
-					fCenterButton.setBounds(r);
-					fCenterButton.setVisible(true);										
-				} else
-					fButtonDiff= null;
-			} else {
-				fCenterButton.setVisible(false);
-				fButtonDiff= null;
-			}
-		}
-		return fButtonDiff != null;
-	}
-	
-	/**
-	 * Returns width of central canvas.
-	 * Overridden from ContentMergeViewer.
-	 */
-	/* package */ int getCenterWidth() {
-		if (fSynchronizedScrolling)
-			return CENTER_WIDTH;
-		return super.getCenterWidth();
-	}
-
-	/**
-	 * Creates and initializes a text part.
-	 */
-	private MergeSourceViewer createPart(Composite parent) {
-		
-		final MergeSourceViewer part= new MergeSourceViewer(parent, getResourceBundle());
-		final StyledText te= part.getTextWidget();
-		
-		if (!fConfirmSave)
-			part.hideSaveAction();
-		
-		te.addPaintListener(
-			new PaintListener() {
-				public void paintControl(PaintEvent e) {
-					paint(e, part);
-				}
-			}
-		);		
-		te.addKeyListener(
-			new KeyAdapter() {
-				public void keyPressed(KeyEvent e) {
-					handleSelectionChanged(part);
-				}
-			}
-		);
-		te.addMouseListener(
-			new MouseAdapter() {
-				public void mouseDown(MouseEvent e) {
-					//syncViewport(part);
-					handleSelectionChanged(part);
-				}
-			}
-		);		
-					
-		te.addFocusListener(
-			new FocusAdapter() {
-				public void focusGained(FocusEvent fe) {
-					fFocusPart= part;
-					connectGlobalActions(fFocusPart);
-				}
-				public void focusLost(FocusEvent fe) {
-					connectGlobalActions(null);
-				}
-			}
-		);
-		
-		part.addViewportListener(
-			new IViewportListener() {
-				public void viewportChanged(int verticalPosition) {
-					syncViewport(part);
-				}
-			}
-		);
-		
-		Font font= JFaceResources.getFont(fSymbolicFontName);
-		if (font != null)
-			te.setFont(font);
-		
-		if (fBackground != null)	// not default
-			te.setBackground(getColor(parent.getDisplay(), fBackground));			
-		
-		configureTextViewer(part);
-		
-		return part;
-	}
-	
-	private void connectGlobalActions(MergeSourceViewer part) {
-		IActionBars actionBars= Utilities.findActionBars(fComposite);
-		if (actionBars != null) {
-			for (int i= 0; i < GLOBAL_ACTIONS.length; i++) {
-				IAction action= null; 
-				if (part != null) {
-					action= part.getAction(TEXT_ACTIONS[i]);
-					if (action == null && TEXT_ACTIONS[i].equals(MergeSourceViewer.SAVE_ID)) {			
-						if (part == fLeft)
-							action= fLeftSaveAction;
-						else
-							action= fRightSaveAction;
-					}
-				}
-				actionBars.setGlobalActionHandler(GLOBAL_ACTIONS[i], action);
-			}
-			actionBars.updateActionBars();
-		}
-	}
-	
-	ITypedElement getLeg(char type, Object input) {
-		if (input instanceof ICompareInput) {
-			switch (type) {
-			case 'A':
-				return ((ICompareInput)input).getAncestor();
-			case 'L':
-				return ((ICompareInput)input).getLeft();
-			case 'R':
-				return ((ICompareInput)input).getRight();
-			}
-		}
-		return null;
-	}
-
-	IDocument getDocument(char type, Object input) {
-		ITypedElement te= getLeg(type, input);
-		if (te instanceof IDocument)
-			return (IDocument) te;
-		if (te instanceof IDocumentRange)
-			return ((IDocumentRange) te).getDocument();
-		if (te instanceof IStreamContentAccessor)
-			return DocumentManager.get(te);
-		return null;
-	}
-	
-	IDocument getDocument2(char type, Object input) {
-		IDocument doc= getDocument(type, input);
-		if (doc != null)
-			return doc;
-			
-		if (input instanceof IDiffElement) {
-			IDiffContainer parent= ((IDiffElement)input).getParent();
-			return getDocument(type, parent);
-		}
-		return null;
-	}
-	
-	/**
-	 * Returns true if the given inputs map to the same documents
-	 */
-	boolean sameDoc(char type, Object newInput, Object oldInput) {
-		IDocument newDoc= getDocument2(type, newInput);
-		IDocument oldDoc= getDocument2(type, oldInput);
-		return newDoc == oldDoc;
-	}
-	
-	/**
-	 * Overridden to prevent save confirmation if new input is sub document of current input.
-	 * @param newInput the new input of this viewer, or <code>null</code> if there is no new input
-	 * @param oldInput the old input element, or <code>null</code> if there was previously no input
-	 * @return <code>true</code> if saving was successful, or if the user didn't want to save (by pressing 'NO' in the confirmation dialog).
-	 * @since 2.0
-	 */
-	protected boolean doSave(Object newInput, Object oldInput) {
-		
-		if (oldInput != null && newInput != null) {
-			// check whether underlying documents have changed.
-			if (sameDoc('A', newInput, oldInput) &&
-					sameDoc('L', newInput, oldInput) &&
-						sameDoc('R', newInput, oldInput)) {
-				if (DEBUG) System.out.println("----- Same docs !!!!");	//$NON-NLS-1$
-				return false;
-			}
-		}
-		
-		if (DEBUG) System.out.println("***** New docs !!!!");	//$NON-NLS-1$
-		
-		IDocument aDoc= getDocument2('A', oldInput);
-		DocumentManager.remove(aDoc);
-		IDocument lDoc= getDocument2('L', oldInput);
-		DocumentManager.remove(lDoc);
-		IDocument rDoc= getDocument2('R', oldInput);
-		DocumentManager.remove(rDoc);
-		
-		if (DEBUG)
-			DocumentManager.dump();
-		
-		return super.doSave(newInput, oldInput);
-	}
-	
-	private ITypedElement getParent(char type) {
-		Object input= getInput();
-		if (input instanceof IDiffElement) {
-			IDiffContainer parent= ((IDiffElement)input).getParent();
-			return getLeg(type, parent);
-		}
-		return null;
-	}
-		
-	/**
-	 * Initializes the text viewers of the three content areas with the given input objects.
-	 * Subclasses may extend.
-	 */
-	protected void updateContent(Object ancestor, Object left, Object right) {
-		
-		boolean emptyInput= (ancestor == null && left == null && right == null);
-
-		int n= 0;
-		if (left != null)
-			n++;
-		if (right != null)
-			n++;
-		fHiglightRanges= n > 1;
-		
-		// clear stuff
-		fCurrentDiff= null;
-	 	fChangeDiffs= null;
-		fAllDiffs= null;
-		fEndOfDocReached= false;
-		
-		CompareConfiguration cc= getCompareConfiguration();
-		IMergeViewerContentProvider cp= getMergeContentProvider();
-		
-		boolean rightEditable= cc.isRightEditable() && cp.isRightEditable(getInput());
-		boolean leftEditable= cc.isLeftEditable() && cp.isLeftEditable(getInput());
-		
-		fRight.setEditable(rightEditable);
-		fLeft.setEditable(leftEditable);
-																					
-		// set new documents
-		setDocument(fLeft, 'L', left);
-		fLeftLineCount= fLeft.getLineCount();
-		setDocument(fRight, 'R', right);
-		fRightLineCount= fRight.getLineCount();
-		
-		setDocument(fAncestor, 'A', ancestor);
-					
-		doDiff();
-				
-		invalidateLines();
-		updateVScrollBar();
-		refreshBirdsEyeView();
-		
-		if (!emptyInput && !fComposite.isDisposed()) {
-			if (true) {	// see #13844
-				selectFirstDiff();
-			} else {
-				// delay so that StyledText widget gets a chance to resize itself
-				// (otherwise selectFirstDiff would not know its visible area)
-				fComposite.getDisplay().asyncExec(
-					new Runnable() {
-						public void run() {
-							selectFirstDiff();
-						}
-					}
-				);
-			}
-		}
-	}
-	
-	private void updateDiffBackground(Diff diff) {
-		
-		if (! fHiglightRanges)
-			return;
-		
-		if (diff == null || diff.fIsToken)
-			return;
-			
-		if (fShowCurrentOnly && !isCurrentDiff(diff))
-			return;
-						
-		Color c= getColor(null, getFillColor(diff));
-		if (c == null)
-			return;
-			
-		if (isThreeWay())
-			fAncestor.setLineBackground(diff.fAncestorPos, c);
-		fLeft.setLineBackground(diff.fLeftPos, c);
-		fRight.setLineBackground(diff.fRightPos, c);
-	}
-	
-	private void updateAllDiffBackgrounds(Display display) {
-		if (fChangeDiffs != null) {
-			boolean threeWay= isThreeWay();
-			Iterator iter= fChangeDiffs.iterator();
-			while (iter.hasNext()) {
-				Diff diff= (Diff) iter.next();
-				Color c= getColor(display, getFillColor(diff));
-				if (threeWay)
-					fAncestor.setLineBackground(diff.fAncestorPos, c);
-				fLeft.setLineBackground(diff.fLeftPos, c);
-				fRight.setLineBackground(diff.fRightPos, c);
-			}
-		}
-	}
-	
-	boolean isCurrentDiff(Diff diff) {
-		if (diff == null)
-			return false;
-		if (diff == fCurrentDiff)
-			return true;
-		if (fCurrentDiff != null && fCurrentDiff.fParent == diff)
-			return true;
-		return false;
-	}
-	
-	/**
-	 * Called whenver one of the documents changes.
-	 * Sets the dirty state of this viewer and updates the lines.
-	 * Implements IDocumentListener.
-	 */
-	private void documentChanged(DocumentEvent e) {
-		
-		IDocument doc= e.getDocument();
-		
-		if (doc == fLeft.getDocument()) {
-			setLeftDirty(true);
-		} else if (doc == fRight.getDocument()) {
-			setRightDirty(true);
-		}
-
-		updateLines(doc);
-	}
-	
-//	private static ITypedElement getLeg(ICompareInput input, char type) {
-//		switch (type) {
-//		case 'A':
-//			return input.getAncestor();
-//		case 'L':
-//			return input.getLeft();
-//		case 'R':
-//			return input.getRight();
-//		}
-//		return null;			
-//	}
-	
-	/**
-	 * This method is called if a range of text on one side is copied into an empty subdocument
-	 * on the other side. The method returns the position where the subdocument is placed into the base document.
-	 * This default implementation determines the position by using the text range differencer.
-	 * However this position is not always optimal for specific types of text.
-	 * So subclasses (which are awrae of the type of text they are dealing with) 
-	 * may override this method to find a better position where to insert a newly added
-	 * piece of text.
-	 * @param type the side for which the insertion position should be determined: 'A' for ancestor, 'L' for left hand side, 'R' for right hand side.
-	 * @param input the current input object of this viewer
-	 * @since 2.0
-	 */
-	protected int findInsertionPosition(char type, ICompareInput input) {
-			
-		ITypedElement other= null;
-		char otherType= 0;
-		
-		switch (type) {
-		case 'A':
-			other= input.getLeft();
-			otherType= 'L';
-			if (other == null) {
-				other= input.getRight();
-				otherType= 'R';
-			}
-			break;
-		case 'L':
-			other= input.getRight();
-			otherType= 'R';
-			if (other == null) {
-				other= input.getAncestor();
-				otherType= 'A';
-			}
-			break;
-		case 'R':
-			other= input.getLeft();
-			otherType= 'L';
-			if (other == null) {
-				other= input.getAncestor();
-				otherType= 'A';
-			}
-			break;
-		}
-		
-		if (other instanceof IDocumentRange) {
-			IDocumentRange dr= (IDocumentRange) other;
-			Position p= dr.getRange();	
-			Diff diff= findDiff(otherType, p.offset);
-			if (diff != null) {
-				switch (type) {
-				case 'A':
-					if (diff.fAncestorPos != null)
-						return diff.fAncestorPos.offset;
-					break;
-				case 'L':
-					if (diff.fLeftPos != null)
-						return diff.fLeftPos.offset;
-					break;
-				case 'R':
-					if (diff.fRightPos != null)
-						return diff.fRightPos.offset;
-					break;
-				}
-			}
-		}
-		return 0;
-	}
-	
-	/**
-	 * Returns true if a new Document could be installed.
-	 */
-	private boolean setDocument(MergeSourceViewer tp, char type, Object o) {
-		
-		if (tp == null)
-			return false;
-				
-		IDocument newDoc= null;
-		Position range= null;
-		
-		if (o instanceof IDocumentRange) {
-			newDoc= ((IDocumentRange)o).getDocument();
-			range= ((IDocumentRange)o).getRange();
-
-		} else if (o instanceof IDocument) {
-			newDoc= (IDocument) o;
-			
-		} else if (o instanceof IStreamContentAccessor) {
-			
-			newDoc= DocumentManager.get(o);
-			if (newDoc == null) {
-				IStreamContentAccessor sca= (IStreamContentAccessor) o;
-				String s= null;
-			
-				try {
-					s= Utilities.readString(sca.getContents());
-				} catch (CoreException ex) {
-				}
-	
-				newDoc= new Document(s != null ? s : ""); //$NON-NLS-1$
-				DocumentManager.put(o, newDoc);
-				IDocumentPartitioner partitioner= getDocumentPartitioner();
-				if (partitioner != null) {
-					newDoc.setDocumentPartitioner(partitioner);
-					partitioner.connect(newDoc);
-				}
-			}
-		} else if (o == null) {	// deletion on one side
-			
-			ITypedElement parent= getParent(type);	// we try to find an insertion position within the deletion's parent
-			
-			if (parent instanceof IDocumentRange) {
-				newDoc= ((IDocumentRange)parent).getDocument();
-				newDoc.addPositionCategory(IDocumentRange.RANGE_CATEGORY);
-				Object input= getInput();
-				range= getNewRange(type, input);
-				if (range == null) {
-					int pos= 0;
-					if (input instanceof ICompareInput)
-						pos= findInsertionPosition(type, (ICompareInput)input);
-					range= new Position(pos, 0);
-					try {
-						newDoc.addPosition(IDocumentRange.RANGE_CATEGORY, range);
-					} catch (BadPositionCategoryException ex) {
-						if (DEBUG) System.out.println("BadPositionCategoryException: " + ex);	//$NON-NLS-1$
-					} catch (BadLocationException ex) {
-						if (DEBUG) System.out.println("BadLocationException: " + ex);	//$NON-NLS-1$
-					}
-					addNewRange(type, input, range);
-				}
-			} else if (parent instanceof IDocument) {
-				newDoc= ((IDocumentRange)o).getDocument();
-			}
-		}
-
-		boolean enabled= true;
-		if (newDoc == null) {
-			//System.out.println("setDocument: create new Document");
-			newDoc= new Document(""); //$NON-NLS-1$
-			enabled= false;
-		}
-		
-		IDocument oldDoc= tp.getDocument();
-		
-		if (newDoc != oldDoc) {
-			
-			// got a new document
-			
-			unsetDocument(tp);
-			
-			if (newDoc != null) {
-				newDoc.addPositionCategory(IDocumentRange.RANGE_CATEGORY);
-				if (fPositionUpdater == null)
-					fPositionUpdater= new ChildPositionUpdater(IDocumentRange.RANGE_CATEGORY);
-				else
-					newDoc.removePositionUpdater(fPositionUpdater);
-				newDoc.addPositionUpdater(fPositionUpdater);
-			}
-
-			// install new document
-			if (newDoc != null) {
-						
-				tp.setRegion(range);
-				if (fSubDoc) {
-					if (range != null) {
-						IRegion r= normalizeDocumentRegion(newDoc, toRegion(range));
-						tp.setDocument(newDoc, r.getOffset(), r.getLength());
-					} else
-						tp.setDocument(newDoc);
-				} else
-					tp.setDocument(newDoc);
-								
-				newDoc.addDocumentListener(fDocumentListener);
-			}
-			
-		} else {	// same document but different range
-			
-			tp.setRegion(range);
-			if (fSubDoc) {
-				if (range != null) {
-					IRegion r= normalizeDocumentRegion(newDoc, toRegion(range));
-					tp.setVisibleRegion(r.getOffset(), r.getLength());
-				} else
-					tp.resetVisibleRegion();
-			} else
-				tp.resetVisibleRegion();
-		}
-		
-		tp.setEnabled(enabled);
-
-		return enabled;
-	}
-	
-	private Position getNewRange(char type, Object input) {
-		switch (type) {
-		case 'A':
-			return (Position) fNewAncestorRanges.get(input);
-		case 'L':
-			return (Position) fNewLeftRanges.get(input);
-		case 'R':
-			return (Position) fNewRightRanges.get(input);
-		}
-		return null;
-	}
-	
-	private void addNewRange(char type, Object input, Position range) {
-		switch (type) {
-		case 'A':
-			fNewAncestorRanges.put(input, range);
-			break;
-		case 'L':
-			fNewLeftRanges.put(input, range);
-			break;
-		case 'R':
-			fNewRightRanges.put(input, range);
-			break;
-		}
-	}
-
-	private void unsetDocument(MergeSourceViewer tp) {
-		IDocument oldDoc= tp.getDocument();
-		if (oldDoc != null) {
-			// deinstall old positions
-			if (fPositionUpdater != null)
-				oldDoc.removePositionUpdater(fPositionUpdater);
-			try {
-				oldDoc.removePositionCategory(IDocumentRange.RANGE_CATEGORY);
-			} catch (BadPositionCategoryException ex) {
-			}
-			
-			oldDoc.removeDocumentListener(fDocumentListener);
-		}
-	}
-	
-	/**
-	 * Returns the contents of the underlying document as an array of bytes.
-	 * 
-	 * @param left if <code>true</code> the contents of the left side is returned; otherwise the right side
-	 * @return the contents of the left or right document or null
-	 */
-	protected byte[] getContents(boolean left) {
-		MergeSourceViewer v= left ? fLeft : fRight;
-		if (v != null) {
-			IDocument d= v.getDocument();
-			if (d != null) {
-				String contents= d.get();
-				if (contents != null) {
-					byte[] bytes;
-					try {
-						bytes= contents.getBytes(ResourcesPlugin.getEncoding());
-					} catch(UnsupportedEncodingException ex) {
-						// use default encoding
-						bytes= contents.getBytes();
-					}
-					return bytes;
-				}
-			}
-		}	
-		return null;	
-	}
-				
-	private IRegion normalizeDocumentRegion(IDocument doc, IRegion region) {
-		
-		if (region == null || doc == null)
-			return region;
-			
-		int maxLength= doc.getLength();
-		
-		int start= region.getOffset();
-		if (start < 0)
-			start= 0;
-		else if (start > maxLength)
-			start= maxLength;
-			
-		int length= region.getLength();
-		if (length < 0)
-			length= 0;
-		else if (start + length > maxLength)
-			length= maxLength - start;
-			
-		return new Region(start, length);
-	}
-		
-	protected final void handleResizeAncestor(int x, int y, int width, int height) {
-		if (width > 0) {
-			Rectangle trim= fLeft.getTextWidget().computeTrim(0, 0, 0, 0);
-			int scrollbarHeight= trim.height;
-			if (Utilities.okToUse(fAncestorCanvas))
-				fAncestorCanvas.setVisible(true);
-			if (fAncestor.isControlOkToUse())
-				fAncestor.getTextWidget().setVisible(true);
-			
-			if (fAncestorCanvas != null) {
-				fAncestorCanvas.setBounds(x, y, fMarginWidth, height-scrollbarHeight);
-				x+= fMarginWidth;
-				width-= fMarginWidth;
-			}
-			fAncestor.getTextWidget().setBounds(x, y, width, height);
-		} else {
-			if (Utilities.okToUse(fAncestorCanvas))
-				fAncestorCanvas.setVisible(false);
-			if (fAncestor.isControlOkToUse()) {
-				StyledText t= fAncestor.getTextWidget();
-				t.setVisible(false);
-				t.setBounds(0, 0, 0, 0);
-				if (fFocusPart == fAncestor) {
-					fFocusPart= fLeft;
-					fFocusPart.getTextWidget().setFocus();
-				}
-			}
-		}
-	}
-
-	/**
-	 * Lays out everything.
-	 */
-  	protected final void handleResizeLeftRight(int x, int y, int width1, int centerWidth, int width2,  int height) {
-  				
-  		if (fBirdsEyeCanvas != null)
-  			width2-= BIRDS_EYE_VIEW_WIDTH;
-  			
-		Rectangle trim= fLeft.getTextWidget().computeTrim(0, 0, 0, 0);
-		int scrollbarHeight= trim.height;
-		if (fIsCarbon)
-			scrollbarHeight-= 3;	// get rid of the focus ring
-
-		Composite composite= (Composite) getControl();
-
-		int leftTextWidth= width1;
-		if (fLeftCanvas != null) {
-			fLeftCanvas.setBounds(x, y, fMarginWidth, height-scrollbarHeight);
-			x+= fMarginWidth;
-			leftTextWidth-= fMarginWidth;
-		}
-		
-		fLeft.getTextWidget().setBounds(x, y, leftTextWidth, height);
-		x+= leftTextWidth;
-		
-		if (fCenter == null || fCenter.isDisposed())
-			fCenter= createCenter(composite);
-		fCenter.setBounds(x, y, centerWidth, height-scrollbarHeight);
-		x+= centerWidth;
-		
-		if (!fSynchronizedScrolling) {	// canvas is to the left of text
-			if (fRightCanvas != null) {
-				fRightCanvas.setBounds(x, y, fMarginWidth, height-scrollbarHeight);
-				fRightCanvas.redraw();
-				x+= fMarginWidth;
-			}
-			// we draw the canvas to the left of the text widget
-		}
-		
-		int scrollbarWidth= 0;
-		if (fSynchronizedScrolling && fScrollCanvas != null) {
-			//scrollbarWidth= fScrollCanvas.computeTrim(0, 0, 0, 0).width;
-			scrollbarWidth= fLeft.getTextWidget().computeTrim(0, 0, 0, 0).width;
-			if (fIsCarbon)
-				scrollbarWidth-= 6;	// get rid of the focus ring
-		}
-		int rightTextWidth= width2-scrollbarWidth;
-		if (fRightCanvas != null)
-			rightTextWidth-= fMarginWidth;
-		fRight.getTextWidget().setBounds(x, y, rightTextWidth, height);
-		x+= rightTextWidth;
-			
-		if (fSynchronizedScrolling) {
-			if (fRightCanvas != null) {	// canvas is to the right of the text
-				fRightCanvas.setBounds(x, y, fMarginWidth, height-scrollbarHeight);
-				x+= fMarginWidth;
-			}
-			if (fScrollCanvas != null)
-				fScrollCanvas.setBounds(x, y, scrollbarWidth, height-scrollbarHeight);
-		}
-		
-  		if (fBirdsEyeCanvas != null) {
-  			int verticalScrollbarButtonHeight= scrollbarWidth;
-			int horizontalScrollbarButtonHeight= scrollbarHeight;
-			if (fIsCarbon) {
-				verticalScrollbarButtonHeight+= 2;
-				horizontalScrollbarButtonHeight= 18;
-			}
-  			if (fSummaryHeader != null)
-				fSummaryHeader.setBounds(x+scrollbarWidth, y, BIRDS_EYE_VIEW_WIDTH, verticalScrollbarButtonHeight);
-  			y+= verticalScrollbarButtonHeight;
-  			fBirdsEyeCanvas.setBounds(x+scrollbarWidth, y, BIRDS_EYE_VIEW_WIDTH, height-(2*verticalScrollbarButtonHeight+horizontalScrollbarButtonHeight));
-   		}
-		
-		// doesn't work since TextEditors don't have their correct size yet.
-		updateVScrollBar(); 
-		refreshBirdsEyeView();
-	}
-							
-	/**
-	 * Track selection changes to update the current Diff.
-	 */
-	private void handleSelectionChanged(MergeSourceViewer tw) {
-		Point p= tw.getSelectedRange();
-		Diff d= findDiff(tw, p.x, p.x+p.y);
-		updateStatus(d);
-		setCurrentDiff(d, false);	// don't select or reveal
-	}
-
-	private static IRegion toRegion(Position position) {
-		if (position != null)
-			return new Region(position.getOffset(), position.getLength());
-		return null;
-	}
-	
-	//---- the differencing
-
-	private static int maxWork(IRangeComparator a, IRangeComparator l, IRangeComparator r) {
-		int ln= l.getRangeCount();
-		int rn= r.getRangeCount();
-		if (a != null) {
-			int an= a.getRangeCount();
-			return (2 * Math.max(an, ln)) + (2 * Math.max(an, rn));
-		}
-		return 2 * Math.max(ln, rn);
-	}
-	
-	/**
-	 * Perform a two level 2- or 3-way diff.
-	 * The first level is based on line comparison, the second level on token comparison.
-	 */
-	private void doDiff() {
-						
-		fAllDiffs= new ArrayList();
-		fChangeDiffs= new ArrayList();
-		fCurrentDiff= null;
-		
-		IDocument aDoc= null;
-		IDocument lDoc= fLeft.getDocument();
-		IDocument rDoc= fRight.getDocument();
-		if (lDoc == null || rDoc == null)
-			return;
-			
-		Position aRegion= null;
-		Position lRegion= fLeft.getRegion();
-		Position rRegion= fRight.getRegion();
-				
-		boolean threeWay= isThreeWay();
-		
-		if (threeWay && !fIgnoreAncestor) {
-			aDoc= fAncestor.getDocument();
-			aRegion= fAncestor.getRegion();
-		}
-		
-		fAncestor.resetLineBackground();
-		fLeft.resetLineBackground();
-		fRight.resetLineBackground();
-		
-		boolean ignoreWhiteSpace= Utilities.getBoolean(getCompareConfiguration(), CompareConfiguration.IGNORE_WHITESPACE, false);		
-		
-		DocLineComparator sright= new DocLineComparator(rDoc, toRegion(rRegion), ignoreWhiteSpace);
-		DocLineComparator sleft= new DocLineComparator(lDoc, toRegion(lRegion), ignoreWhiteSpace);
-		DocLineComparator sancestor= null;
-		if (aDoc != null)
-			sancestor= new DocLineComparator(aDoc, toRegion(aRegion), ignoreWhiteSpace);
-			
-		if (!fSubDoc && rRegion != null && lRegion != null) {
-			// we have to add a diff for the ignored lines
-			
-			int astart= 0;
-			int as= 0;
-			if (aRegion != null) {
-				astart= aRegion.getOffset();
-				as= Math.max(0, astart-1);
-			}
-			int ys= Math.max(0, lRegion.getOffset()-1);
-			int ms= Math.max(0, rRegion.getOffset()-1);
-			
-			if (as > 0 || ys > 0 || ms > 0) {
-				Diff diff= new Diff(null, RangeDifference.NOCHANGE,
-					aDoc, aRegion, 0, astart,
-					lDoc, lRegion, 0, lRegion.getOffset(),
-					rDoc, rRegion, 0, rRegion.getOffset());
-				fAllDiffs.add(diff);
-			}
-		}
-		
-		final ResourceBundle bundle= getResourceBundle();
-			
-		final Object[] result= new Object[1];
-		final DocLineComparator sa= sancestor, sl= sleft, sr= sright;
-		IRunnableWithProgress runnable= new IRunnableWithProgress() {
-			public void run(IProgressMonitor monitor) throws InterruptedException, InvocationTargetException {
-				String progressTitle= Utilities.getString(bundle, "compareProgressTask.title"); //$NON-NLS-1$
-				monitor.beginTask(progressTitle, maxWork(sa, sl, sr));
-				try {
-					result[0]= RangeDifferencer.findRanges(monitor, sa, sl, sr);
-				} catch (OutOfMemoryError ex) {
-					System.gc();
-					throw new InvocationTargetException(ex);
-				}
-				if (monitor.isCanceled())	{ // cancelled
-					throw new InterruptedException();
-				}
-				monitor.done();
-			}
-		};
-		
-		RangeDifference[] e= null;
-		try {
-			TimeoutContext.run(true, TIMEOUT, getControl().getShell(), runnable);
-			e= (RangeDifference[]) result[0];
-		} catch (InvocationTargetException ex) {
-			String title= Utilities.getString(bundle, "tooComplexError.title"); //$NON-NLS-1$
-			String format= Utilities.getString(bundle, "tooComplexError.format"); //$NON-NLS-1$
-			String msg= MessageFormat.format(format, new Object[] { Integer.toString(TIMEOUT/1000) } );
-			MessageDialog.openError(fComposite.getShell(), title, msg);
-			e= null;
-		} catch (InterruptedException ex) {
-			// 
-		}
-					
-		if (e == null) {
-			// we create a NOCHANGE range for the whole document
-			Diff diff= new Diff(null, RangeDifference.NOCHANGE,
-				aDoc, aRegion, 0, aDoc != null ? aDoc.getLength() : 0,
-				lDoc, lRegion, 0, lDoc.getLength(),
-				rDoc, rRegion, 0, rDoc.getLength());	
-				
-			fAllDiffs.add(diff);
-		} else {
-			for (int i= 0; i < e.length; i++) {
-				String a= null, s= null, d= null;
-				RangeDifference es= e[i];
-				
-				int kind= es.kind();
-				
-				int ancestorStart= 0;
-				int ancestorEnd= 0;
-				if (sancestor != null) {
-					ancestorStart= sancestor.getTokenStart(es.ancestorStart());
-					ancestorEnd= getTokenEnd2(sancestor, es.ancestorStart(), es.ancestorLength());
-				}
-				
-				int leftStart= sleft.getTokenStart(es.leftStart());
-				int leftEnd= getTokenEnd2(sleft, es.leftStart(), es.leftLength());
-				
-				int rightStart= sright.getTokenStart(es.rightStart());
-				int rightEnd= getTokenEnd2(sright, es.rightStart(), es.rightLength());
-				
-				Diff diff= new Diff(null, kind,
-					aDoc, aRegion, ancestorStart, ancestorEnd,
-					lDoc, lRegion, leftStart, leftEnd,
-					rDoc, rRegion, rightStart, rightEnd);	
-				
-				fAllDiffs.add(diff);	// remember all range diffs for scrolling
-		
-				if (ignoreWhiteSpace) {
-					if (sancestor != null)
-						a= extract2(aDoc, sancestor, es.ancestorStart(), es.ancestorLength());
-					s= extract2(lDoc, sleft, es.leftStart(), es.leftLength());
-					d= extract2(rDoc, sright, es.rightStart(), es.rightLength());
-				
-					if ((a == null || a.trim().length() == 0) && s.trim().length() == 0 && d.trim().length() == 0) {
-						diff.fIsWhitespace= true;
-						continue;
-					}
-				}
-		
-				if (useChange(kind)) {
-					fChangeDiffs.add(diff);	// here we remember only the real diffs
-					updateDiffBackground(diff);
-		
-					if (s == null)
-						s= extract2(lDoc, sleft, es.leftStart(), es.leftLength());
-					if (d == null)
-						d= extract2(rDoc, sright, es.rightStart(), es.rightLength());
-					
-					if (s.length() > 0 && d.length() > 0) {
-						if (a == null && sancestor != null)
-							a= extract2(aDoc, sancestor, es.ancestorStart(), es.ancestorLength());
-						if (USE_MERGING_TOKEN_DIFF)
-							mergingTokenDiff(diff, aDoc, a, rDoc, d, lDoc, s);
-						else
-							simpleTokenDiff(diff, aDoc, a, rDoc, d, lDoc, s);
-					}
-				}
-			}
-		}
-		
-		if (!fSubDoc && rRegion != null && lRegion != null) {
-			// we have to add a diff for the ignored lines
-			
-			int aEnd= 0;
-			int aLen= 0;
-			if (aRegion != null && aDoc != null) {
-				aEnd= aRegion.getOffset()+aRegion.getLength();
-				aLen= aDoc.getLength();
-			}
-			Diff diff= new Diff(null, RangeDifference.NOCHANGE,
-				aDoc, aRegion, aEnd, aLen,
-				lDoc, lRegion, lRegion.getOffset()+lRegion.getLength(), lDoc.getLength(),
-				rDoc, rRegion, rRegion.getOffset()+rRegion.getLength(), rDoc.getLength());
-			fAllDiffs.add(diff);
-		}		
-	}
-	
-	private Diff findDiff(char type, int pos) {
-								
-		IDocument aDoc= null;
-		IDocument lDoc= fLeft.getDocument();
-		IDocument rDoc= fRight.getDocument();
-		if (lDoc == null || rDoc == null)
-			return null;
-			
-		Position aRegion= null;
-		Position lRegion= null;
-		Position rRegion= null;
-				
-		boolean threeWay= isThreeWay();
-		
-		if (threeWay && !fIgnoreAncestor)
-			aDoc= fAncestor.getDocument();
-
-		boolean ignoreWhiteSpace= Utilities.getBoolean(getCompareConfiguration(), CompareConfiguration.IGNORE_WHITESPACE, false);		
-		
-		DocLineComparator sright= new DocLineComparator(rDoc, toRegion(rRegion), ignoreWhiteSpace);
-		DocLineComparator sleft= new DocLineComparator(lDoc, toRegion(lRegion), ignoreWhiteSpace);
-		DocLineComparator sancestor= null;
-		if (aDoc != null)
-			sancestor= new DocLineComparator(aDoc, toRegion(aRegion), ignoreWhiteSpace);
-			
-		final ResourceBundle bundle= getResourceBundle();
-			
-		final Object[] result= new Object[1];
-		final DocLineComparator sa= sancestor, sl= sleft, sr= sright;
-		IRunnableWithProgress runnable= new IRunnableWithProgress() {
-			public void run(IProgressMonitor monitor) throws InterruptedException, InvocationTargetException {
-				String progressTitle= Utilities.getString(bundle, "compareProgressTask.title"); //$NON-NLS-1$
-				monitor.beginTask(progressTitle, maxWork(sa, sl, sr));
-				try {
-					result[0]= RangeDifferencer.findRanges(monitor, sa, sl, sr);
-				} catch (OutOfMemoryError ex) {
-					System.gc();
-					throw new InvocationTargetException(ex);
-				}
-				if (monitor.isCanceled())	{ // cancelled
-					throw new InterruptedException();
-				}
-				monitor.done();
-			}
-		};
-		
-		RangeDifference[] e= null;
-		try {
-			TimeoutContext.run(true, TIMEOUT, getControl().getShell(), runnable);
-			e= (RangeDifference[]) result[0];
-		} catch (InvocationTargetException ex) {
-			String title= Utilities.getString(bundle, "tooComplexError.title"); //$NON-NLS-1$
-			String format= Utilities.getString(bundle, "tooComplexError.format"); //$NON-NLS-1$
-			String msg= MessageFormat.format(format, new Object[] { Integer.toString(TIMEOUT/1000) } );
-			MessageDialog.openError(fComposite.getShell(), title, msg);
-			e= null;
-		} catch (InterruptedException ex) {
-			// 
-		}
-					
-		if (e != null) {
-			for (int i= 0; i < e.length; i++) {
-				RangeDifference es= e[i];
-				
-				int kind= es.kind();
-				
-				int ancestorStart= 0;
-				int ancestorEnd= 0;
-				if (sancestor != null) {
-					ancestorStart= sancestor.getTokenStart(es.ancestorStart());
-					ancestorEnd= getTokenEnd2(sancestor, es.ancestorStart(), es.ancestorLength());
-				}
-				
-				int leftStart= sleft.getTokenStart(es.leftStart());
-				int leftEnd= getTokenEnd2(sleft, es.leftStart(), es.leftLength());
-				
-				int rightStart= sright.getTokenStart(es.rightStart());
-				int rightEnd= getTokenEnd2(sright, es.rightStart(), es.rightLength());
-				
-				Diff diff= new Diff(null, kind,
-					aDoc, aRegion, ancestorStart, ancestorEnd,
-					lDoc, lRegion, leftStart, leftEnd,
-					rDoc, rRegion, rightStart, rightEnd);	
-
-				if (diff.isInRange(type, pos))
-					return diff;
-			}
-		}
-		
-		return null;
-	}
-	
-	/**
-	 * Returns true if kind of change should be shown.
-	 */
-	private boolean useChange(int kind) {
-		if (kind == RangeDifference.NOCHANGE)
-			return false;
-		if (kind == RangeDifference.ANCESTOR)
-			return fShowPseudoConflicts;
-		return true;
-	}
-	
-	private int getTokenEnd(ITokenComparator tc, int start, int count) {
-		if (count <= 0)
-			return tc.getTokenStart(start);
-		int index= start + count - 1;
-		return tc.getTokenStart(index) + tc.getTokenLength(index);
-	}
-	
-	private static int getTokenEnd2(ITokenComparator tc, int start, int length) {
-		return tc.getTokenStart(start + length);
-	}
-
-	/**
-	 * Returns the content of lines in the specified range as a String.
-	 * This includes the line separators.
-	 *
-	 * @param doc the document from which to extract the characters
-	 * @param start index of first line
-	 * @param length number of lines
-	 * @return the contents of the specified line range as a String
-	 */
-	private String extract2(IDocument doc, ITokenComparator tc, int start, int length) {
-		int count= tc.getRangeCount();
-		if (length > 0 && count > 0) {
-			
-//			
-//			int startPos= tc.getTokenStart(start);
-//			int endPos= startPos;
-//			
-//			if (length > 1)
-//				endPos= tc.getTokenStart(start + (length-1));
-//			endPos+= tc.getTokenLength(start + (length-1));
-//				
-
-			int startPos= tc.getTokenStart(start);
-			int endPos;
-			
-			if (length == 1) {
-				endPos= startPos + tc.getTokenLength(start);
-			} else {
-				endPos= tc.getTokenStart(start + length);
-			}
-
-			try {
-				return doc.get(startPos, endPos - startPos);
-			} catch (BadLocationException e) {
-			}
-
-		}
-		return ""; //$NON-NLS-1$
-	}
-
-	/**
-	 * Performs a token based 3-way diff on the character range specified by the given baseDiff.
-	 */
-	private void simpleTokenDiff(final Diff baseDiff,
-				IDocument ancestorDoc, String a,
-				IDocument rightDoc, String d,
-				IDocument leftDoc, String s) {
-
-		int ancestorStart= 0;
-		ITokenComparator sa= null;
-		if (ancestorDoc != null) {
-			ancestorStart= baseDiff.fAncestorPos.getOffset();
-			sa= createTokenComparator(a);
-		}
-		
-		int rightStart= baseDiff.fRightPos.getOffset();	
-		ITokenComparator sm= createTokenComparator(d);
-		
-		int leftStart= baseDiff.fLeftPos.getOffset();
-		ITokenComparator sy= createTokenComparator(s);
-		
-		RangeDifference[] e= RangeDifferencer.findRanges(sa, sy, sm);
-		for (int i= 0; i < e.length; i++) {
-			RangeDifference es= e[i];
-			int kind= es.kind();
-			if (kind != RangeDifference.NOCHANGE) {
-				
-				int ancestorStart2= ancestorStart;
-				int ancestorEnd2= ancestorStart;
-				if (ancestorDoc != null) {
-					ancestorStart2 += sa.getTokenStart(es.ancestorStart());
-					ancestorEnd2 += getTokenEnd(sa, es.ancestorStart(), es.ancestorLength());
-				}
-				
-				int leftStart2= leftStart + sy.getTokenStart(es.leftStart());
-				int leftEnd2= leftStart + getTokenEnd(sy, es.leftStart(), es.leftLength());
-				
-				int rightStart2= rightStart + sm.getTokenStart(es.rightStart());
-				int rightEnd2= rightStart + getTokenEnd(sm, es.rightStart(), es.rightLength());
-				
-				Diff diff= new Diff(baseDiff, kind,
-						ancestorDoc, null, ancestorStart2, ancestorEnd2,
-						leftDoc, null, leftStart2, leftEnd2,
-						rightDoc, null, rightStart2, rightEnd2);
-				
-				// ensure that token diff is smaller than basediff
-				int leftS= baseDiff.fLeftPos.offset;
-				int leftE= baseDiff.fLeftPos.offset+baseDiff.fLeftPos.length;
-				int rightS= baseDiff.fRightPos.offset;
-				int rightE= baseDiff.fRightPos.offset+baseDiff.fRightPos.length;
-				if (leftS != leftStart2 || leftE != leftEnd2 ||
-							rightS != rightStart2 || rightE != rightEnd2) {
-					diff.fIsToken= true;
-					// add to base Diff
-					baseDiff.add(diff);
-				}
-			}
-		}
-	}
-	
-	/**
-	 * Performs a "smart" token based 3-way diff on the character range specified by the given baseDiff.
-	 * It is "smart" because it tries to minimize the number of token diffs by merging them.
-	 */
-	private void mergingTokenDiff(Diff baseDiff, 
-				IDocument ancestorDoc, String a,
-				IDocument rightDoc, String d,
-				IDocument leftDoc, String s) {
-		ITokenComparator sa= null;
-		int ancestorStart= 0;
-		if (ancestorDoc != null) {
-			sa= createTokenComparator(a);
-			ancestorStart= baseDiff.fAncestorPos.getOffset();
-		}
-		
-		int rightStart= baseDiff.fRightPos.getOffset();	
-		ITokenComparator sm= createTokenComparator(d);
-		
-		int leftStart= baseDiff.fLeftPos.getOffset();
-		ITokenComparator sy= createTokenComparator(s);
-		
-		RangeDifference[] r= RangeDifferencer.findRanges(sa, sy, sm);
-		for (int i= 0; i < r.length; i++) {
-			RangeDifference  es= r[i];
-			// determine range of diffs in one line
-			int start= i;
-			int leftLine= -1;
-			int rightLine= -1;
-			try {
-				leftLine= leftDoc.getLineOfOffset(leftStart+sy.getTokenStart(es.leftStart()));
-				rightLine= rightDoc.getLineOfOffset(rightStart+sm.getTokenStart(es.rightStart()));
-			} catch (BadLocationException e) {
-			}
-			i++;
-			for (; i < r.length; i++) {
-				es= r[i];
-				try {
-					if (leftLine != leftDoc.getLineOfOffset(leftStart+sy.getTokenStart(es.leftStart())))
-						break;
-					if (rightLine != rightDoc.getLineOfOffset(rightStart+sm.getTokenStart(es.rightStart())))
-						break;
-				} catch (BadLocationException e) {
-				}
-			}
-			int end= i;
-			
-			// find first diff from left
-			RangeDifference first= null;
-			for (int ii= start; ii < end; ii++) {
-				es= r[ii];
-				if (useChange(es.kind())) {
-					first= es;
-					break;
-				}
-			}
-			
-			// find first diff from mine
-			RangeDifference last= null;
-			for (int ii= end-1; ii >= start; ii--) {
-				es= r[ii];
-				if (useChange(es.kind())) {
-					last= es;
-					break;
-				}
-			}
-			
-			if (first != null && last != null) {
-				
-				int ancestorStart2= 0;
-				int ancestorEnd2= 0;
-				if (ancestorDoc != null) {
-					ancestorStart2= ancestorStart+sa.getTokenStart(first.ancestorStart());
-					ancestorEnd2= ancestorStart+getTokenEnd(sa, last.ancestorStart(), last.ancestorLength());
-				}
-				
-				int leftStart2= leftStart+sy.getTokenStart(first.leftStart());
-				int leftEnd2= leftStart+getTokenEnd(sy, last.leftStart(), last.leftLength());
-				
-				int rightStart2= rightStart+sm.getTokenStart(first.rightStart());
-				int rightEnd2= rightStart+getTokenEnd(sm, last.rightStart(), last.rightLength());
-				Diff diff= new Diff(baseDiff, first.kind(),
-							ancestorDoc, null, ancestorStart2, ancestorEnd2+1,
-							leftDoc, null, leftStart2, leftEnd2+1,
-							rightDoc, null, rightStart2, rightEnd2+1);	
-				diff.fIsToken= true;
-				baseDiff.add(diff);
-			}
-		}
-	}
-	
-	//---- update UI stuff
-	
-	private void updateControls() {
-		
-		boolean leftToRight= false;
-		boolean rightToLeft= false;
-		
-		updateStatus(fCurrentDiff);
-		updateResolveStatus();
-
-		if (fCurrentDiff != null) {
-			IMergeViewerContentProvider cp= getMergeContentProvider();
-			if (cp != null) {
-				rightToLeft= cp.isLeftEditable(getInput());
-				leftToRight= cp.isRightEditable(getInput());
-			}			
-		}
-		
-		if (fDirectionLabel != null) {
-			if (fHiglightRanges && fCurrentDiff != null && isThreeWay() && !fIgnoreAncestor) {
-				fDirectionLabel.setImage(fCurrentDiff.getImage());
-			} else {
-				fDirectionLabel.setImage(null);
-			}
-		}
-		
-		if (fCopyDiffLeftToRightItem != null)
-			((Action)fCopyDiffLeftToRightItem.getAction()).setEnabled(leftToRight);
-		if (fCopyDiffRightToLeftItem != null)
-			((Action)fCopyDiffRightToLeftItem.getAction()).setEnabled(rightToLeft);
-			
-		boolean enableNavigation= false;
-		if (fCurrentDiff == null && fChangeDiffs != null && fChangeDiffs.size() > 0)
-			enableNavigation= true;
-		else if (fChangeDiffs != null && fChangeDiffs.size() > 1)
-			enableNavigation= true;
-		else if (fCurrentDiff != null && fCurrentDiff.fDiffs != null)
-			enableNavigation= true;
-		else if (fCurrentDiff != null && fCurrentDiff.fIsToken)
-			enableNavigation= true;
-		
-		if (fNextItem != null) {
-			IAction a= fNextItem.getAction();
-			a.setEnabled(enableNavigation);
-		}
-		if (fPreviousItem != null) {
-			IAction a= fPreviousItem.getAction();
-			a.setEnabled(enableNavigation);
-		}	
-	}
-	
-	private void updateResolveStatus() {
-			
-		RGB rgb= null;
-		
-		if (showResolveUI()) {
-			// we only show red or green if there is at least one incoming or conflicting change
-			int incomingOrConflicting= 0;
-			int unresolvedIncoming= 0;
-			int unresolvedConflicting= 0;
-
-			if (fChangeDiffs != null) {
-				Iterator e= fChangeDiffs.iterator();
-				while (e.hasNext()) {
-					Diff d= (Diff) e.next();
-					if (d.isIncomingOrConflicting() /* && useChange(d.fDirection) && !d.fIsWhitespace */) {
-						incomingOrConflicting++;
-						if (!d.fResolved) {
-							if (d.fDirection == RangeDifference.CONFLICT) {
-								unresolvedConflicting++;
-								break; // we can stop here because a conflict has the maximum priority
-							} else {
-								unresolvedIncoming++;
-							}
-						}
-					}
-				}
-			}
-		
-			if (incomingOrConflicting > 0) {
-				if (unresolvedConflicting > 0)
-					rgb= SELECTED_CONFLICT;
-				else if (unresolvedIncoming > 0)
-					rgb= SELECTED_INCOMING;
-				else
-					rgb= RESOLVED;
-			}
-		}
-		
-		if (fHeaderPainter.setColor(rgb))
-			fSummaryHeader.redraw();
-	}
-
-	private void updateStatus(Diff diff) {
-		
-		if (! fShowMoreInfo)
-			return;
-		
-		IActionBars bars= Utilities.findActionBars(fComposite);
-		if (bars == null)
-			return;
-		IStatusLineManager slm= bars.getStatusLineManager();
-		if (slm == null)
-			return;
-					
-		String diffDescription;
-		
-		if (diff == null) {
-			diffDescription= CompareMessages.getString("TextMergeViewer.diffDescription.noDiff.format");	//$NON-NLS-1$
-		} else {
-			
-			if (diff.fIsToken)		// we don't show special info for token diffs
-				diff= diff.fParent;
-		
-			String format= CompareMessages.getString("TextMergeViewer.diffDescription.diff.format");	//$NON-NLS-1$
-			diffDescription= MessageFormat.format(format, 
-				new String[] {
-					getDiffType(diff),						// 0: diff type
-					getDiffNumber(diff),					// 1: diff number
-					getDiffRange(fLeft, diff.fLeftPos),		// 2: left start line
-					getDiffRange(fRight, diff.fRightPos)	// 3: left end line
-				}
-			);
-		}
-		
-		String format= CompareMessages.getString("TextMergeViewer.statusLine.format");	//$NON-NLS-1$
-		String s= MessageFormat.format(format, 
-			new String[] {
-				getCursorPosition(fLeft),	// 0: left column
-				getCursorPosition(fRight),	// 1: right column
-				diffDescription				// 2: diff description
-			}
-		);
-	
-		slm.setMessage(s);
-	}
-
-	private void clearStatus() {
-		
-		IActionBars bars= Utilities.findActionBars(fComposite);
-		if (bars == null)
-			return;
-		IStatusLineManager slm= bars.getStatusLineManager();
-		if (slm == null)
-			return;
-						
-		slm.setMessage(null);
-	}
-	
-	private String getDiffType(Diff diff) {
-		String s= ""; 	//$NON-NLS-1$
-		switch(diff.fDirection) {
-		case RangeDifference.LEFT:
-			s= CompareMessages.getString("TextMergeViewer.direction.outgoing");	//$NON-NLS-1$
-			break;
-		case RangeDifference.RIGHT:
-			s= CompareMessages.getString("TextMergeViewer.direction.incoming");	//$NON-NLS-1$
-			break;
-		case RangeDifference.CONFLICT:
-			s= CompareMessages.getString("TextMergeViewer.direction.conflicting");	//$NON-NLS-1$
-			break;
-		}
-		String format= CompareMessages.getString("TextMergeViewer.diffType.format");	//$NON-NLS-1$
-		return MessageFormat.format(format, new String[] { s, diff.changeType() } );
-	}
-	
-	private String getDiffNumber(Diff diff) {
-		// find the diff's number
-		int diffNumber= 0;
-		if (fChangeDiffs != null) {
-			Iterator e= fChangeDiffs.iterator();
-			while (e.hasNext()) {
-				Diff d= (Diff) e.next();
-				diffNumber++;
-				if (d == diff)
-					break;
-			}
-		}
-		return Integer.toString(diffNumber);
-	}
-	
-	private String getDiffRange(MergeSourceViewer v, Position pos) {
-		Point p= v.getLineRange(pos, new Point(0, 0));
-		int startLine= p.x+1;
-		int endLine= p.x+p.y;
-		
-		String format;
-		if (endLine < startLine)
-			format= CompareMessages.getString("TextMergeViewer.beforeLine.format");	//$NON-NLS-1$
-		else
-			format= CompareMessages.getString("TextMergeViewer.range.format");	//$NON-NLS-1$
-		return MessageFormat.format(format,
-					new String[] { Integer.toString(startLine),
-									Integer.toString(endLine) } );
-	}
-	
-	/**
-	 * Returns a description of the cursor position.
-	 * 
-	 * @return a description of the cursor position
-	 */
-	private String getCursorPosition(MergeSourceViewer v) {
-		if (v != null) {
-			StyledText styledText= v.getTextWidget();
-			
-			IDocument document= v.getDocument();
-			if (document != null) {
-				int offset= v.getVisibleRegion().getOffset();
-				int caret= offset + styledText.getCaretOffset();
-				
-				try {
-					
-					int line=document.getLineOfOffset(caret);
-					
-					int lineOffset= document.getLineOffset(line);
-					int occurrences= 0;
-					for (int i= lineOffset; i < caret; i++)
-						if ('\t' == document.getChar(i))
-							++ occurrences;
-							
-					int tabWidth= styledText.getTabs();
-					int column= caret - lineOffset + (tabWidth -1) * occurrences;
-					
-					String format= CompareMessages.getString("TextMergeViewer.cursorPosition.format");	//$NON-NLS-1$
-					return MessageFormat.format(format,
-						new String[] { Integer.toString(line + 1), Integer.toString(column + 1) } );
-					
-				} catch (BadLocationException x) {
-				}
-			}
-		}
-		return "";	//$NON-NLS-1$
-	}
-
-	protected void updateHeader() {
-		
-		super.updateHeader();
-				
-		updateControls();
-	}
-
-	/**
-	 * Creates the two items for copying a difference range from one side to the other 
-	 * and adds them to the given toolbar manager.
-	 */
-	protected void createToolItems(ToolBarManager tbm) {
-
-		IWorkbenchPartSite ps= Utilities.findSite(fComposite);
-		fKeyBindingService= ps != null ? ps.getKeyBindingService() : null;
-		
-		final String ignoreAncestorActionKey= "action.IgnoreAncestor.";	//$NON-NLS-1$
-		Action ignoreAncestorAction= new Action() {
-			public void run() {
-				setIgnoreAncestor(! fIgnoreAncestor);
-				Utilities.initToggleAction(this, getResourceBundle(), ignoreAncestorActionKey, fIgnoreAncestor);
-			}
-		};
-		ignoreAncestorAction.setChecked(fIgnoreAncestor);
-		Utilities.initAction(ignoreAncestorAction, getResourceBundle(), ignoreAncestorActionKey);
-		Utilities.initToggleAction(ignoreAncestorAction, getResourceBundle(), ignoreAncestorActionKey, fIgnoreAncestor);
-		
-		fIgnoreAncestorItem= new ActionContributionItem(ignoreAncestorAction);
-		fIgnoreAncestorItem.setVisible(false);
-		tbm.appendToGroup("modes", fIgnoreAncestorItem); //$NON-NLS-1$
-
-		tbm.add(new Separator());
-					
-		Action a= new Action() {
-			public void run() {
-				navigate(true, true, true);
-			}
-		};
-		Utilities.initAction(a, getResourceBundle(), "action.NextDiff."); //$NON-NLS-1$
-		fNextItem= new ActionContributionItem(a);
-		tbm.appendToGroup("navigation", fNextItem); //$NON-NLS-1$
-		Utilities.registerAction(fKeyBindingService, a, "org.eclipse.compare.selectNextChange");	//$NON-NLS-1$
-		
-		a= new Action() {
-			public void run() {
-				navigate(false, true, true);
-			}
-		};
-		Utilities.initAction(a, getResourceBundle(), "action.PrevDiff."); //$NON-NLS-1$
-		fPreviousItem= new ActionContributionItem(a);
-		tbm.appendToGroup("navigation", fPreviousItem); //$NON-NLS-1$
-		Utilities.registerAction(fKeyBindingService, a, "org.eclipse.compare.selectPreviousChange");	//$NON-NLS-1$
-
-		
-		CompareConfiguration cc= getCompareConfiguration();
-		
-		if (cc.isRightEditable()) {
-			a= new Action() {
-				public void run() {
-					copyDiffLeftToRight();
-				}
-			};
-			Utilities.initAction(a, getResourceBundle(), "action.CopyDiffLeftToRight."); //$NON-NLS-1$
-			fCopyDiffLeftToRightItem= new ActionContributionItem(a);
-			fCopyDiffLeftToRightItem.setVisible(true);
-			tbm.appendToGroup("merge", fCopyDiffLeftToRightItem); //$NON-NLS-1$
-			Utilities.registerAction(fKeyBindingService, a, "org.eclipse.compare.copyLeftToRight");	//$NON-NLS-1$
-		}
-		
-		if (cc.isLeftEditable()) {
-			a= new Action() {
-				public void run() {
-					copyDiffRightToLeft();
-				}
-			};
-			Utilities.initAction(a, getResourceBundle(), "action.CopyDiffRightToLeft."); //$NON-NLS-1$
-			fCopyDiffRightToLeftItem= new ActionContributionItem(a);
-			fCopyDiffRightToLeftItem.setVisible(true);
-			tbm.appendToGroup("merge", fCopyDiffRightToLeftItem); //$NON-NLS-1$
-			Utilities.registerAction(fKeyBindingService, a, "org.eclipse.compare.copyRightToLeft");	//$NON-NLS-1$
-		}
-	}
-	
-	/* package */ void propertyChange(PropertyChangeEvent event) {
-		
-		String key= event.getProperty();
-		
-		if (key.equals(CompareConfiguration.IGNORE_WHITESPACE)
-				|| key.equals(ComparePreferencePage.SHOW_PSEUDO_CONFLICTS)) {
-					
-			fShowPseudoConflicts= fPreferenceStore.getBoolean(ComparePreferencePage.SHOW_PSEUDO_CONFLICTS);
-			
-			// clear stuff
-			fCurrentDiff= null;
-		 	fChangeDiffs= null;
-			fAllDiffs= null;
-					
-			doDiff();
-					
-			updateControls();
-			invalidateLines();
-			updateVScrollBar();
-			refreshBirdsEyeView();
-			
-			selectFirstDiff();
-			
-//		} else if (key.equals(ComparePreferencePage.USE_SPLINES)) {
-//			fUseSplines= fPreferenceStore.getBoolean(ComparePreferencePage.USE_SPLINES);
-//			invalidateLines();
-
-		} else if (key.equals(ComparePreferencePage.USE_SINGLE_LINE)) {
-			fUseSingleLine= fPreferenceStore.getBoolean(ComparePreferencePage.USE_SINGLE_LINE);
-			fUseResolveUI= fUseSingleLine;
-			fBasicCenterCurve= null;
-			updateResolveStatus();
-			invalidateLines();
-	
-//		} else if (key.equals(ComparePreferencePage.USE_RESOLVE_UI)) {
-//			fUseResolveUI= fPreferenceStore.getBoolean(ComparePreferencePage.USE_RESOLVE_UI);
-//			updateResolveStatus();
-//			invalidateLines();
-		
-		} else if (key.equals(fSymbolicFontName)) {
-			updateFont();
-			invalidateLines();
-			
-		} else if (key.equals(ComparePreferencePage.SYNCHRONIZE_SCROLLING)) {
-			
-			boolean b= fPreferenceStore.getBoolean(ComparePreferencePage.SYNCHRONIZE_SCROLLING);
-			if (b != fSynchronizedScrolling)
-				toggleSynchMode();
-		
-		} else if (key.equals(ComparePreferencePage.SHOW_MORE_INFO)) {
-			
-			boolean b= fPreferenceStore.getBoolean(ComparePreferencePage.SHOW_MORE_INFO);
-			if (b != fShowMoreInfo) {
-				fShowMoreInfo= b;
-				if (fShowMoreInfo)
-					updateStatus(fCurrentDiff);
-				else
-					clearStatus();
-			}
-		
-		} else
-			super.propertyChange(event);
-	}
-	
-	private void setIgnoreAncestor(boolean ignore) {
-		if (ignore != fIgnoreAncestor) {
-			fIgnoreAncestor= ignore;
-			setAncestorVisibility(false, !fIgnoreAncestor);
-		
-			// clear stuff
-			fCurrentDiff= null;
-		 	fChangeDiffs= null;
-			fAllDiffs= null;
-					
-			doDiff();
-					
-			invalidateLines();
-			updateVScrollBar();
-			refreshBirdsEyeView();
-			
-			selectFirstDiff();
-		}
-	}
-	
-	private void selectFirstDiff() {
-		
-		if (fLeft == null || fRight == null) {
-			return;
-		}
-		if (fLeft.getDocument() == null || fRight.getDocument() == null) {
-			return;
-		}
-		
-		Diff firstDiff= null;
-		if (CompareNavigator.getDirection(fComposite))
-			firstDiff= findNext(fRight, fChangeDiffs, -1, -1, false);
-		else
-			firstDiff= findPrev(fRight, fChangeDiffs, 9999999, 9999999, false);
-		setCurrentDiff(firstDiff, true);
-	}
-	
-	private void toggleSynchMode() {
-		fSynchronizedScrolling= ! fSynchronizedScrolling;
-		
-		scrollVertical(0, 0, 0, null);
-		
-		// throw away central control (Sash or Canvas)
-		Control center= getCenter();
-		if (center != null && !center.isDisposed())
-			center.dispose();
-		
-		fLeft.getTextWidget().getVerticalBar().setVisible(!fSynchronizedScrolling);
-		fRight.getTextWidget().getVerticalBar().setVisible(!fSynchronizedScrolling);
-
-		fComposite.layout(true);
-	}
-					
-	protected void updateToolItems() {
-					
-		if (fIgnoreAncestorItem != null)
-			fIgnoreAncestorItem.setVisible(isThreeWay());
-		
-		super.updateToolItems();
-	}
-	
-	//---- painting lines
-	
-	/**
-	 * 
-	 */
-	private void updateLines(IDocument d) {
-
-		boolean left= false;
-		boolean right= false;
-		
-		// FIXME: this optimization is incorrect because
-		// it doesn't take replace operations into account where
-		// the old and new line count does not differ
-		if (d == fLeft.getDocument()) {
-			int l= fLeft.getLineCount();
-			left= fLeftLineCount != l;
-			fLeftLineCount= l;
-		} else if (d == fRight.getDocument()) {
-			int l= fRight.getLineCount();
-			right= fRightLineCount != l;
-			fRightLineCount= l;
-		}
-		
-		if (left || right) {
-			
-			if (left) {
-				if (fLeftCanvas != null)
-					fLeftCanvas.redraw();
-			} else {
-				if (fRightCanvas != null)
-					fRightCanvas.redraw();
-			}
-			Control center= getCenter();
-			if (center != null)
-				center.redraw();
-
-			updateVScrollBar();
-			refreshBirdsEyeView();
-		}
-	}
-	
-	private void invalidateLines() {
-		if (isThreeWay()) {
-			if (Utilities.okToUse(fAncestorCanvas))
-				fAncestorCanvas.redraw();
-			if (fAncestor != null && fAncestor.isControlOkToUse())
-				fAncestor.getTextWidget().redraw();
-		}
-		
-		if (Utilities.okToUse(fLeftCanvas))
-			fLeftCanvas.redraw();
-			
-		if (fLeft != null && fLeft.isControlOkToUse())
-			fLeft.getTextWidget().redraw();
-			
-		if (Utilities.okToUse(getCenter()))
-			getCenter().redraw();
-			
-		if (fRight != null && fRight.isControlOkToUse())
-			fRight.getTextWidget().redraw();
-			
-		if (Utilities.okToUse(fRightCanvas))
-			fRightCanvas.redraw();
-	}
-	
-	private boolean showResolveUI() {
-		if (!fUseResolveUI || !isThreeWay() || fIgnoreAncestor)
-			return false;
-		CompareConfiguration cc= getCompareConfiguration();
-		if (cc == null)
-			return false;
-		// we only enable the new resolve ui if exactly one side is editable
-		boolean l= cc.isLeftEditable();
-		boolean r= cc.isRightEditable();
-		//return (l && !r) || (r && !l);
-		return l || r;
-	}
-	
-	private void paintCenter(Canvas canvas, GC g) {
-		
-		Display display= canvas.getDisplay();
-		
-		checkForColorUpdate(display);
-		
-		if (! fSynchronizedScrolling)
-			return;
-
-		int lineHeight= fLeft.getTextWidget().getLineHeight();			
-		int visibleHeight= fRight.getViewportHeight();
-
-		Point size= canvas.getSize();
-		int x= 0;
-		int w= size.x;
-				
-		g.setBackground(canvas.getBackground());
-		g.fillRectangle(x+1, 0, w-2, size.y);
-		
-		if (!fIsMotif) {
-			// draw thin line between center ruler and both texts
-			g.setBackground(display.getSystemColor(SWT.COLOR_WIDGET_NORMAL_SHADOW));
-			g.fillRectangle(0, 0, 1, size.y);
-			g.fillRectangle(w-1, 0, 1, size.y);
-		}
-			
-		if (! fHiglightRanges)
-			return;
-
-		boolean showResolveUI= showResolveUI();
-
-		if (fChangeDiffs != null) {
-			int lshift= fLeft.getVerticalScrollOffset();
-			int rshift= fRight.getVerticalScrollOffset();
-					
-			Point region= new Point(0, 0);
-		
-			Iterator e= fChangeDiffs.iterator();
-			while (e.hasNext()) {
-				Diff diff= (Diff) e.next();
-				if (diff.isDeleted())
-					continue;
-				
-				if (fShowCurrentOnly2 && !isCurrentDiff(diff))
-					continue;
-
-				fLeft.getLineRange(diff.fLeftPos, region);
-				int ly= (region.x * lineHeight) + lshift;
-				int lh= region.y * lineHeight;
-	
-				fRight.getLineRange(diff.fRightPos, region);
-				int ry= (region.x * lineHeight) + rshift;
-				int rh= region.y * lineHeight;
-	
-				if (Math.max(ly+lh, ry+rh) < 0)
-					continue;
-				if (Math.min(ly, ry) >= visibleHeight)
-					break;
-	
-				fPts[0]= x;	fPts[1]= ly;	fPts[2]= w;	fPts[3]= ry;
-				fPts[6]= x;	fPts[7]= ly+lh;	fPts[4]= w;	fPts[5]= ry+rh;
-				
-				Color fillColor= getColor(display, getFillColor(diff));
-				Color strokeColor= getColor(display, getStrokeColor(diff));
-				
-				if (fUseSingleLine) {
-					int w2= 3;
-
-					g.setBackground(fillColor);
-					g.fillRectangle(0, ly, w2, lh);		// left
-					g.fillRectangle(w-w2, ry, w2, rh);	// right
-
-					g.setLineWidth(LW);
-					g.setForeground(strokeColor);
-					g.drawRectangle(0-1, ly, w2, lh);	// left
-					g.drawRectangle(w-w2, ry, w2, rh);	// right
-
-					if (fUseSplines) {
-						int[] points= getCenterCurvePoints(w2, ly+lh/2, w-w2, ry+rh/2);
-						for (int i= 1; i < points.length; i++)
-							g.drawLine(w2+i-1, points[i-1], w2+i, points[i]);
-					} else {
-						g.drawLine(w2, ly+lh/2, w-w2, ry+rh/2);
-					}
-				} else {
-					// two lines
-					if (fUseSplines) {
-						g.setBackground(fillColor);
-
-						g.setLineWidth(LW);
-						g.setForeground(strokeColor);
-
-						int[] topPoints= getCenterCurvePoints(fPts[0], fPts[1], fPts[2], fPts[3]);
-						int[] bottomPoints= getCenterCurvePoints(fPts[6], fPts[7], fPts[4], fPts[5]);
-						g.setForeground(fillColor);
-						g.drawLine(0, bottomPoints[0], 0, topPoints[0]);
-						for (int i= 1; i < bottomPoints.length; i++) {
-							g.setForeground(fillColor);
-							g.drawLine(i, bottomPoints[i], i, topPoints[i]);
-							g.setForeground(strokeColor);
-							g.drawLine(i-1, topPoints[i-1], i, topPoints[i]);
-							g.drawLine(i-1, bottomPoints[i-1], i, bottomPoints[i]);
-						}
-					} else {
-						g.setBackground(fillColor);
-						g.fillPolygon(fPts);
-
-						g.setLineWidth(LW);
-						g.setForeground(strokeColor);
-						g.drawLine(fPts[0], fPts[1], fPts[2], fPts[3]);
-						g.drawLine(fPts[6], fPts[7], fPts[4], fPts[5]);
-					}
-				}
-				
-				if (showResolveUI && diff.isUnresolvedIncomingOrConflicting()) {
-					// draw resolve state
-					int cx= (w-RESOLVE_SIZE)/2;
-					int cy= ((ly+lh/2) + (ry+rh/2) - RESOLVE_SIZE)/2;
-					
-					g.setBackground(fillColor);
-					g.fillRectangle(cx, cy, RESOLVE_SIZE, RESOLVE_SIZE);
-					
-					g.setForeground(strokeColor);
-					g.drawRectangle(cx, cy, RESOLVE_SIZE, RESOLVE_SIZE);
-				}
-			}
-		}
-	}
-	
-	private int[] getCenterCurvePoints(int startx, int starty, int endx, int endy) {
-		if (fBasicCenterCurve == null)
-			buildBaseCenterCurve(endx-startx);
-		double height= endy - starty;
-		height= height/2;
-		int width= endx-startx;
-		int[] points= new int[width];
-		for (int i= 0; i < width; i++) {
-			points[i]= (int) (-height * fBasicCenterCurve[i] + height + starty);
-		}
-		return points;
-	}
-
-	private void buildBaseCenterCurve(int w) {
-		double width= w;
-		fBasicCenterCurve= new double[getCenterWidth()];
-		for (int i= 0; i < getCenterWidth(); i++) {
-			double r= ((double) i) / width;
-			fBasicCenterCurve[i]= Math.cos(Math.PI * r);
-		}
-	}
-
-	private void paintSides(GC g, MergeSourceViewer tp, Canvas canvas, boolean right) {
-		
-		Display display= canvas.getDisplay();
-		
-		int lineHeight= tp.getTextWidget().getLineHeight();
-		int visibleHeight= tp.getViewportHeight();
-
-		Point size= canvas.getSize();
-		int x= 0;
-		int w= fMarginWidth;
-		int w2= w/2;
-			
-		g.setBackground(canvas.getBackground());
-		g.fillRectangle(x, 0, w, size.y);
-
-		if (!fIsMotif) {
-			// draw thin line between ruler and text
-			g.setBackground(display.getSystemColor(SWT.COLOR_WIDGET_NORMAL_SHADOW));
-			if (right)
-				g.fillRectangle(0, 0, 1, size.y);
-			else
-				g.fillRectangle(size.x-1, 0, 1, size.y);
-		}
-
-		if (! fHiglightRanges)
-			return;
-
-		if (fChangeDiffs != null) {
-			int shift= tp.getVerticalScrollOffset() + (2-LW);
-				
-			Point region= new Point(0, 0);
-			Iterator e= fChangeDiffs.iterator();
-			while (e.hasNext()) {
-				Diff diff= (Diff) e.next();
-				if (diff.isDeleted())
-					continue;
-				
-				if (fShowCurrentOnly2 && !isCurrentDiff(diff))
-					continue;
-
-				tp.getLineRange(diff.getPosition(tp), region);	
-				int y= (region.x * lineHeight) + shift;
-				int h= region.y * lineHeight;
-	
-				if (y+h < 0)
-					continue;
-				if (y >= visibleHeight)
-					break;
-					
-				g.setBackground(getColor(display, getFillColor(diff)));
-				if (right)
-					g.fillRectangle(x, y, w2, h);
-				else
-					g.fillRectangle(x+w2, y, w2, h);
-	
-				g.setLineWidth(LW);
-				g.setForeground(getColor(display, getStrokeColor(diff)));
-				if (right)
-					g.drawRectangle(x-1, y-1, w2, h);
-				else
-					g.drawRectangle(x+w2, y-1, w2, h);
-			}
-		}
-	}
-	
-	private void paint(PaintEvent event, MergeSourceViewer tp) {
-		
-		if (! fHiglightRanges)
-			return;
-		if (fChangeDiffs == null)
-			return;
-
-		Control canvas= (Control) event.widget;
-		GC g= event.gc;
-		
-		Display display= canvas.getDisplay();
-		
-		int lineHeight= tp.getTextWidget().getLineHeight();			
-		int w= canvas.getSize().x;
-		int shift= tp.getVerticalScrollOffset() + (2-LW);
-		int maxh= event.y+event.height; 	// visibleHeight
-		
-		//if (fIsMotif)
-			shift+= fTopInset;
-				
-		Point range= new Point(0, 0);
-				
-		Iterator e= fChangeDiffs.iterator();	
-		while (e.hasNext()) {
-			Diff diff= (Diff) e.next();
-			if (diff.isDeleted())
-				continue;
-			
-			if (fShowCurrentOnly && !isCurrentDiff(diff))
-				continue;
-
-			tp.getLineRange(diff.getPosition(tp), range);
-			int y= (range.x * lineHeight) + shift;
-			int h= range.y * lineHeight;
-			
-			if (y+h < event.y)
-				continue;
-			if (y > maxh)
-				break;
-			
-			g.setBackground(getColor(display, getStrokeColor(diff)));
-			g.fillRectangle(0, y-1, w, LW);
-			g.fillRectangle(0, y+h-1, w, LW);
-		}
-	}
-
-	private RGB getFillColor(Diff diff) {
-		boolean selected= fCurrentDiff != null && fCurrentDiff.fParent == diff;
-		
-		RGB selected_fill= getBackground(null);
-
-		if (isThreeWay() && !fIgnoreAncestor) {
-			switch (diff.fDirection) {
-			case RangeDifference.RIGHT:
-				if (fLeftIsLocal)
-					return selected ? selected_fill : INCOMING_FILL;
-				return selected ? selected_fill : OUTGOING_FILL;
-			case RangeDifference.ANCESTOR:
-				return selected ? selected_fill : CONFLICT_FILL;
-			case RangeDifference.LEFT:
-				if (fLeftIsLocal)
-					return selected ? selected_fill : OUTGOING_FILL;
-				return selected ? selected_fill : INCOMING_FILL;
-			case RangeDifference.CONFLICT:
-				return selected ? selected_fill : CONFLICT_FILL;
-			}
-			return null;
-		}
-		return selected ? selected_fill : OUTGOING_FILL;
-	}
-	
-	private RGB getStrokeColor(Diff diff) {
-		boolean selected= fCurrentDiff != null && fCurrentDiff.fParent == diff;
-		
-		if (isThreeWay() && !fIgnoreAncestor) {
-			switch (diff.fDirection) {
-			case RangeDifference.RIGHT:
-				if (fLeftIsLocal)
-					return selected ? SELECTED_INCOMING : INCOMING;
-				return selected ? SELECTED_OUTGOING : OUTGOING;
-			case RangeDifference.ANCESTOR:
-				return selected ? SELECTED_CONFLICT : CONFLICT;
-			case RangeDifference.LEFT:
-				if (fLeftIsLocal)
-					return selected ? SELECTED_OUTGOING : OUTGOING;
-				return selected ? SELECTED_INCOMING : INCOMING;
-			case RangeDifference.CONFLICT:
-				return selected ? SELECTED_CONFLICT : CONFLICT;
-			}
-			return null;
-		}
-		return selected ? SELECTED_OUTGOING : OUTGOING;
-	}
-	
-	private Color getColor(Display display, RGB rgb) {
-		if (rgb == null)
-			return null;		
-		if (fColors == null)
-			fColors= new HashMap(20);
-		Color c= (Color) fColors.get(rgb);
-		if (c == null) {
-			c= new Color(display, rgb);
-			fColors.put(rgb, c);
-		}
-		return c;
-	}
-			
-	static RGB interpolate(RGB fg, RGB bg, double scale) {
-		return new RGB(
-			(int)((1.0-scale) * fg.red + scale * bg.red),
-			(int)((1.0-scale) * fg.green + scale * bg.green),
-			(int)((1.0-scale) * fg.blue + scale * bg.blue)
-		);
-	}
-	
-	//---- Navigating and resolving Diffs
-	
-	/**
-	 * Returns true if end (or beginning) of document reached.
-	 */
-	private boolean navigate(boolean down, boolean wrap, boolean deep) {
-
-		Diff diff= null;
-		
-		for (;;) {
-			
-			if (fChangeDiffs != null) {
-				MergeSourceViewer part= fFocusPart;
-				if (part == null)
-					part= fRight;
-				
-				if (part != null) {
-					Point s= part.getSelectedRange();
-					if (down)
-						diff= findNext(part, fChangeDiffs, s.x, s.x+s.y, deep);
-					else
-						diff= findPrev(part, fChangeDiffs, s.x, s.x+s.y, deep);					
-				}		
-			}
-		
-			if (diff == null) {	// at end or beginning
-				if (wrap) {
-					if (!fEndOfDocReached) {
-						fEndOfDocReached= true;
-						if (! endOfDocumentReached(down))
-							return true;
-					}
-					fEndOfDocReached= false;
-					if (fChangeDiffs != null && fChangeDiffs.size() > 0) {
-						if (down)
-							diff= (Diff) fChangeDiffs.get(0);
-						else
-							diff= (Diff) fChangeDiffs.get(fChangeDiffs.size()-1);
-					}
-				} else {
-					fEndOfDocReached= false;	
-					return true;
-				}
-			}
-			
-			setCurrentDiff(diff, true);
-			
-			if (diff != null && diff.fDirection == RangeDifference.ANCESTOR
-									&& !getAncestorEnabled())
-				continue;
-				
-			break;
-		}
-
-		return false;
-	}
-	
-	private boolean endOfDocumentReached(boolean down) {
-		Control c= getControl();
-		if (Utilities.okToUse(c)) {
-			
-			c.getDisplay().beep();
-			
-			String key= down ? "atEnd" : "atBeginning"; //$NON-NLS-1$ //$NON-NLS-2$
-			return MessageDialog.openQuestion(c.getShell(),
-				CompareMessages.getString("TextMergeViewer."+key+".title"),	//$NON-NLS-1$ //$NON-NLS-2$
-				CompareMessages.getString("TextMergeViewer."+key+".message"));	//$NON-NLS-1$ //$NON-NLS-2$
-		}
-		return false;
-	}
-	
-	/**
-	 * Find the Diff that overlaps with the given TextPart's text range.
-	 * If the range doesn't overlap with any range <code>null</code>
-	 * is returned.
-	 */
-	private Diff findDiff(MergeSourceViewer tp, int rangeStart, int rangeEnd) {
-		if (fChangeDiffs != null) {
-			Iterator e= fChangeDiffs.iterator();
-			while (e.hasNext()) {
-				Diff diff= (Diff) e.next();
-				if (diff.contains(tp, rangeStart, rangeEnd))
-					return diff;
-			}
-		}
-		return null;
-	}
-	
-	private static Diff findNext(MergeSourceViewer tp, List v, int start, int end, boolean deep) {
-		for (int i= 0; i < v.size(); i++) {
-			Diff diff= (Diff) v.get(i);
-			Position p= diff.getPosition(tp);
-			if (p != null) {
-				int startOffset= p.getOffset();
-				if (end < startOffset)  // <=
-					return diff;
-				if (deep && diff.fDiffs != null) {
-					Diff d= null;
-					int endOffset= startOffset + p.getLength();
-					if (start == startOffset && (end == endOffset || end == endOffset-1)) {
-						d= findNext(tp, diff.fDiffs, start-1, start-1, deep);
-					} else if (end < endOffset) {
-						d= findNext(tp, diff.fDiffs, start, end, deep);
-					}
-					if (d != null)
-						return d;
-				}
-			}
-		}
-		return null;
-	}
-	
-	private static Diff findPrev(MergeSourceViewer tp, List v, int start, int end, boolean deep) {
-		for (int i= v.size()-1; i >= 0; i--) {
-			Diff diff= (Diff) v.get(i);
-			Position p= diff.getPosition(tp);
-			if (p != null) {
-				int startOffset= p.getOffset();
-				int endOffset= startOffset + p.getLength();
-				if (start > endOffset)
-					return diff;
-				if (deep && diff.fDiffs != null) {
-					Diff d= null;
-					if (start == startOffset && end == endOffset) {
-						d= findPrev(tp, diff.fDiffs, end, end, deep);
-					} else if (start >= startOffset) {
-						d= findPrev(tp, diff.fDiffs, start, end, deep);
-					}
-					if (d != null)
-						return d;
-				}
-			}
-		}
-		return null;
-	}
-		
-	/*
-	 * Set the currently active Diff and update the toolbars controls and lines.
-	 * If <code>revealAndSelect</code> is <code>true</code> the Diff is revealed and
-	 * selected in both TextParts.
-	 */
-	private void setCurrentDiff(Diff d, boolean revealAndSelect) {
-
-//		if (d == fCurrentDiff)
-//			return;
-
-		if (fCenterButton != null)
-			fCenterButton.setVisible(false);
-						
-		fEndOfDocReached= false;	
-
-		Diff oldDiff= fCurrentDiff;
-					
-		if (d != null && revealAndSelect) {
-			
-			// before we set fCurrentDiff we change the selection
-			// so that the paint code uses the old background colors
-			// otherwise selection isn't drawn correctly
-			if (isThreeWay() && !fIgnoreAncestor)
-				fAncestor.setSelection(d.fAncestorPos);
-			fLeft.setSelection(d.fLeftPos);
-			fRight.setSelection(d.fRightPos);
-			
-			// now switch diffs
-			fCurrentDiff= d;
-			revealDiff(d, d.fIsToken);
-		} else {
-			fCurrentDiff= d;
-		}
-		
-		Diff d1= oldDiff != null ? oldDiff.fParent : null;
-		Diff d2= fCurrentDiff != null ? fCurrentDiff.fParent : null;
-		if (d1 != d2) {
-			updateDiffBackground(d1);
-			updateDiffBackground(d2);
-		}
-		
-		updateControls();
-		invalidateLines();
-		refreshBirdsEyeView();
-	}
-	
-	/**
-	 * Smart determines whether 
-	 */
-	private void revealDiff(Diff d, boolean smart) {
-		
-		boolean ancestorIsVisible= false;
-		boolean leftIsVisible= false;
-		boolean rightIsVisible= false;
-
-		if (smart) {
-			Point region= new Point(0, 0);
-			// find the starting line of the diff in all text widgets
-			int ls= fLeft.getLineRange(d.fLeftPos, region).x;
-			int rs= fRight.getLineRange(d.fRightPos, region).x;
-			
-			if (isThreeWay() && !fIgnoreAncestor) {
-				int as= fAncestor.getLineRange(d.fAncestorPos, region).x;
-				if (as >= fAncestor.getTopIndex() && as <= fAncestor.getBottomIndex())
-					ancestorIsVisible= true;
-			}
-
-			if (ls >= fLeft.getTopIndex() && ls <= fLeft.getBottomIndex())
-				leftIsVisible= true;
-
-			if (rs >= fRight.getTopIndex() && rs <= fRight.getBottomIndex())
-				rightIsVisible= true;
-		}
-
-		// vertical scrolling
-		if (!leftIsVisible || !rightIsVisible) {
-			int avpos= 0, lvpos= 0, rvpos= 0;
-			
-			MergeSourceViewer allButThis= null;
-			if (leftIsVisible) {
-				avpos= lvpos= rvpos= realToVirtualPosition(fLeft, fLeft.getTopIndex());
-				allButThis= fLeft;
-			} else if (rightIsVisible) {
-				avpos= lvpos= rvpos= realToVirtualPosition(fRight, fRight.getTopIndex());
-				allButThis= fRight;
-			} else if (ancestorIsVisible) {
-				avpos= lvpos= rvpos= realToVirtualPosition(fAncestor, fAncestor.getTopIndex());
-				allButThis= fAncestor;
-			} else {
-				if (fAllDiffs != null) {
-					int vpos= 0;
-					Iterator e= fAllDiffs.iterator();
-					for (int i= 0; e.hasNext(); i++) {
-						Diff diff= (Diff) e.next();
-						if (diff == d)
-							break;
-						if (fSynchronizedScrolling) {
-							vpos+= diff.getMaxDiffHeight(fShowAncestor);
-						} else {
-							avpos+= diff.getAncestorHeight();
-							lvpos+= diff.getLeftHeight();
-							rvpos+= diff.getRightHeight();
-						}
-					}
-					if (fSynchronizedScrolling)
-						avpos= lvpos= rvpos= vpos;
-				}
-				int delta= fRight.getViewportLines()/4;
-				avpos-= delta;
-				if (avpos < 0)
-					avpos= 0;
-				lvpos-= delta;
-				if (lvpos < 0)
-					lvpos= 0;
-				rvpos-= delta;
-				if (rvpos < 0)
-					rvpos= 0;
-			}
-							
-			scrollVertical(avpos, lvpos, rvpos, allButThis);
-			
-			if (fVScrollBar != null)
-				fVScrollBar.setSelection(avpos);
-		}
-		
-		// horizontal scrolling
-		if (d.fIsToken) {
-			// we only scroll horizontally for token diffs
-			reveal(fAncestor, d.fAncestorPos);
-			reveal(fLeft, d.fLeftPos);
-			reveal(fRight, d.fRightPos);
-		} else {
-			// in all other cases we reset the horizontal offset
-			hscroll(fAncestor);
-			hscroll(fLeft);
-			hscroll(fRight);
-		}
-	}
-	
-	private static void reveal(MergeSourceViewer v, Position p) {
-		if (v != null && p != null) {
-			StyledText st= v.getTextWidget();
-			if (st != null) {
-				Rectangle r= st.getClientArea();
-				if (!r.isEmpty())	// workaround for #7320: Next diff scrolls when going into current diff 
-					v.revealRange(p.offset, p.length);
-			}
-		}
-	}
-	
-	private static void hscroll(MergeSourceViewer v) {
-		if (v != null) {
-			StyledText st= v.getTextWidget();
-			if (st != null)
-				st.setHorizontalIndex(0);
-		}
-	}
-	
-	//--------------------------------------------------------------------------------
-	
-	void copyAllUnresolved(boolean leftToRight) {
-		if (fChangeDiffs != null && isThreeWay() && !fIgnoreAncestor) {
-			IRewriteTarget target= leftToRight ? fRight.getRewriteTarget() : fLeft.getRewriteTarget();
-			boolean compoundChangeStarted= false;
-			Iterator e= fChangeDiffs.iterator();
-			try {
-				while (e.hasNext()) {
-					Diff diff= (Diff) e.next();
-					switch (diff.fDirection) {
-					case RangeDifference.LEFT:
-						if (leftToRight) {
-							if (!compoundChangeStarted) {
-								target.beginCompoundChange();
-								compoundChangeStarted= true;
-							}
-							copy(diff, leftToRight);
-						}
-						break;
-					case RangeDifference.RIGHT:
-						if (!leftToRight) {
-							if (!compoundChangeStarted) {
-								target.beginCompoundChange();
-								compoundChangeStarted= true;
-							}
-							copy(diff, leftToRight);
-						}
-						break;
-					default:
-						continue;
-					}
-				}
-			} finally {
-				if (compoundChangeStarted) {
-					target.endCompoundChange();
-				}
-			}
-		}
-	}
-	
-	/*
-	 * Copy whole document from one side to the other.
-	 */
-	protected void copy(boolean leftToRight) {
-		
-		if (showResolveUI()) {
-			copyAllUnresolved(leftToRight);
-			invalidateLines();
-			return;
-		}
-				
-		if (leftToRight) {
-			if (fLeft.getEnabled()) {
-				// copy text
-				String text= fLeft.getTextWidget().getText();
-				fRight.getTextWidget().setText(text);
-				fRight.setEnabled(true);
-			} else {
-				// delete
-				fRight.getTextWidget().setText(""); //$NON-NLS-1$
-				fRight.setEnabled(false);
-			}
-			fRightLineCount= fRight.getLineCount();
-			setRightDirty(true);
-		} else {
-			if (fRight.getEnabled()) {
-				// copy text
-				String text= fRight.getTextWidget().getText();
-				fLeft.getTextWidget().setText(text);
-				fLeft.setEnabled(true);
-			} else {
-				// delete
-				fLeft.getTextWidget().setText(""); //$NON-NLS-1$
-				fLeft.setEnabled(false);
-			}
-			fLeftLineCount= fLeft.getLineCount();
-			setLeftDirty(true);
-		}
-		doDiff();
-		invalidateLines();
-		updateVScrollBar();
-		selectFirstDiff();
-		refreshBirdsEyeView();
-	}
-
-	private void copyDiffLeftToRight() {
-		copy(fCurrentDiff, true, false);
-	}
-
-	private void copyDiffRightToLeft() {
-		copy(fCurrentDiff, false, false);
-	}
-		
-	/*
-	 * Copy the contents of the given diff from one side to the other.
-	 */
-	private void copy(Diff diff, boolean leftToRight, boolean gotoNext) {
-		if (copy(diff, leftToRight)) {
-			if (gotoNext) {
-				navigate(true, true, true);
-			} else {
-				revealDiff(diff, true);
-				updateControls();
-			}
-		}
-	}
-
-	/*
-	 * Copy the contents of the given diff from one side to the other but
-	 * doesn't reveal anything.
-	 * Returns true if copy was succesful.
-	 */
-	private boolean copy(Diff diff, boolean leftToRight) {
-		
-		if (diff != null && !diff.isResolved()) {
-
-			Position fromPos= null;
-			Position toPos= null;
-			IDocument fromDoc= null;
-			IDocument toDoc= null;
-
-			if (leftToRight) {
-				fRight.setEnabled(true);
-				fromPos= diff.fLeftPos;
-				toPos= diff.fRightPos;
-				fromDoc= fLeft.getDocument();
-				toDoc= fRight.getDocument();
-			} else {
-				fLeft.setEnabled(true);
-				fromPos= diff.fRightPos;
-				toPos= diff.fLeftPos;
-				fromDoc= fRight.getDocument();
-				toDoc= fLeft.getDocument();
-			}
-			
-			if (fromDoc != null) {
-				
-				int fromStart= fromPos.getOffset();
-				int fromLen= fromPos.getLength();
-				
-				int toStart= toPos.getOffset();
-				int toLen= toPos.getLength();
-
-				try {
-					String s= null;
-											
-					switch (diff.fDirection) {
-					case RangeDifference.RIGHT:
-					case RangeDifference.LEFT:
-						s= fromDoc.get(fromStart, fromLen);
-						break;
-					case RangeDifference.ANCESTOR:
-						break;
-					case RangeDifference.CONFLICT:
-						if (APPEND_CONFLICT) {
-							s= toDoc.get(toStart, toLen);
-							s+= fromDoc.get(fromStart, fromLen);
-						} else
-							s= fromDoc.get(fromStart, fromLen);
-						break;
-					}
-					if (s != null) {
-						toDoc.replace(toStart, toLen, s);						
-						toPos.setOffset(toStart);
-						toPos.setLength(s.length());
-					}	
-				
-				} catch (BadLocationException e) {
-				}
-			}
-		
-			diff.setResolved(true);
-			updateResolveStatus();
-			
-			return true;
-		}
-		return false;
-	}
-
-	//---- scrolling
-
-	/**
-	 * Calculates virtual height (in lines) of views by adding the maximum of corresponding diffs.
-	 */
-	private int getVirtualHeight() {
-		int h= 1;
-		if (fAllDiffs != null) {
-			Iterator e= fAllDiffs.iterator();
-			for (int i= 0; e.hasNext(); i++) {
-				Diff diff= (Diff) e.next();
-				h+= diff.getMaxDiffHeight(fShowAncestor);
-			}
-		}
-		return h;
-	}
-	
-	/**
-	 * Calculates height (in lines) of right view by adding the height of the right diffs.
-	 */
-	private int getRightHeight() {
-		int h= 1;
-		if (fAllDiffs != null) {
-			Iterator e= fAllDiffs.iterator();
-			for (int i= 0; e.hasNext(); i++) {
-				Diff diff= (Diff) e.next();
-				h+= diff.getRightHeight();
-			}
-		}
-		return h;
-	}
-	
-	/**
-	 * The height of the TextEditors in lines.
-	 */
-	private int getViewportHeight() {
-		StyledText te= fLeft.getTextWidget();
-		
-		int vh= te.getClientArea().height;
-		if (vh == 0) {
-			Rectangle trim= te.computeTrim(0, 0, 0, 0);
-			int scrollbarHeight= trim.height;
-			
-			int headerHeight= getHeaderHeight();
-	
-			Composite composite= (Composite) getControl();
-			Rectangle r= composite.getClientArea();
-							
-			vh= r.height-headerHeight-scrollbarHeight;
-		}															
-
-		return vh / te.getLineHeight();
-	}
-	
-	/**
-	 * Returns the virtual position for the given view position.
-	 */
-	private int realToVirtualPosition(MergeSourceViewer w, int vpos) {
-
-		if (! fSynchronizedScrolling || fAllDiffs == null)
-			return vpos;
-				
-		int viewPos= 0;		// real view position
-		int virtualPos= 0;	// virtual position
-		Point region= new Point(0, 0);
-		
-		Iterator e= fAllDiffs.iterator();
-		while (e.hasNext()) {
-			Diff diff= (Diff) e.next();
-			Position pos= diff.getPosition(w);
-			w.getLineRange(pos, region);
-			int realHeight= region.y;
-			int virtualHeight= diff.getMaxDiffHeight(fShowAncestor);
-			if (vpos <= viewPos + realHeight) {	// OK, found!
-				vpos-= viewPos;	// make relative to this slot
-				// now scale position within this slot to virtual slot
-				if (realHeight <= 0)
-					vpos= 0;
-				else
-					vpos= (vpos*virtualHeight)/realHeight;
-				return virtualPos+vpos;
-			}
-			viewPos+= realHeight;
-			virtualPos+= virtualHeight;
-		}
-		return virtualPos;
-	}
-		
-	private void scrollVertical(int avpos, int lvpos, int rvpos, MergeSourceViewer allBut) {
-						
-		int s= 0;
-		
-		if (fSynchronizedScrolling) {
-			s= getVirtualHeight() - rvpos;
-			int height= fRight.getViewportLines()/4;
-			if (s < 0)
-				s= 0;
-			if (s > height)
-				s= height;
-		}
-
-		fInScrolling= true;
-				
-		if (isThreeWay() && allBut != fAncestor) {
-			if (fSynchronizedScrolling || allBut == null) {
-				int y= virtualToRealPosition(fAncestor, avpos+s)-s;
-				fAncestor.vscroll(y);
-			}
-		}
-
-		if (allBut != fLeft) {
-			if (fSynchronizedScrolling || allBut == null) {
-				int y= virtualToRealPosition(fLeft, lvpos+s)-s;
-				fLeft.vscroll(y);
-			}
-		}
-
-		if (allBut != fRight) {
-			if (fSynchronizedScrolling || allBut == null) {
-				int y= virtualToRealPosition(fRight, rvpos+s)-s;
-				fRight.vscroll(y);
-			}
-		}
-		
-		fInScrolling= false;
-		
-		if (isThreeWay() && fAncestorCanvas != null)
-			fAncestorCanvas.repaint();
-		
-		if (fLeftCanvas != null)
-			fLeftCanvas.repaint();
-		
-		Control center= getCenter();
-		if (center instanceof BufferedCanvas)
-			((BufferedCanvas)center).repaint();
-		
-		if (fRightCanvas != null)
-			fRightCanvas.repaint();
-	}
-		
-	/**
-	 * Updates Scrollbars with viewports.
-	 */
-	private void syncViewport(MergeSourceViewer w) {
-		
-		if (fInScrolling)
-			return;
-
-		int ix= w.getTopIndex();
-		int ix2= w.getDocumentRegionOffset();
-		
-		int viewPosition= realToVirtualPosition(w, ix-ix2);
-				
-		scrollVertical(viewPosition, viewPosition, viewPosition, w);	// scroll all but the given views
-		
-		if (fVScrollBar != null) {
-			int value= Math.max(0, Math.min(viewPosition, getVirtualHeight() - getViewportHeight()));
-			fVScrollBar.setSelection(value);
-			//refreshBirdEyeView();
-		}
-	}
-
-	/**
-	 */
-	private void updateVScrollBar() {
-		
-		if (Utilities.okToUse(fVScrollBar) && fSynchronizedScrolling) {
-			int virtualHeight= getVirtualHeight();
-			int viewPortHeight= getViewportHeight();
-			int pageIncrement= viewPortHeight-1;
-			int thumb= (viewPortHeight > virtualHeight) ? virtualHeight : viewPortHeight;
-						
-			fVScrollBar.setPageIncrement(pageIncrement);
-			fVScrollBar.setMaximum(virtualHeight);
-			fVScrollBar.setThumb(thumb);
-		}			
-	}
-	
-	/**
-	 * maps given virtual position into a real view position of this view.
-	 */
-	private int virtualToRealPosition(MergeSourceViewer part, int v) {
-			
-		if (! fSynchronizedScrolling || fAllDiffs == null)
-			return v;
-					
-		int virtualPos= 0;
-		int viewPos= 0;
-		Point region= new Point(0, 0);
-		
-		Iterator e= fAllDiffs.iterator();
-		while (e.hasNext()) {
-			Diff diff= (Diff) e.next();
-			Position pos= diff.getPosition(part);
-			int viewHeight= part.getLineRange(pos, region).y;
-			int virtualHeight= diff.getMaxDiffHeight(fShowAncestor);
-			if (v < (virtualPos + virtualHeight)) {
-				v-= virtualPos;		// make relative to this slot
-				if (viewHeight <= 0) {
-					v= 0;
-				} else {
-					v= (v*viewHeight)/virtualHeight;
-				}
-				return viewPos+v;
-			}
-			virtualPos+= virtualHeight;
-			viewPos+= viewHeight;
-		}
-		return viewPos;
-	}
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewerResources.properties b/bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewerResources.properties
deleted file mode 100644
index 3126d00..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewerResources.properties
+++ /dev/null
@@ -1,98 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-# @(#)TextMergeViewerResources.properties
-#
-# Resource strings for TextMergeViewer.java
-
-title= Text Compare
-
-saveDialog.title= Save Resource
-saveDialog.message= Resource has been modified. Save changes?
-
-compareProgressTask.title= Computing Differences...
-
-tooComplexError.title= Error
-tooComplexError.format= Too many differences. Turn on the ''Ignore White Space'' option or do a structure compare first.
-
-#####################################################
-# Toolbar actions
-#####################################################
-
-action.CopyLeftToRight.label=Copy Left to Right
-action.CopyLeftToRight.tooltip=Copy All from Left to Right
-action.CopyLeftToRight.image=copy_r_co.gif
-
-action.CopyRightToLeft.label=Copy Right to Left
-action.CopyRightToLeft.tooltip=Copy All Non-Conflicting Changes from Right to Left
-action.CopyRightToLeft.image=copy_l_co.gif
-
-action.CopyDiffLeftToRight.label=Copy Current Diff
-action.CopyDiffLeftToRight.tooltip=Copy Current Change from Left to Right
-action.CopyDiffLeftToRight.image=copycont_r_co.gif
-
-action.CopyDiffRightToLeft.label=Copy Current Diff
-action.CopyDiffRightToLeft.tooltip=Copy Current Change from Right to Left
-action.CopyDiffRightToLeft.image=copycont_l_co.gif
-
-action.NextDiff.label=Next
-action.NextDiff.tooltip=Select Next Change
-action.NextDiff.image=next_nav.gif
-
-action.PrevDiff.label=Previous
-action.PrevDiff.tooltip=Select Previous Change
-action.PrevDiff.image=prev_nav.gif
-
-action.EnableAncestor.label=Enable Ancestor Pane
-action.EnableAncestor.tooltip.unchecked=Show Ancestor Pane
-action.EnableAncestor.tooltip.checked=Hide Ancestor Pane
-action.EnableAncestor.description.unchecked=Show Ancestor Pane
-action.EnableAncestor.description.checked=Hide Ancestor Pane
-action.EnableAncestor.image=ancestorpane_co.gif
-
-action.IgnoreAncestor.label=Ignore Ancestor
-action.IgnoreAncestor.tooltip.unchecked=Two-Way Compare (Ignore Ancestor)
-action.IgnoreAncestor.tooltip.checked=Three-Way Compare
-action.IgnoreAncestor.description.unchecked=Two-Way Compare (Ignore Ancestor)
-action.IgnoreAncestor.description.checked=Three-Way Compare
-action.IgnoreAncestor.image=twowaycompare_co.gif
-
-
-#####################################################
-# Context menu actions
-#####################################################
-
-action.undo.label=Undo@Ctrl+Z
-action.undo.tooltip=Undo Last Operation
-
-action.redo.label=Redo@Ctrl+Y
-action.redo.tooltip=Redo Last Operation
-
-action.cut.label=Cut@Ctrl+X
-action.cut.tooltip=Cut Text Selection to Clipboard
-
-action.copy.label=Copy@Ctrl+C
-action.copy.tooltip=Copy Text Selection to Clipboard
-
-action.paste.label=Paste@Ctrl+V
-action.paste.tooltip=Replace Text Selection with Clipboard
-
-action.delete.label=Delete
-action.delete.tooltip=Delete Current Text Selection
-
-action.find.label=Find...@Ctrl+F
-action.find.tooltip=Find Occurrence
-
-action.selectAll.label=Select All@Ctrl+A
-action.selectAll.tooltip=Select All Changes
-
-action.save.label=Save@Ctrl+S
-action.save.tooltip=Save Changes
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/package.html b/bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/package.html
deleted file mode 100644
index 9f606fb..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/package.html
+++ /dev/null
@@ -1,45 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="Author" content="IBM">
-   <meta name="GENERATOR" content="Mozilla/4.75 [en] (WinNT; U) [Netscape]">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-Support for compare and merge viewers which show the
-content side-by-side.
-<h2>
-Package Specification</h2>
-
-The <b>ContentMergeViewer</b> is an abstract compare and merge viewer
-with two side-by-side content areas and an optional content area for a
-common ancestor (for three-way compare). Because the implementation makes
-no assumptions about the content type it is a subclass responsibility to
-deal with a specific type. Its subclass <b>ImageMergeViewer</b> in
-package org.eclipse.compare.internal shows how to base a simple
-mergeviewer for images on <b>ContentMergeViewer</b>.
-<p>
-
-A <b>ContentMergeViewer</b> accesses its model by means of a content
-provider which must implement the <b>IMergeViewerContentProvider</b> interface.
-<p>
-
-The <b>TextMergeViewer</b> is the standard concrete subclass of
-<b>ContentMergeViewer</b> for comparing and merging text content.
-<br>
-A text merge viewer uses the <b>org.eclipse.compare.rangedifferencer.RangeDifferencer</b>
-to perform a textual, line-by-line comparison of two (or three) input documents.
-For text lines that differ the <b>TextMergeViewer</b> uses an <b>ITokenComparator</b>
-to find longest sequences of matching and non-matching tokens.
-The <b>TextMergeViewer</b>'s
-default token compare works on characters separated by whitespace. If a
-different strategy is needed (for example, Java tokens in a Java-aware
-merge viewer), clients can create their own token comparators by implementing
-the <b>ITokenComparator</b> interface.
-<p>The <b>TextMergeViewer</b> not only works on whole documents but on
-subranges of documents too. In this case the viewer's input must be an
-<b>IDocumentRange</b> instead of an <b>IDocument</b>.
-
-</body>
-</html>
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/AbstractViewer.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/AbstractViewer.java
deleted file mode 100644
index d6c2021..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/AbstractViewer.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.Viewer;
-
-
-public abstract class AbstractViewer extends Viewer {
-
-	public void setInput(Object input) {
-	}
-	
-	public Object getInput() {
-		return null;
-	}
-	
-	public ISelection getSelection() {
-		return null;
-	}
-	
-	public void setSelection(ISelection s, boolean reveal) {
-	}
-	
-	public void refresh() {
-	}
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/AddFromHistoryAction.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/AddFromHistoryAction.java
deleted file mode 100644
index 4f43866..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/AddFromHistoryAction.java
+++ /dev/null
@@ -1,143 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import java.util.ResourceBundle;
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.swt.widgets.Shell;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.dialogs.ProgressMonitorDialog;
-
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-import org.eclipse.ui.IActionDelegate;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.*;
-
-
-public class AddFromHistoryAction implements IActionDelegate {
-	
-	private static final String BUNDLE_NAME= "org.eclipse.compare.internal.AddFromHistoryAction"; //$NON-NLS-1$
-
-	private ISelection fSelection;
-	
-	public AddFromHistoryAction() {
-	}
-	
-	public void selectionChanged(IAction a, ISelection s) {
-		fSelection= s;
-	}
-
-	public void run(IAction action) {
-			
-		ResourceBundle bundle= ResourceBundle.getBundle(BUNDLE_NAME);
-		String title= Utilities.getString(bundle, "title"); //$NON-NLS-1$
-			
-		Shell parentShell= CompareUIPlugin.getShell();
-		AddFromHistoryDialog dialog= null;
-
-		Object[] s= Utilities.getResources(fSelection);
-		
-		for (int i= 0; i < s.length; i++) {
-			Object o= s[i];
-			if (o instanceof IContainer) {
-				IContainer container= (IContainer) o;
-				
-				ProgressMonitorDialog pmdialog= new ProgressMonitorDialog(parentShell);	
-				IProgressMonitor pm= pmdialog.getProgressMonitor();
-				IFile[] states= null;
-				try {
-					states= container.findDeletedMembersWithHistory(IContainer.DEPTH_INFINITE, pm);
-				} catch (CoreException ex) {
-					pm.done();
-				}
-		
-				if (states == null || states.length <= 0) {
-					String msg= Utilities.getString(bundle, "noLocalHistoryError"); //$NON-NLS-1$
-					MessageDialog.openInformation(parentShell, title, msg);
-					return;
-				}
-		
-				if (dialog == null) {
-					dialog= new AddFromHistoryDialog(parentShell, bundle);
-					dialog.setHelpContextId(ICompareContextIds.ADD_FROM_HISTORY_DIALOG);
-				}
-					
-				if (dialog.select(container, states)) {		
-							
-					AddFromHistoryDialog.HistoryInput[] selected= dialog.getSelected();				
-
-					if (selected != null && selected.length > 0) {	
-						try {
-							updateWorkspace(bundle, parentShell, selected);
-	
-						} catch (InterruptedException x) {
-							// Do nothing. Operation has been canceled by user.
-							
-						} catch (InvocationTargetException x) {
-							String reason= x.getTargetException().getMessage();
-							MessageDialog.openError(parentShell, title, Utilities.getFormattedString(bundle, "replaceError", reason));	//$NON-NLS-1$
-						}
-					}
-				}
-			}
-		}
-	}
-	
-	void createContainers(IResource resource) throws CoreException {
-		IContainer container= resource.getParent();
-		if (container instanceof IFolder) {
-			IFolder parent= (IFolder) container;
-			if (parent != null && !parent.exists()) {
-				createContainers(parent);
-				parent.create(false, true, null);
-			}
-		}
-	}
-	
-	private void updateWorkspace(final ResourceBundle bundle, Shell shell,
-					final AddFromHistoryDialog.HistoryInput[] selected)
-									throws InvocationTargetException, InterruptedException {
-		
-		WorkspaceModifyOperation operation= new WorkspaceModifyOperation() {
-			public void execute(IProgressMonitor pm) throws InvocationTargetException {
-				try {
-					String taskName= Utilities.getString(bundle, "taskName"); //$NON-NLS-1$
-					pm.beginTask(taskName, selected.length);
-					
-					for (int i= 0; i < selected.length; i++) {
-						IFile file= selected[i].fFile;
-						IFileState fileState= selected[i].fFileState;
-						createContainers(file);
-						
-						SubProgressMonitor subMonitor= new SubProgressMonitor(pm, 1);
-						try {
-							file.create(fileState.getContents(), false, subMonitor);
-						} finally {
-							subMonitor.done();
-						}
-					}
-				} catch (CoreException e) {
-					throw new InvocationTargetException(e);
-				} finally {
-					pm.done();
-				}
-			}
-		};
-		
-		ProgressMonitorDialog pmdialog= new ProgressMonitorDialog(shell);				
-		pmdialog.run(false, true, operation);									
-	}
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/AddFromHistoryAction.properties b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/AddFromHistoryAction.properties
deleted file mode 100644
index e252071..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/AddFromHistoryAction.properties
+++ /dev/null
@@ -1,45 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-# @(#)AddFromHistoryAction.properties
-#
-# Resources for AddFromHistoryAction.java
-
-title= Restore from Local History
-
-memberPaneTitle= {0} - Available Files in Local History:
-
-treeTitleFormat= Local History of ''{0}''
-dateIcon= obj16/day_obj.gif
-timeIcon= obj16/resource_obj.gif
-
-memberDescription= Check files to restore from the local history:
-editionDescription= Select an edition of a file:
-
-treeFormat= {0}
-workspaceTreeFormat= {0} (Workspace File)
-parseErrorFormat= {0} (Parse Error)
-
-editionLabel= Local History ({0})
-workspaceEditionLabel= Workspace File
-
-targetLabel= {0}
-
-todayFormat= Today ({0})
-yesterdayFormat= Yesterday ({0})
-dayFormat= {0}
-
-buttonLabel= Restore
-
-noLocalHistoryError= No deleted resources in local history for selected container.
-replaceError=Can''t replace resource (reason: {0}).
-
-taskName=Restoring
\ No newline at end of file
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/AddFromHistoryDialog.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/AddFromHistoryDialog.java
deleted file mode 100644
index 028bb02..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/AddFromHistoryDialog.java
+++ /dev/null
@@ -1,463 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import java.io.*;
-import java.text.*;
-import java.util.*;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-
-import org.eclipse.jface.dialogs.*;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.Viewer;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.*;
-
-import org.eclipse.compare.*;
-
-
-public class AddFromHistoryDialog extends ResizableDialog {
-	
-	static class HistoryInput implements ITypedElement, IStreamContentAccessor, IModificationDate {
-		IFile fFile;
-		IFileState fFileState;
-		
-		HistoryInput(IFile file, IFileState fileState) {
-			fFile= file;
-			fFileState= fileState;
-		}
-		public InputStream getContents() throws CoreException {
-			return new BufferedInputStream(fFileState.getContents());
-		}
-		public String getName() {
-			return fFile.getName();
-		}
-		public String getType() {
-			return fFile.getFileExtension();
-		}
-		public Image getImage() {
-			return CompareUI.getImage(fFile);
-		}
-		public long getModificationDate() {
-			return fFileState.getModificationTime();
-		}
-	}
-	
-	static class FileHistory {
-		private IFile fFile;
-		private IFileState[] fStates;
-		private int fSelected;
-		
-		FileHistory(IFile file) {
-			fFile= file;
-		}
-		
-		IFile getFile() {
-			return fFile;
-		}
-		
-		IFileState[] getStates() {
-			if (fStates == null) {
-				try {
-					fStates= fFile.getHistory(new NullProgressMonitor());
-				} catch (CoreException ex) {
-				}
-			}
-			return fStates;
-		}
-		
-		IFileState getSelectedState() {
-			return getStates()[fSelected];
-		}
-		
-		void setSelected(IFileState state) {
-			for (int i= 0; i < fStates.length; i++) {
-				if (fStates[i] == state) {
-					fSelected= i;
-					return;
-				}
-			}
-		}
-		
-		HistoryInput getHistoryInput() {
-			return new HistoryInput(fFile, getSelectedState());
-		}
-		
-		boolean isSelected(int index) {
-			return index == fSelected;
-		}
-	}
-
-	private CompareConfiguration fCompareConfiguration;
-	private ArrayList fArrayList= new ArrayList();
-	private FileHistory fCurrentFileHistory;
-
-	// SWT controls
-	private CompareViewerSwitchingPane fContentPane;
-	private Button fCommitButton;
-	private Table fMemberTable;
-	private CompareViewerPane fMemberPane;
-	private Tree fEditionTree;
-	private CompareViewerPane fEditionPane;
-	private Image fDateImage;
-	private Image fTimeImage;
-
-
-	public AddFromHistoryDialog(Shell parent, ResourceBundle bundle) {
-		super(parent, bundle);
-					
-		String iconName= Utilities.getString(fBundle, "dateIcon", "obj16/day_obj.gif"); //$NON-NLS-2$ //$NON-NLS-1$
-		ImageDescriptor id= CompareUIPlugin.getImageDescriptor(iconName);
-		if (id != null)
-			fDateImage= id.createImage();
-		iconName= Utilities.getString(fBundle, "timeIcon", "obj16/resource_obj.gif"); //$NON-NLS-1$ //$NON-NLS-2$
-		id= CompareUIPlugin.getImageDescriptor(iconName);
-		if (id != null)
-			fTimeImage= id.createImage();
-	}
-	
-	public boolean select(IContainer root, IFile[] inputFiles) {
-		
-		create();	// create widgets
-		
-		String format= Utilities.getString(fBundle, "memberPaneTitle");	//$NON-NLS-1$
-		String title= MessageFormat.format(format, new Object[] { root.getName() });
-		fMemberPane.setImage(CompareUI.getImage(root));
-		fMemberPane.setText(title);
-		
-		// sort input files
-		final int count= inputFiles.length;
-		final IFile[] files= new IFile[count];
-		for (int i= 0; i < count; i++)
-			files[i]= (IFile) inputFiles[i];
-		if (count > 1)
-			internalSort(files, 0, count-1);
-			
-		
-		String prefix= root.getFullPath().toString();
-		
-		if (fMemberTable != null && !fMemberTable.isDisposed()) {
-			for (int i= 0; i < files.length; i++) {
-				IFile file= files[i];
-				String path= file.getFullPath().toString();
-				if (path.startsWith(prefix))
-					path= path.substring(prefix.length()+1);
-				TableItem ti= new TableItem(fMemberTable, SWT.NONE);
-				ti.setImage(CompareUI.getImage(file));
-				ti.setText(path);
-				ti.setData(new FileHistory(file));
-			}
-		}
-		
-		open();
-		
-		return (getReturnCode() == OK) && (fArrayList.size() > 0);
-	}
-		
-	HistoryInput[] getSelected() {
-		HistoryInput[] selected= new HistoryInput[fArrayList.size()];
-		Iterator iter= fArrayList.iterator();
-		for (int i= 0; iter.hasNext(); i++) {
-			FileHistory h= (FileHistory) iter.next();
-			selected[i]= h.getHistoryInput();
-		}
-		return selected;
-	}
-				
-	protected synchronized Control createDialogArea(Composite parent2) {
-		
-		Composite parent= (Composite) super.createDialogArea(parent2);
-
-		getShell().setText(Utilities.getString(fBundle, "title")); //$NON-NLS-1$
-		
-		org.eclipse.compare.Splitter vsplitter= new org.eclipse.compare.Splitter(parent,  SWT.VERTICAL);
-		vsplitter.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL
-					| GridData.VERTICAL_ALIGN_FILL | GridData.GRAB_VERTICAL));
-
-		vsplitter.addDisposeListener(
-			new DisposeListener() {
-				public void widgetDisposed(DisposeEvent e) {
-					if (fDateImage != null)
-						fDateImage.dispose();
-					if (fTimeImage != null)
-						fTimeImage.dispose();
-				}
-			}
-		);
-		
-		// we need two panes: the left for the elements, the right one for the editions
-		Splitter hsplitter= new Splitter(vsplitter,  SWT.HORIZONTAL);
-		
-		Composite c= new Composite(hsplitter, SWT.NONE);
-		GridLayout layout= new GridLayout();
-		layout.marginWidth= 0;
-		layout.marginHeight= 2;
-		layout.verticalSpacing= 2;
-		layout.numColumns= 1;
-		c.setLayout(layout);
-		Label l1= new Label(c, SWT.NONE);
-		l1.setText(Utilities.getString(fBundle, "memberDescription"));	//$NON-NLS-1$
-		fMemberPane= new CompareViewerPane(c, SWT.BORDER | SWT.FLAT);
-		GridData gd= new GridData(GridData.FILL_HORIZONTAL | GridData.FILL_VERTICAL);
-		fMemberPane.setLayoutData(gd);
-
-		fMemberTable= new Table(fMemberPane, SWT.CHECK | SWT.H_SCROLL | SWT.V_SCROLL);
-		fMemberTable.addSelectionListener(
-			new SelectionAdapter() {
-				public void widgetSelected(SelectionEvent e) {
-					if (e.detail == SWT.CHECK) {
-						if (e.item instanceof TableItem) {
-							TableItem ti= (TableItem) e.item;
-							if (ti.getChecked())
-								fArrayList.add(ti.getData());
-							else
-								fArrayList.remove(ti.getData());
-								
-							if (fCommitButton != null)
-								fCommitButton.setEnabled(fArrayList.size() > 0);
-						}
-					} else {
-						handleMemberSelect(e.item);
-					}
-				}
-			}
-		);
-				
-		fMemberPane.setContent(fMemberTable);
-		
-		c= new Composite(hsplitter, SWT.NONE);
-		layout= new GridLayout();
-		layout.marginWidth= 0;
-		layout.marginHeight= 2;
-		layout.verticalSpacing= 2;
-		layout.numColumns= 1;
-		c.setLayout(layout);
-		Label l2= new Label(c, SWT.NONE);
-		l2.setText(Utilities.getString(fBundle, "editionDescription"));	//$NON-NLS-1$
-		fEditionPane= new CompareViewerPane(c, SWT.BORDER | SWT.FLAT);
-		gd= new GridData(GridData.FILL_HORIZONTAL | GridData.FILL_VERTICAL);
-		fEditionPane.setLayoutData(gd);
-		
-		fEditionTree= new Tree(fEditionPane, SWT.H_SCROLL | SWT.V_SCROLL);
-		fEditionTree.addSelectionListener(
-			new SelectionAdapter() {
-				public void widgetSelected(SelectionEvent e) {
-					feedContent(e.item);
-				}
-			}
-		);
-		fEditionPane.setContent(fEditionTree);		
-		
-		applyDialogFont(parent); // to avoid applying font to compare viewer
-		fContentPane= new CompareViewerSwitchingPane(vsplitter, SWT.BORDER | SWT.FLAT) {
-			protected Viewer getViewer(Viewer oldViewer, Object input) {
-				return CompareUIPlugin.findContentViewer(oldViewer, input, this, fCompareConfiguration);	
-			}
-		};
-		vsplitter.setWeights(new int[] { 30, 70 });
-		
-		return parent;
-	}
-	
-	/**
-	 * Feeds selection from member viewer to edition viewer.
-	 */
-	private void handleMemberSelect(Widget w) {
-		Object data= null;
-		if (w != null)
-			data= w.getData();
-		if (data instanceof FileHistory) {
-			
-			FileHistory h= (FileHistory) data;
-			fCurrentFileHistory= h;
-			
-			IFile file= h.getFile();
-			IFileState[] states= h.getStates();
-			
-			fEditionPane.setImage(CompareUI.getImage(file));
-			String pattern= Utilities.getString(fBundle, "treeTitleFormat"); //$NON-NLS-1$
-			String title= MessageFormat.format(pattern, new Object[] { file.getName() });
-			fEditionPane.setText(title);
-			
-			if (fEditionTree != null) {
-				fEditionTree.setRedraw(false);
-				fEditionTree.removeAll();
-				for (int i= 0; i < states.length; i++) {
-					addEdition(new HistoryInput(file, states[i]), h.isSelected(i));
-				}
-				fEditionTree.setRedraw(true);
-			}
-		} else
-			fCurrentFileHistory= null;
-	}
-	
-	/**
-	 * Adds the given Pair to the edition tree.
-	 * It takes care of creating tree nodes for different dates.
-	 */
-	private void addEdition(HistoryInput input, boolean isSelected) {
-		if (fEditionTree == null || fEditionTree.isDisposed())
-			return;
-		
-		IFileState state= input.fFileState;
-		
-		// find last day
-		TreeItem[] days= fEditionTree.getItems();
-		TreeItem lastDay= null;
-		if (days.length > 0)
-			lastDay= days[days.length-1];
-						
-		long ldate= state.getModificationTime();		
-		long day= dayNumber(ldate);
-		Date date= new Date(ldate);
-		if (lastDay == null || day != dayNumber(((Date)lastDay.getData()).getTime())) {
-			lastDay= new TreeItem(fEditionTree, SWT.NONE);
-			lastDay.setImage(fDateImage);
-			String df= DateFormat.getDateInstance().format(date);
-			long today= dayNumber(System.currentTimeMillis());
-			
-			String formatKey;
-			if (day == today)
-				formatKey= "todayFormat"; //$NON-NLS-1$
-			else if (day == today-1)
-				formatKey= "yesterdayFormat"; //$NON-NLS-1$
-			else
-				formatKey= "dayFormat"; //$NON-NLS-1$
-			String pattern= Utilities.getString(fBundle, formatKey);
-			if (pattern != null)
-				df= MessageFormat.format(pattern, new String[] { df });
-			lastDay.setText(df);
-			lastDay.setData(date);
-		}
-		TreeItem ti= new TreeItem(lastDay, SWT.NONE);
-		ti.setImage(fTimeImage);
-		ti.setText(DateFormat.getTimeInstance().format(date));
-		ti.setData(input);
-
-		if (isSelected) {
-			lastDay.setExpanded(true);
-			fEditionTree.setSelection(new TreeItem[] { ti });
-			feedContent(ti);
-		}
-	}
-						
-	/**
-	 * Returns the number of s since Jan 1st, 1970.
-	 * The given date is converted to GMT and daylight saving is taken into account too.
-	 */
-	private long dayNumber(long date) {
-		int ONE_DAY_MS= 24*60*60 * 1000; // one day in milli seconds
-		
-		Calendar calendar= Calendar.getInstance();
-		long localTimeOffset= calendar.get(Calendar.ZONE_OFFSET) + calendar.get(Calendar.DST_OFFSET);
-		
-		return (date + localTimeOffset) / ONE_DAY_MS;
-	}
-	
-	/**
-	 * Feeds the tree viewer's selection to the contentviewer
-	 */
-	private void feedContent(Widget w) {
-		if (fContentPane != null && !fContentPane.isDisposed()) {
-			Object o= w.getData();
-			if (o instanceof HistoryInput) {
-				HistoryInput selected= (HistoryInput) o;
-				fContentPane.setInput(selected);
-				fContentPane.setText(getEditionLabel(selected));
-				fContentPane.setImage(fTimeImage);
-				
-				if (fCurrentFileHistory != null)
-					fCurrentFileHistory.setSelected(selected.fFileState);
-			} else {
-				fContentPane.setInput(null);
-			}
-		}
-	}
-	
-	protected String getEditionLabel(HistoryInput input) {
-		String format= Utilities.getString(fBundle, "historyEditionLabel", null);	//$NON-NLS-1$
-		if (format == null)
-			format= Utilities.getString(fBundle, "editionLabel");	//$NON-NLS-1$
-		if (format == null)
-			format= "x{0}";	//$NON-NLS-1$
-		
-		long modDate= input.getModificationDate();
-		String date= DateFormat.getDateTimeInstance().format(new Date(modDate));
-		
-		return MessageFormat.format(format, new Object[] { date });
-	}
-			
-	/* (non-Javadoc)
-	 * Method declared on Dialog.
-	 */
-	protected void createButtonsForButtonBar(Composite parent) {
-		String buttonLabel= Utilities.getString(fBundle, "buttonLabel", IDialogConstants.OK_LABEL); //$NON-NLS-1$
-		// a 'Cancel' and a 'Add' button
-		fCommitButton= createButton(parent, IDialogConstants.OK_ID, buttonLabel, true);
-		fCommitButton.setEnabled(false);
-		createButton(parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, false);
-	}
-	
-	/**
-	 * Returns true if the pathname of f1 comes after f2
-	 */
-	private static boolean greaterThan(IFile f1, IFile f2) {
-		String[] ss1= f1.getFullPath().segments();
-		String[] ss2= f2.getFullPath().segments();
-		int l1= ss1.length;
-		int l2= ss2.length;
-		int n= Math.max(l1, l2);
-		
-		for (int i= 0; i < n; i++) {
-			String s1= i < l1 ? ss1[i] : ""; //$NON-NLS-1$
-			String s2= i < l2 ? ss2[i] : ""; //$NON-NLS-1$
-			int rc= s1.compareToIgnoreCase(s2);
-			if (rc != 0)
-				return rc < 0;
-		}
-		return false;
-	}
-	
-	private static void internalSort(IFile[] keys, int left, int right) { 
-	
-		int original_left= left;
-		int original_right= right;
-		
-		IFile mid= keys[(left + right) / 2]; 
-		do { 
-			while (greaterThan(keys[left], mid))
-				left++; 
-			
-			while (greaterThan(mid, keys[right]))
-				right--; 
-		
-			if (left <= right) { 
-				IFile tmp= keys[left]; 
-				keys[left]= keys[right]; 
-				keys[right]= tmp;			
-				left++; 
-				right--; 
-			} 
-		} while (left <= right);
-		
-		if (original_left < right)
-			internalSort(keys, original_left, right); 
-		
-		if (left < original_right)
-			internalSort(keys, left, original_right); 
-	}
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/BinaryCompareViewer.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/BinaryCompareViewer.java
deleted file mode 100644
index c9d673e..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/BinaryCompareViewer.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import java.io.*;
-import java.util.ResourceBundle;
-import java.text.MessageFormat;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.help.WorkbenchHelp;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.compare.*;
-import org.eclipse.compare.structuremergeviewer.ICompareInput;
-
-/**
- * A simple compare viewer for binary files.
- * Shows the position of the first non-matching byte.
- */
-public class BinaryCompareViewer extends AbstractViewer {
-
-	private static final String BUNDLE_NAME= "org.eclipse.compare.internal.BinaryCompareViewerResources"; //$NON-NLS-1$
-
-	private static final int EOF= -1;
-	private Text fControl;
-	private ICompareInput fInput;
-	private ResourceBundle fBundle;
-	private boolean fLeftIsLocal;
-	
-	
-	public BinaryCompareViewer(Composite parent, CompareConfiguration cc) {
-		
-		WorkbenchHelp.setHelp(parent, ICompareContextIds.BINARY_COMPARE_VIEW);
-
-		fBundle= ResourceBundle.getBundle(BUNDLE_NAME);
-
-		fControl= new Text(parent, SWT.NONE);
-		fControl.setEditable(false);
-		fControl.setData(CompareUI.COMPARE_VIEWER_TITLE, Utilities.getString(fBundle, "title")); //$NON-NLS-1$
-		
-		fLeftIsLocal= Utilities.getBoolean(cc, "LEFT_IS_LOCAL", false); //$NON-NLS-1$
-	}
-
-	public Control getControl() {
-		return fControl;
-	}
-
-	public void setInput(Object input) {
-		if (fControl != null && input instanceof ICompareInput) {
-			fInput= (ICompareInput) input;
-			
-			InputStream left= null;
-			InputStream right= null;
-			
-			String message= null;
-			try {
-				left= getStream(fInput.getLeft());
-				right= getStream(fInput.getRight());
-				
-				if (left != null && right != null) {
-					int pos= 0;
-					while (true) {
-						int l= left.read();
-						int r= right.read();
-						if (l != r) {
-							String format= Utilities.getString(fBundle, "diffMessageFormat"); //$NON-NLS-1$
-							message= MessageFormat.format(format, new String[] { Integer.toString(pos) } );
-							break;
-						}
-						if (l == EOF)
-							break;
-						pos++;
-					}
-				} else if (left == null && right == null) {
-					message= Utilities.getString(fBundle, "deleteConflictMessage"); //$NON-NLS-1$
-				} else if (left == null) {
-					if (fLeftIsLocal)
-						message= Utilities.getString(fBundle, "deletedMessage"); //$NON-NLS-1$
-					else
-						message= Utilities.getString(fBundle, "addedMessage"); //$NON-NLS-1$
-				} else if (right == null) {
-					if (fLeftIsLocal)
-						message= Utilities.getString(fBundle, "addedMessage"); //$NON-NLS-1$
-					else
-						message= Utilities.getString(fBundle, "deletedMessage"); //$NON-NLS-1$
-				}
-			} catch (CoreException ex) {
-				message= Utilities.getString(fBundle, "errorMessage"); //$NON-NLS-1$
-			} catch (IOException ex) {
-				message= Utilities.getString(fBundle, "errorMessage"); //$NON-NLS-1$
-			} finally {
-				if (left != null) {
-					try {
-						left.close();
-					} catch (IOException ex) {
-					}
-				}
-				if (right != null) {
-					try {
-						right.close();
-					} catch (IOException ex) {
-					}
-				}			
-			}
-			if (message != null)
-				fControl.setText(message);				
-		}
-	}
-
-	public Object getInput() {
-		return fInput;
-	}
-
-	private InputStream getStream(ITypedElement input) throws CoreException {
-		if (input instanceof IStreamContentAccessor)
-			return ((IStreamContentAccessor)input).getContents();
-		return null;
-	}
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/BinaryCompareViewerCreator.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/BinaryCompareViewerCreator.java
deleted file mode 100644
index 8c98ec6..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/BinaryCompareViewerCreator.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.jface.viewers.Viewer;
-
-import org.eclipse.compare.*;
-
-/**
- * A factory object for the <code>BinaryCompareViewer</code>.
- * This indirection is necessary because only objects with a default
- * constructor can be created via an extension point
- * (this precludes Viewers).
- */
-public class BinaryCompareViewerCreator implements IViewerCreator {
-
-	public Viewer createViewer(Composite parent, CompareConfiguration mp) {
-		return new BinaryCompareViewer(parent, mp);
-	}
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/BinaryCompareViewerResources.properties b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/BinaryCompareViewerResources.properties
deleted file mode 100644
index dbfc7d7..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/BinaryCompareViewerResources.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-# @(#)BinaryCompareViewerResources.properties
-#
-# Resource strings for BinaryCompareViewer.java
-
-title= Binary Compare
-
-diffMessageFormat= First bytes differ at position {0}
-deleteConflictMessage= Delete Conflict
-addedMessage= Added Resource
-deletedMessage= Removed Resource
-errorMessage= Internal Error
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/BufferedCanvas.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/BufferedCanvas.java
deleted file mode 100644
index 79b3425..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/BufferedCanvas.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.events.*;
-
-/**
- * A Canvas which reduces flicker by drawing in an off screen buffer.
- */
-public abstract class BufferedCanvas extends Canvas {
-
-	//private static final boolean USE_DOUBLE_BUFFER= !"carbon".equals(SWT.getPlatform()); //$NON-NLS-1$
-	private static final boolean USE_DOUBLE_BUFFER= true;
-	
-	/** The drawable for double buffering */
-	Image fBuffer;
-
-	public BufferedCanvas(Composite parent, int flags) {
-		super(parent, flags + SWT.NO_BACKGROUND);
-
-		addPaintListener(
-			new PaintListener() {
-				public void paintControl(PaintEvent event) {
-					doubleBufferPaint(event.gc);
-				}
-			}
-		);
-
-		addDisposeListener(
-			new DisposeListener() {
-				public void widgetDisposed(DisposeEvent e) {
-					if (fBuffer != null) {
-						fBuffer.dispose();
-						fBuffer= null;
-					}
-				}
-			}
-		);
-	}
-
-	public void repaint() {
-		if (!isDisposed()) {
-			GC gc= new GC(this);
-			doubleBufferPaint(gc);
-			gc.dispose();
-		}
-	}
-
-	/**
-	 * Double buffer drawing.
-	 */
-	void doubleBufferPaint(GC dest) {
-		
-		if (!USE_DOUBLE_BUFFER) {
-			doPaint(dest);
-			return;
-		}
-
-		Point size= getSize();
-
-		if (size.x <= 1 || size.y <= 1) // we test for <= 1 because on X11 controls have initial size 1,1
-			return;
-
-		if (fBuffer != null) {
-			Rectangle r= fBuffer.getBounds();
-			if (r.width != size.x || r.height != size.y) {
-				fBuffer.dispose();
-				fBuffer= null;
-			}
-		}
-		if (fBuffer == null)
-			fBuffer= new Image(getDisplay(), size.x, size.y);
-
-		GC gc= new GC(fBuffer);
-		try {
-			gc.setBackground(getBackground());
-			gc.fillRectangle(0, 0, size.x, size.y);
-			doPaint(gc);
-		} finally {
-			gc.dispose();
-		}
-
-		dest.drawImage(fBuffer, 0, 0);
-	}
-
-	abstract public void doPaint(GC gc);
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/BufferedResourceNode.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/BufferedResourceNode.java
deleted file mode 100644
index 9c5db3d..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/BufferedResourceNode.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import java.io.*;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.compare.*;
-import org.eclipse.compare.structuremergeviewer.IStructureComparator;
-
-/**
- * A buffer for a workspace resource.
- */
-public class BufferedResourceNode extends ResourceNode {
-	
-	private boolean fDirty= false;
-	private IFile fDeleteFile;
-		
-	/**
-	 * Creates a <code>ResourceNode</code> for the given resource.
-	 *
-	 * @param resource the resource
-	 */
-	public BufferedResourceNode(IResource resource) {
-		super(resource);
-	}
-			
-	protected IStructureComparator createChild(IResource child) {
-		return new BufferedResourceNode(child);
-	}
-		
-	public void setContent(byte[] contents) {
-		fDirty= true;
-		super.setContent(contents);
-	}	
-
-	/**
-	 * Commits buffered contents to resource.
-	 */
-	public void commit(IProgressMonitor pm) throws CoreException {
-		if (fDirty) {
-			
-			if (fDeleteFile != null) {
-				fDeleteFile.delete(true, true, pm);
-				return;
-			}
-			
-			IResource resource= getResource();
-			if (resource instanceof IFile) {
-				ByteArrayInputStream is= new ByteArrayInputStream(getContent());
-				try {
-					IFile file= (IFile) resource;
-					if (file.exists())
-						file.setContents(is, false, true, pm);
-					else
-						file.create(is, false, pm);
-					fDirty= false;
-				} finally {
-					if (is != null)
-						try {
-							is.close();
-						} catch(IOException ex) {
-						}
-				}
-			}
-		}
-	}
-	
-	public ITypedElement replace(ITypedElement child, ITypedElement other) {
-		
-		if (child == null) {	// add resource
-			// create a node without a resource behind it!
-			IResource resource= getResource();
-			if (resource instanceof IFolder) {
-				IFolder folder= (IFolder) resource;
-				IFile file= folder.getFile(other.getName());
-				child= new BufferedResourceNode(file);
-			}
-		}
-		
-		if (other == null) {	// delete resource
-			IResource resource= getResource();
-			if (resource instanceof IFolder) {
-				IFolder folder= (IFolder) resource;
-				IFile file= folder.getFile(child.getName());
-				if (file != null && file.exists()) {
-					fDeleteFile= file;
-					fDirty= true;
-				}
-			}
-			return null;
-		}
-		
-		if (other instanceof IStreamContentAccessor && child instanceof IEditableContent) {
-			IEditableContent dst= (IEditableContent) child;
-			
-			try {
-				InputStream is= ((IStreamContentAccessor)other).getContents();
-				byte[] bytes= Utilities.readBytes(is);
-				if (bytes != null)
-					dst.setContent(bytes);
-			} catch (CoreException ex) {
-			}
-		}
-		return child;
-	}
-}
-
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ChangePropertyAction.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ChangePropertyAction.java
deleted file mode 100644
index 824ed3e..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ChangePropertyAction.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import java.util.ResourceBundle;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.compare.CompareConfiguration;
-
-/**
- * Toggles a boolean property of an <code>ICompareConfiguration</code>.
- */
-public class ChangePropertyAction extends Action {
-
-	private CompareConfiguration fCompareConfiguration;
-	private String fPropertyKey;
-	private ResourceBundle fBundle;
-	private String fPrefix;
-
-
-	public ChangePropertyAction(ResourceBundle bundle, CompareConfiguration cc, String rkey, String pkey) {
-		fPropertyKey= pkey;
-		fBundle= bundle;
-		fPrefix= rkey;
-		Utilities.initAction(this, fBundle, fPrefix);
-		setCompareConfiguration(cc);
-	}
-
-	public void run() {
-		boolean b= !Utilities.getBoolean(fCompareConfiguration, fPropertyKey, false);
-		setChecked(b);
-		if (fCompareConfiguration != null)
-			fCompareConfiguration.setProperty(fPropertyKey, new Boolean(b));
-	}
-
-	public void setChecked(boolean state) {
-		super.setChecked(state);
-		Utilities.initToggleAction(this, fBundle, fPrefix, state);
-	}
-	
-	public void setCompareConfiguration(CompareConfiguration cc) {
-		fCompareConfiguration= cc;
-		setChecked(Utilities.getBoolean(fCompareConfiguration, fPropertyKey, false));
-	}
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ColorEditor.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ColorEditor.java
deleted file mode 100644
index 787c3fb..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ColorEditor.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.ColorDialog;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-
-import org.eclipse.jface.resource.JFaceResources;
-
-/**
- * A "button" of a certain color determined by the color picker.
- */
-public class ColorEditor {
-	
-	private Point fExtent;
-	private Image fImage;
-	private RGB fColorValue;
-	private Color fColor;
-	private Button fButton;
-	
-	public ColorEditor(Composite parent) {
-		
-		fButton= new Button(parent, SWT.PUSH);
-		fExtent= computeImageSize(parent);
-		fImage= new Image(parent.getDisplay(), fExtent.x, fExtent.y);
-		
-		GC gc= new GC(fImage);
-		gc.setBackground(fButton.getBackground());
-		gc.fillRectangle(0, 0, fExtent.x, fExtent.y);
-		gc.dispose();
-		
-		fButton.setImage(fImage);
-		fButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent event) {
-				ColorDialog colorDialog= new ColorDialog(fButton.getShell());
-				colorDialog.setRGB(fColorValue);
-				RGB newColor = colorDialog.open();
-				if (newColor != null) {
-					fColorValue= newColor;
-					updateColorImage();
-				}
-			}
-		});
-		
-		fButton.addDisposeListener(new DisposeListener() {
-			public void widgetDisposed(DisposeEvent event) {
-				if (fImage != null)  {
-					fImage.dispose();
-					fImage= null;
-				}
-				if (fColor != null) {
-					fColor.dispose();
-					fColor= null;
-				}
-			}
-		});
-	}
-	
-	public RGB getColorValue() {
-		return fColorValue;
-	}
-	
-	public void setColorValue(RGB rgb) {
-		fColorValue= rgb;
-		updateColorImage();
-	}
-	
-	public Button getButton() {
-		return fButton;
-	}
-	
-	protected void updateColorImage() {
-		
-		Display display= fButton.getDisplay();
-		
-		GC gc= new GC(fImage);
-		gc.setForeground(display.getSystemColor(SWT.COLOR_BLACK));
-		gc.drawRectangle(0, 2, fExtent.x - 1, fExtent.y - 4);
-		
-		if (fColor != null)
-			fColor.dispose();
-			
-		fColor= new Color(display, fColorValue);
-		gc.setBackground(fColor);
-		gc.fillRectangle(1, 3, fExtent.x - 2, fExtent.y - 5);
-		gc.dispose();
-		
-		fButton.setImage(fImage);
-	}
-	
-	protected Point computeImageSize(Control window) {
-		GC gc= new GC(window);
-		Font f= JFaceResources.getFontRegistry().get(JFaceResources.DEFAULT_FONT);
-		gc.setFont(f);
-		int height= gc.getFontMetrics().getHeight();
-		gc.dispose();
-		Point p= new Point(height * 3 - 6, height);
-		return p;
-	}
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareAction.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareAction.java
deleted file mode 100644
index d502e93..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareAction.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-
-import org.eclipse.ui.IObjectActionDelegate;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.compare.CompareConfiguration;
-import org.eclipse.compare.CompareUI;
-
-
-/*
- * The "Compare with each other" action
- */
-public class CompareAction implements IObjectActionDelegate {
-
-	private ResourceCompareInput fInput;
-	private IWorkbenchPage fWorkbenchPage;
-	private ISelection fSelection;
-
-	public void run(IAction action) {
-		if (fInput != null) {
-			fInput.setSelection(fSelection);
-			fInput.initializeCompareConfiguration();
-			CompareUI.openCompareEditorOnPage(fInput, fWorkbenchPage);
-			fInput= null;	// don't reuse this input!
-		}
-	}
-
-	public void selectionChanged(IAction action, ISelection selection) {
-		if (fInput == null) {
-			CompareConfiguration cc= new CompareConfiguration();
-			// buffered merge mode: don't ask for confirmation
-			// when switching between modified resources
-			cc.setProperty(CompareEditor.CONFIRM_SAVE_PROPERTY, new Boolean(false));
-						
-			fInput= new ResourceCompareInput(cc);
-		}
-		fSelection= selection;
-		action.setEnabled(fInput.isEnabled(selection));
-	}
-
-	public void setActivePart(IAction action, IWorkbenchPart targetPart) {
-		fWorkbenchPage= targetPart.getSite().getPage();
-	}
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareDialog.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareDialog.java
deleted file mode 100644
index 335a023..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareDialog.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.compare.CompareEditorInput;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.OperationCanceledException;
-
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.dialogs.ProgressMonitorDialog;
-import org.eclipse.jface.util.Assert;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Shell;
-
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-
-
-public class CompareDialog extends ResizableDialog implements IPropertyChangeListener {
-		
-	private CompareEditorInput fCompareEditorInput;
-	private Button fCommitButton;
-
-
-	CompareDialog(Shell shell, CompareEditorInput input) {
-		super(shell, null);
-		
-		Assert.isNotNull(input);
-		fCompareEditorInput= input;
-		fCompareEditorInput.addPropertyChangeListener(this);
-		setHelpContextId(ICompareContextIds.COMPARE_DIALOG);
-	}
-	
-	public boolean close() {
-		if (super.close()) {
-			if (fCompareEditorInput != null)
-				fCompareEditorInput.addPropertyChangeListener(this);
-			return true;
-		}
-		return false;
-	}
-	
-	/* (non-Javadoc)
-	 * Method declared on Dialog.
-	 */
-	protected void createButtonsForButtonBar(Composite parent) {
-		fCommitButton= createButton(parent, IDialogConstants.OK_ID, Utilities.getString("CompareDialog.commitAction.label"), true); //$NON-NLS-1$
-		fCommitButton.setEnabled(false);
-		createButton(parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, false);
-	}
-
-	public void propertyChange(PropertyChangeEvent event) {
-		if (fCommitButton != null && fCompareEditorInput != null)
-			fCommitButton.setEnabled(fCompareEditorInput.isSaveNeeded());
-	}
-	
-	/* (non-Javadoc)
-	 * Method declared on Dialog.
-	 */
-	protected Control createDialogArea(Composite parent2) {
-						
-		Composite parent= (Composite) super.createDialogArea(parent2);
-
-		Control c= fCompareEditorInput.createContents(parent);
-		c.setLayoutData(new GridData(GridData.FILL_BOTH));
-		
-		Shell shell= c.getShell();
-		shell.setText(fCompareEditorInput.getTitle());
-		shell.setImage(fCompareEditorInput.getTitleImage());
-		applyDialogFont(parent);
-		return parent;
-	}
-		
-	/* (non-Javadoc)
-	 * Method declared on Window.
-	 */
-	public int open() {
-		
-		int rc= super.open();
-		
-		if (rc == OK && fCompareEditorInput.isSaveNeeded()) {
-						
-			WorkspaceModifyOperation operation= new WorkspaceModifyOperation() {
-				public void execute(IProgressMonitor pm) throws CoreException {
-					fCompareEditorInput.saveChanges(pm);
-				}
-			};
-						
-			Shell shell= getParentShell();
-			ProgressMonitorDialog pmd= new ProgressMonitorDialog(shell);				
-			try {
-				operation.run(pmd.getProgressMonitor());				
-				
-			} catch (InterruptedException x) {
-			} catch (OperationCanceledException x) {
-			} catch (InvocationTargetException x) {
-				String title= Utilities.getString("CompareDialog.saveErrorTitle"); //$NON-NLS-1$
-				String msg= Utilities.getString("CompareDialog.saveErrorMessage"); //$NON-NLS-1$
-				MessageDialog.openError(shell, title, msg + x.getTargetException().getMessage());
-			}
-		}
-		
-		return rc;
-	}
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareEditor.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareEditor.java
deleted file mode 100644
index 8342461..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareEditor.java
+++ /dev/null
@@ -1,232 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.*;
-
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.util.*;
-
-import org.eclipse.ui.*;
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-import org.eclipse.ui.help.WorkbenchHelp;
-import org.eclipse.ui.part.EditorPart;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.runtime.*;
-
-import org.eclipse.compare.*;
-
-
-/**
- * A CompareEditor takes a ICompareEditorInput as input.
- * Most functionality is delegated to the ICompareEditorInput.
- */
-public class CompareEditor extends EditorPart implements IReusableEditor {
-	
-	/**
-	 * Internal property change listener for handling changes in the editor's input.
-	 */
-	class PropertyChangeListener implements IPropertyChangeListener {
-		/*
-		 * @see IPropertyChangeListener#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
-		 */
-		public void propertyChange(PropertyChangeEvent event) {
-			CompareEditor.this.propertyChange(event);
-		}
-	};
-
-	public final static String CONFIRM_SAVE_PROPERTY= "org.eclipse.compare.internal.CONFIRM_SAVE_PROPERTY"; //$NON-NLS-1$
-	
-	private IActionBars fActionBars;
-	/** The editor's property change listener. */
-	private IPropertyChangeListener fPropertyChangeListener= new PropertyChangeListener();
-	/** the SWT control */
-	private Control fControl;
-	
-	
-	public CompareEditor() {
-	}
-		
-	/* package */ CompareConfiguration getCompareConfiguration() {
-		IEditorInput input= getEditorInput();
-		if (input instanceof CompareEditorInput)
-			return ((CompareEditorInput)input).getCompareConfiguration();
-		return null;
-	}
-				
-	public void init(IEditorSite site, IEditorInput input) throws PartInitException {
-		
-		if (!(input instanceof CompareEditorInput))
-			throw new PartInitException(Utilities.getString("CompareEditor.invalidInput")); //$NON-NLS-1$
-				
-		setSite(site);
-		setInput(input);
-	}
-	
-	public void setInput(IEditorInput input) {
-		try {
-			doSetInput(input);			
-		} catch (CoreException x) {
-			String title= Utilities.getString("CompareEditor.error.setinput.title"); //$NON-NLS-1$
-			String msg= Utilities.getString("CompareEditor.error.setinput.message"); //$NON-NLS-1$
-			ErrorDialog.openError(getSite().getShell(), title, msg, x.getStatus());
-		}				
-	}
-	
-	public void doSetInput(IEditorInput input) throws CoreException {
-	
-		if (!(input instanceof CompareEditorInput)) {
-			IStatus s= new Status(IStatus.ERROR, PlatformUI.PLUGIN_ID, IStatus.OK, Utilities.getString("CompareEditor.invalidInput"), null); //$NON-NLS-1$
-			throw new CoreException(s);
-		}
-
-		IEditorInput oldInput= getEditorInput();
-		if (oldInput instanceof IPropertyChangeNotifier)
-			((IPropertyChangeNotifier)input).removePropertyChangeListener(fPropertyChangeListener);
-			
-		super.setInput(input);
-		
-		CompareEditorInput cei= (CompareEditorInput) input;
-
-		setTitleImage(cei.getTitleImage());
-		setTitle(cei.getTitle());
-				
-		if (input instanceof IPropertyChangeNotifier)
-			((IPropertyChangeNotifier)input).addPropertyChangeListener(fPropertyChangeListener);
-			
-		if (oldInput != null) {
-			if (fControl != null && !fControl.isDisposed()) {
-				Point oldSize= fControl.getSize();
-				Composite parent= fControl.getParent();
-				fControl.dispose();
-				createPartControl(parent);
-				if (fControl != null)
-					fControl.setSize(oldSize);
-			}
-		}
-	}
-	
-	public IActionBars getActionBars() {
-		return fActionBars;
-	}
-	
-	public void setActionBars(IActionBars actionBars) {
-		fActionBars= actionBars;
-	}
-	
-	/*
-	 * @see IDesktopPart#createPartControl(Composite)
-	 */
-	public void createPartControl(Composite parent) {
-		parent.setData(this);
-		
-		IEditorInput input= getEditorInput();
-		if (input instanceof CompareEditorInput) {
-			fControl= ((CompareEditorInput) input).createContents(parent);
-			WorkbenchHelp.setHelp(fControl, ICompareContextIds.COMPARE_EDITOR);
-		}
-	}
-	
-	/*
-	 * @see DesktopPart#dispose
-	 */
-	public void dispose() {
-	
-		IEditorInput input= getEditorInput();
-		if (input instanceof IPropertyChangeNotifier)
-			((IPropertyChangeNotifier)input).removePropertyChangeListener(fPropertyChangeListener);
-								
-		super.dispose();
-		
-		fPropertyChangeListener= null;
-	}
-			
-	/*
-	 * @see IDesktopPart#setFocus
-	 */
-	public void setFocus() {
-		IEditorInput input= getEditorInput();
-		if (input instanceof CompareEditorInput)
-			((CompareEditorInput)input).setFocus();
-	}
-	
-	/**
-	 * Returns false because the editor doesn't support "Save As...".
-	 */
-	public boolean isSaveAsAllowed() {
-		return false;
-	}
-	
-	public void gotoMarker(IMarker marker) {
-	}
-	
-	/**
-	 * Always throws an AssertionFailedException.
-	 */
-	/*
-	 * @see IEditorPart#doSaveAs()
-	 */
-	public void doSaveAs() {
-		Assert.isTrue(false); // Save As not supported for CompareEditor
-	}
-	
-	/*
-	 * @see IEditorPart#doSave()
-	 */
-	public void doSave(IProgressMonitor progressMonitor) {
-		
-		final IEditorInput input= getEditorInput();
-		
-		WorkspaceModifyOperation operation= new WorkspaceModifyOperation() {
-			public void execute(IProgressMonitor pm) throws CoreException {
-				if (input instanceof CompareEditorInput)
-					((CompareEditorInput)input).saveChanges(pm);
-			}
-		};
-
-		Shell shell= getSite().getShell();
-		
-		try {
-			
-			operation.run(progressMonitor);
-									
-			firePropertyChange(PROP_DIRTY);
-			
-		} catch (InterruptedException x) {
-		} catch (OperationCanceledException x) {
-		} catch (InvocationTargetException x) {
-			String title= Utilities.getString("CompareEditor.saveError.title"); //$NON-NLS-1$
-			String reason= x.getTargetException().getMessage();
-			MessageDialog.openError(shell, title, Utilities.getFormattedString("CompareEditor.cantSaveError", reason));	//$NON-NLS-1$
-		}
-	}	
-		
-	/*
-	 * @see IEditorPart#isDirty()
-	 */
-	public boolean isDirty() {
-		IEditorInput input= getEditorInput();
-		if (input instanceof CompareEditorInput)
-			return ((CompareEditorInput)input).isSaveNeeded();
-		return false;
-	}
-	
-	public void propertyChange(PropertyChangeEvent event) {
-		if (isDirty())
-			firePropertyChange(PROP_DIRTY);
-	}
-}
-
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareEditorContributor.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareEditorContributor.java
deleted file mode 100644
index 87735fe..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareEditorContributor.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import java.util.ResourceBundle;
-
-import org.eclipse.jface.action.*;
-
-import org.eclipse.ui.*;
-import org.eclipse.ui.help.WorkbenchHelp;
-import org.eclipse.ui.part.EditorActionBarContributor;
-
-import org.eclipse.compare.*;
-
-
-public class CompareEditorContributor extends EditorActionBarContributor {
-	
-	private IEditorPart fActiveEditorPart= null;
-
-	private IgnoreWhiteSpaceAction fIgnoreWhitespace;
-	private NavigationAction fNext;
-	private NavigationAction fPrevious;
-	
-	private NavigationAction fToolbarNext;
-	private NavigationAction fToolbarPrevious;
-
-
-	public CompareEditorContributor() {
-		ResourceBundle bundle= CompareUIPlugin.getResourceBundle();
-		
-		fIgnoreWhitespace= new IgnoreWhiteSpaceAction(bundle, null);
-		WorkbenchHelp.setHelp(fIgnoreWhitespace, ICompareContextIds.IGNORE_WHITESPACE_ACTION);
-		
-		fNext= new NavigationAction(bundle, true);
-		WorkbenchHelp.setHelp(fNext, ICompareContextIds.GLOBAL_NEXT_DIFF_ACTION);
-		
-		fPrevious= new NavigationAction(bundle, false);
-		WorkbenchHelp.setHelp(fPrevious, ICompareContextIds.GLOBAL_PREVIOUS_DIFF_ACTION);
-		
-		fToolbarNext= new NavigationAction(bundle, true);
-		WorkbenchHelp.setHelp(fToolbarNext,ICompareContextIds.NEXT_DIFF_ACTION);
-		
-		fToolbarPrevious= new NavigationAction(bundle, false);
-		WorkbenchHelp.setHelp(fToolbarPrevious, ICompareContextIds.PREVIOUS_DIFF_ACTION);
-	}
-
-	/*
-	 * @see EditorActionBarContributor#contributeToToolBar(IToolBarManager)
-	 */
-	public void contributeToToolBar(IToolBarManager tbm) {
-		tbm.add(new Separator());
-		tbm.add(fIgnoreWhitespace);
-		tbm.add(fToolbarNext);
-		tbm.add(fToolbarPrevious);
-	}
-	
-	/*
-	 * @see EditorActionBarContributor#contributeToMenu(IMenuManager)
-	 */
-	public void contributeToMenu(IMenuManager menuManager) {
-	}
-
-	public void setActiveEditor(IEditorPart targetEditor) {
-				
-		if (fActiveEditorPart == targetEditor)
-			return;
-			
-		fActiveEditorPart= targetEditor;
-		
-		if (fActiveEditorPart != null) {
-			IEditorInput input= fActiveEditorPart.getEditorInput();
-			if (input instanceof CompareEditorInput) {
-				CompareEditorInput compareInput= (CompareEditorInput) input;
-				fNext.setCompareEditorInput(compareInput);
-				fPrevious.setCompareEditorInput(compareInput);
-				// Begin fix http://bugs.eclipse.org/bugs/show_bug.cgi?id=20105
-				fToolbarNext.setCompareEditorInput(compareInput);
-				fToolbarPrevious.setCompareEditorInput(compareInput);
-				// End fix http://bugs.eclipse.org/bugs/show_bug.cgi?id=20105
-			}
-		}
-			
-		if (targetEditor instanceof CompareEditor) {
-			IActionBars actionBars= getActionBars();
-		
-			CompareEditor editor= (CompareEditor) targetEditor;
-			editor.setActionBars(actionBars);
-		
-			actionBars.setGlobalActionHandler(IWorkbenchActionConstants.NEXT, fNext);
-			actionBars.setGlobalActionHandler(IWorkbenchActionConstants.PREVIOUS, fPrevious);
-
-			CompareConfiguration cc= editor.getCompareConfiguration();
-			fIgnoreWhitespace.setCompareConfiguration(cc);
-		}		
-	}
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareMessages.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareMessages.java
deleted file mode 100644
index b6fb85f..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareMessages.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-public class CompareMessages {
-
-	private static final String RESOURCE_BUNDLE= "org.eclipse.compare.internal.CompareMessages";//$NON-NLS-1$
-
-	private static ResourceBundle fgResourceBundle= ResourceBundle.getBundle(RESOURCE_BUNDLE);
-
-	private CompareMessages() {
-	}
-
-	public static String getString(String key) {
-		try {
-			return fgResourceBundle.getString(key);
-		} catch (MissingResourceException e) {
-			return "!" + key + "!";//$NON-NLS-2$ //$NON-NLS-1$
-		}
-	}
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareMessages.properties b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareMessages.properties
deleted file mode 100644
index e29774d..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareMessages.properties
+++ /dev/null
@@ -1,58 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-ComparePlugin.internal_error= Internal Error
-ExceptionDialog.seeErrorLogMessage= See error log for more details.
-
-#
-# Title format for CompareViewerSwitchingPane
-#
-CompareViewerSwitchingPane.Titleformat= {0}  ({1})
-
-#
-# Title message for StructureDiffViewer if no structural differences could be found
-#
-StructureDiffViewer.NoStructuralDifferences= No Structural Differences
-StructureDiffViewer.StructureError= Can't Compare Structures
-
-#
-# TextMergeViewer
-#
-TextMergeViewer.cursorPosition.format= {0} : {1}
-
-TextMergeViewer.beforeLine.format= before line {0}
-TextMergeViewer.range.format= {0} : {1}
-
-TextMergeViewer.changeType.addition= addition
-TextMergeViewer.changeType.deletion= deletion
-TextMergeViewer.changeType.change= change
-
-TextMergeViewer.direction.outgoing= outgoing
-TextMergeViewer.direction.incoming= incoming
-TextMergeViewer.direction.conflicting= conflicting
-
-TextMergeViewer.diffType.format= {0} {1}
-
-TextMergeViewer.diffDescription.noDiff.format= no diff
-TextMergeViewer.diffDescription.diff.format= {0} #{1} (Left: {2}, Right: {3})
-TextMergeViewer.statusLine.format= Left: {0}, Right: {1}, {2}
-
-TextMergeViewer.atEnd.title= Go to Next Difference
-TextMergeViewer.atEnd.message= End of document reached. Continue at beginning?
-				
-TextMergeViewer.atBeginning.title= Go to Previous Difference
-TextMergeViewer.atBeginning.message= Beginning of document reached. Continue at end?
-
-CompareNavigator.atEnd.title= Go to Next Difference
-CompareNavigator.atEnd.message= Last difference reached.
-				
-CompareNavigator.atBeginning.title= Go to Previous Difference
-CompareNavigator.atBeginning.message= First difference reached.
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareNavigator.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareNavigator.java
deleted file mode 100644
index 9812a86..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareNavigator.java
+++ /dev/null
@@ -1,179 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.dialogs.MessageDialog;
-
-import org.eclipse.compare.CompareEditorInput;
-import org.eclipse.compare.*;
-
-/**
- * Supports cross-pane navigation through differences.
- * XXX: Design is as it is because the feature had to be added without touching API.
- */
-public class CompareNavigator {
-	
-	private boolean fLastDirection= true;
-	private CompareViewerSwitchingPane[] fPanes;
-	// Fix for http://dev.eclipse.org/bugs/show_bug.cgi?id=20106
-	private boolean fNextFirstTime= true;
-	
-	public CompareNavigator(CompareViewerSwitchingPane[] panes) {
-		fPanes= panes;
-	}
-
-	public CompareViewerSwitchingPane[] getPanes() {
-		return fPanes;
-	}
-	
-	public void selectChange(boolean next) {
-		
-		fLastDirection= next;
-
-		// Fix for http://dev.eclipse.org/bugs/show_bug.cgi?id=20106
-		if (next && fNextFirstTime && mustOpen()) {
-			fNextFirstTime= false;
-			openElement();
-		}
-		
-		// find most down stream CompareViewerPane
-		int n= 0;
-		INavigatable[] navigators= new INavigatable[4];
-		for (int i= 0; i < fPanes.length; i++) {
-			navigators[n]= getNavigator(fPanes[i]);
-			if (navigators[n] != null)
-				n++;
-		}
-									
-		while (n > 0) {
-			n--;
-			if (navigators[n].gotoDifference(next)) {
-				// at end of this navigator
-				continue;
-			} else // not at end
-				return;
-		}
-		// beep
-		if (fPanes[0] != null) {
-			Control c= fPanes[0].getContent();
-			if (c != null) {
-				Display display= c.getDisplay();
-				if (display != null)
-					display.beep();
-
-				String title;
-				String message;
-				if (next) {
-					title= CompareMessages.getString("CompareNavigator.atEnd.title"); //$NON-NLS-1$
-					message= CompareMessages.getString("CompareNavigator.atEnd.message"); //$NON-NLS-1$
-				} else {
-					title= CompareMessages.getString("CompareNavigator.atBeginning.title"); //$NON-NLS-1$
-					message= CompareMessages.getString("CompareNavigator.atBeginning.message"); //$NON-NLS-1$
-				}
-				MessageDialog.openInformation(c.getShell(), title, message);
-			}
-		}
-	}
-
-	private static INavigatable getNavigator(CompareViewerSwitchingPane pane) {
-		if (pane == null)
-			return null;
-		if (pane.isEmpty())
-			return null;
-		Viewer viewer= pane.getViewer();
-		if (viewer == null)
-			return null;
-		Control control= viewer.getControl();
-		if (control == null)
-			return null;
-		Object data= control.getData(INavigatable.NAVIGATOR_PROPERTY);
-		if (data instanceof INavigatable)
-			return (INavigatable) data;
-		return null;
-	}
-	
-	private static CompareNavigator findNavigator(Control c) {
-		while (c != null && !c.isDisposed()) {	// PR 1GEUVV2
-			Object data= c.getData();
-			if (data instanceof CompareEditorInput) {
-				CompareEditorInput cei= (CompareEditorInput) data;
-				Object adapter= cei.getAdapter(CompareNavigator.class);
-				if (adapter instanceof CompareNavigator)
-					return (CompareNavigator)adapter;
-			}
-			c= c.getParent();
-		}
-		return null;
-	}
-	
-	private boolean resetDirection() {
-		boolean last= fLastDirection;
-		fLastDirection= true;
-		return last;
-	}
-	
-	public static boolean getDirection(Control c) {
-		CompareNavigator nav= findNavigator(c);
-		if (nav != null)
-			return nav.resetDirection();
-		return true;
-	}
-	
-	/*
-	 * Fix for http://dev.eclipse.org/bugs/show_bug.cgi?id=20106
-	 */
-	private boolean mustOpen() {
-		if (fPanes == null || fPanes.length == 0)
-			return false;
-		for (int i= 1; i < fPanes.length; i++) {
-			CompareViewerSwitchingPane pane= fPanes[i];
-			if (pane != null && pane.getInput() != null)
-				return false;
-		}
-		return true;
-	}
-	
-	/*
-	 * Fix for http://dev.eclipse.org/bugs/show_bug.cgi?id=20106
-	 */
-	private void openElement() {
-		if (fPanes == null || fPanes.length == 0)
-			return;
-		IOpenable openable= getOpenable(fPanes[0]);
-		if (openable != null) {
-			openable.openSelected();
-		}
-	}
-	
-	/*
-	 * Fix for http://dev.eclipse.org/bugs/show_bug.cgi?id=20106
-	 */
-	private static IOpenable getOpenable(CompareViewerSwitchingPane pane) {
-		if (pane == null)
-			return null;
-		if (pane.isEmpty())
-			return null;
-		Viewer viewer= pane.getViewer();
-		if (viewer == null)
-			return null;
-		Control control= viewer.getControl();
-		if (control == null)
-			return null;
-		Object data= control.getData(IOpenable.OPENABLE_PROPERTY);
-		if (data instanceof IOpenable)
-			return (IOpenable) data;
-		return null;
-	}	
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ComparePreferencePage.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ComparePreferencePage.java
deleted file mode 100644
index 9bfc879..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ComparePreferencePage.java
+++ /dev/null
@@ -1,347 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import java.util.*;
-import java.io.*;
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.graphics.Image;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.preference.*;
-import org.eclipse.jface.util.*;
-
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPreferencePage;
-import org.eclipse.ui.help.WorkbenchHelp;
-import org.eclipse.ui.texteditor.AbstractTextEditor;
-
-import org.eclipse.compare.*;
-import org.eclipse.compare.contentmergeviewer.TextMergeViewer;
-import org.eclipse.compare.structuremergeviewer.*;
-
-
-public class ComparePreferencePage extends PreferencePage implements IWorkbenchPreferencePage {
-	
-	class FakeInput implements ITypedElement, IStreamContentAccessor {
-		String fContent;
-		
-		FakeInput(String name) {
-			fContent= loadPreviewContentFromFile(name);
-		}
-		public Image getImage() {
-			return null;
-		}
-		public String getName() {
-			return "no name";	//$NON-NLS-1$
-		}
-		public String getType() {
-			return "no type";	//$NON-NLS-1$
-		}
-		public InputStream getContents() {
-			return new ByteArrayInputStream(fContent.getBytes());
-		}
-	};
-
-	private static final String PREFIX= CompareUIPlugin.PLUGIN_ID + "."; //$NON-NLS-1$
-	public static final String OPEN_STRUCTURE_COMPARE= PREFIX + "OpenStructureCompare"; //$NON-NLS-1$
-	public static final String SYNCHRONIZE_SCROLLING= PREFIX + "SynchronizeScrolling"; //$NON-NLS-1$
-	public static final String SHOW_PSEUDO_CONFLICTS= PREFIX + "ShowPseudoConflicts"; //$NON-NLS-1$
-	public static final String INITIALLY_SHOW_ANCESTOR_PANE= PREFIX + "InitiallyShowAncestorPane"; //$NON-NLS-1$
-	public static final String PREF_SAVE_ALL_EDITORS= PREFIX + "SaveAllEditors"; //$NON-NLS-1$
-	public static final String SHOW_MORE_INFO= PREFIX + "ShowMoreInfo"; //$NON-NLS-1$
-	public static final String IGNORE_WHITESPACE= PREFIX + "IgnoreWhitespace"; //$NON-NLS-1$
-	//public static final String USE_SPLINES= PREFIX + "UseSplines"; //$NON-NLS-1$
-	public static final String USE_SINGLE_LINE= PREFIX + "UseSingleLine"; //$NON-NLS-1$
-	//public static final String USE_RESOLVE_UI= PREFIX + "UseResolveUI"; //$NON-NLS-1$
-	
-	
-	private TextMergeViewer fPreviewViewer;
-	private IPropertyChangeListener	fPreferenceChangeListener;
-	private CompareConfiguration fCompareConfiguration;
-	private OverlayPreferenceStore fOverlayStore;
-	private Map fCheckBoxes= new HashMap();
-	private SelectionListener fCheckBoxListener;
-
-
-	public final OverlayPreferenceStore.OverlayKey[] fKeys= new OverlayPreferenceStore.OverlayKey[] {	
-		new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, OPEN_STRUCTURE_COMPARE),
-		new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, SYNCHRONIZE_SCROLLING),
-		new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, SHOW_PSEUDO_CONFLICTS),
-		new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, INITIALLY_SHOW_ANCESTOR_PANE),
-		new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, SHOW_MORE_INFO),
-		new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, IGNORE_WHITESPACE),
-		new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PREF_SAVE_ALL_EDITORS),
-		
-		new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, AbstractTextEditor.PREFERENCE_COLOR_BACKGROUND),
-		new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, AbstractTextEditor.PREFERENCE_COLOR_BACKGROUND_SYSTEM_DEFAULT),
-		
-		//new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, USE_SPLINES),
-		new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, USE_SINGLE_LINE),
-		//new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, USE_RESOLVE_UI),
-	};
-	
-	
-	public static void initDefaults(IPreferenceStore store) {
-		store.setDefault(OPEN_STRUCTURE_COMPARE, true);
-		store.setDefault(SYNCHRONIZE_SCROLLING, true);
-		store.setDefault(SHOW_PSEUDO_CONFLICTS, false);
-		store.setDefault(INITIALLY_SHOW_ANCESTOR_PANE, false);
-		store.setDefault(SHOW_MORE_INFO, false);
-		store.setDefault(IGNORE_WHITESPACE, false);
-		store.setDefault(PREF_SAVE_ALL_EDITORS, false);
-		//store.setDefault(USE_SPLINES, false);
-		store.setDefault(USE_SINGLE_LINE, true);
-		//store.setDefault(USE_RESOLVE_UI, false);
-		
-		store.setDefault(AbstractTextEditor.PREFERENCE_COLOR_BACKGROUND_SYSTEM_DEFAULT, true);
-	}
-
-	public ComparePreferencePage() {
-		
-		//setDescription(Utilities.getString("ComparePreferencePage.description"));	//$NON-NLS-1$
-		
-		setPreferenceStore(CompareUIPlugin.getDefault().getPreferenceStore());
-		
-		fOverlayStore= new OverlayPreferenceStore(getPreferenceStore(), fKeys);
-		fPreferenceChangeListener= new IPropertyChangeListener() {
-			public void propertyChange(PropertyChangeEvent event) {
-				String key= event.getProperty();
-				if (key.equals(INITIALLY_SHOW_ANCESTOR_PANE)) {
-					boolean b= fOverlayStore.getBoolean(INITIALLY_SHOW_ANCESTOR_PANE);
-					if (fCompareConfiguration != null) {
-						fCompareConfiguration.setProperty(INITIALLY_SHOW_ANCESTOR_PANE, new Boolean(b));
-					}
-				}
-			}
-		};
-		fOverlayStore.addPropertyChangeListener(fPreferenceChangeListener);
-	}
-	
-	/*
-	 * @see IWorkbenchPreferencePage#init()
-	 */
-	public void init(IWorkbench workbench) {
-	}	
-
-	/*
-	 * @see PreferencePage#performOk()
-	 */
-	public boolean performOk() {
-		fOverlayStore.propagate();
-		return true;
-	}
-	
-	/*
-	 * @see PreferencePage#performDefaults()
-	 */
-	protected void performDefaults() {
-		
-		fOverlayStore.loadDefaults();
-		initializeFields();
-		
-		super.performDefaults();
-	}
-	
-	/*
-	 * @see DialogPage#dispose()
-	 */
-	public void dispose() {
-				
-		if (fOverlayStore != null) {
-			if (fPreferenceChangeListener != null) {
-				fOverlayStore.removePropertyChangeListener(fPreferenceChangeListener);
-				fPreferenceChangeListener= null;
-			}
-			fOverlayStore.stop();
-			fOverlayStore= null;
-		}
-		
-		super.dispose();
-	}
-
-	static public boolean getSaveAllEditors() {
-		IPreferenceStore store= CompareUIPlugin.getDefault().getPreferenceStore();
-		return store.getBoolean(PREF_SAVE_ALL_EDITORS);
-	}
-	
-	static public void setSaveAllEditors(boolean value) {
-		IPreferenceStore store= CompareUIPlugin.getDefault().getPreferenceStore();
-		store.setValue(PREF_SAVE_ALL_EDITORS, value);
-	}	
-
-	/*
-	 * @see PreferencePage#createContents(Composite)
-	 */
-	protected Control createContents(Composite parent) {
-		
-		WorkbenchHelp.setHelp(parent, ICompareContextIds.COMPARE_PREFERENCE_PAGE);
-		
-		fOverlayStore.load();
-		fOverlayStore.start();
-		
-		TabFolder folder= new TabFolder(parent, SWT.NONE);
-		folder.setLayout(new TabFolderLayout());	
-		folder.setLayoutData(new GridData(GridData.FILL_BOTH));
-		
-		TabItem item= new TabItem(folder, SWT.NONE);
-		item.setText(Utilities.getString("ComparePreferencePage.generalTab.label"));	//$NON-NLS-1$
-		//item.setImage(JavaPluginImages.get(JavaPluginImages.IMG_OBJS_CFILE));
-		item.setControl(createGeneralPage(folder));
-		
-		item= new TabItem(folder, SWT.NONE);
-		item.setText(Utilities.getString("ComparePreferencePage.textCompareTab.label"));	//$NON-NLS-1$
-		//item.setImage(JavaPluginImages.get(JavaPluginImages.IMG_OBJS_CFILE));
-		item.setControl(createTextComparePage(folder));
-		
-		initializeFields();
-		Dialog.applyDialogFont(folder);
-		return folder;
-	}
-	
-	private Control createGeneralPage(Composite parent) {
-		Composite composite= new Composite(parent, SWT.NULL);
-		GridLayout layout= new GridLayout();
-		layout.numColumns= 1;
-		composite.setLayout(layout);
-				
-		addCheckBox(composite, "ComparePreferencePage.structureCompare.label", OPEN_STRUCTURE_COMPARE, 0);	//$NON-NLS-1$
-		addCheckBox(composite, "ComparePreferencePage.showMoreInfo.label", SHOW_MORE_INFO, 0);	//$NON-NLS-1$
-		addCheckBox(composite, "ComparePreferencePage.ignoreWhitespace.label", IGNORE_WHITESPACE, 0);	//$NON-NLS-1$
-		
-		// a spacer
-		new Label(composite, SWT.NONE);
-
-		addCheckBox(composite, "ComparePreferencePage.saveBeforePatching.label", PREF_SAVE_ALL_EDITORS, 0);	//$NON-NLS-1$
-		
-		return composite;
-	}
-	
-	private Control createTextComparePage(Composite parent) {
-		
-		Composite composite= new Composite(parent, SWT.NULL);
-		GridLayout layout= new GridLayout();
-		layout.numColumns= 1;
-		composite.setLayout(layout);
-				
-		addCheckBox(composite, "ComparePreferencePage.synchronizeScrolling.label", SYNCHRONIZE_SCROLLING, 0);	//$NON-NLS-1$
-		addCheckBox(composite, "ComparePreferencePage.initiallyShowAncestorPane.label", INITIALLY_SHOW_ANCESTOR_PANE, 0);	//$NON-NLS-1$
-		addCheckBox(composite, "ComparePreferencePage.showPseudoConflicts.label", SHOW_PSEUDO_CONFLICTS, 0);	//$NON-NLS-1$
-		
-		//addCheckBox(composite, "ComparePreferencePage.useSplines.label", USE_SPLINES, 0);	//$NON-NLS-1$
-		addCheckBox(composite, "ComparePreferencePage.useSingleLine.label", USE_SINGLE_LINE, 0);	//$NON-NLS-1$
-		//addCheckBox(composite, "ComparePreferencePage.useResolveUI.label", USE_RESOLVE_UI, 0);	//$NON-NLS-1$
-		
-		// a spacer
-		new Label(composite, SWT.NONE);
-		
-		Label previewLabel= new Label(composite, SWT.NULL);
-		previewLabel.setText(Utilities.getString("ComparePreferencePage.preview.label"));	//$NON-NLS-1$
-		
-		Control previewer= createPreviewer(composite);
-		GridData gd= new GridData(GridData.FILL_BOTH);
-		gd.widthHint= convertWidthInCharsToPixels(60);
-		gd.heightHint= convertHeightInCharsToPixels(13);
-		previewer.setLayoutData(gd);
-		
-		return composite;
-	}
-	
-	private Control createPreviewer(Composite parent) {
-				
-		fCompareConfiguration= new CompareConfiguration(fOverlayStore);
-		fCompareConfiguration.setAncestorLabel(Utilities.getString("ComparePreferencePage.ancestor.label"));	//$NON-NLS-1$
-		
-		fCompareConfiguration.setLeftLabel(Utilities.getString("ComparePreferencePage.left.label"));	//$NON-NLS-1$
-		fCompareConfiguration.setLeftEditable(false);
-		
-		fCompareConfiguration.setRightLabel(Utilities.getString("ComparePreferencePage.right.label"));	//$NON-NLS-1$
-		fCompareConfiguration.setRightEditable(false);
-		
-		fPreviewViewer= new TextMergeViewer(parent, SWT.BORDER, fCompareConfiguration);
-		
-		fPreviewViewer.setInput(
-			new DiffNode(Differencer.CONFLICTING,
-				new FakeInput("ComparePreferencePage.previewAncestor"),	//$NON-NLS-1$
-				new FakeInput("ComparePreferencePage.previewLeft"),	//$NON-NLS-1$
-				new FakeInput("ComparePreferencePage.previewRight")	//$NON-NLS-1$
-			)
-		);
-
-		Control c= fPreviewViewer.getControl();
-		c.addDisposeListener(new DisposeListener() {
-			public void widgetDisposed(DisposeEvent e) {
-				if (fCompareConfiguration != null)
-					fCompareConfiguration.dispose();
-			}
-		});
-		
-		return  c;
-	}
-			
-	private void initializeFields() {
-		
-		Iterator e= fCheckBoxes.keySet().iterator();
-		while (e.hasNext()) {
-			Button b= (Button) e.next();
-			String key= (String) fCheckBoxes.get(b);
-			b.setSelection(fOverlayStore.getBoolean(key));
-		}
-	}
-
-	// overlay stuff
-	
-	private Button addCheckBox(Composite parent, String labelKey, String key, int indentation) {
-		
-		String label= Utilities.getString(labelKey);
-				
-		Button checkBox= new Button(parent, SWT.CHECK);
-		checkBox.setText(label);
-		
-		GridData gd= new GridData(GridData.FILL_HORIZONTAL);
-		gd.horizontalIndent= indentation;
-		gd.horizontalSpan= 2;
-		checkBox.setLayoutData(gd);
-		
-		if (fCheckBoxListener == null) {
-			fCheckBoxListener= new SelectionAdapter() {
-				public void widgetSelected(SelectionEvent e) {
-					Button button= (Button) e.widget;
-					fOverlayStore.setValue((String) fCheckBoxes.get(button), button.getSelection());
-				}
-			};
-		}
-		checkBox.addSelectionListener(fCheckBoxListener);
-		
-		fCheckBoxes.put(checkBox, key);
-		
-		return checkBox;
-	}
-	
-	private String loadPreviewContentFromFile(String key) {
-		
-		String preview= Utilities.getString(key);
-		String separator= System.getProperty("line.separator"); //$NON-NLS-1$
-		StringBuffer buffer= new StringBuffer();
-		for (int i= 0; i < preview.length(); i++) {
-			char c= preview.charAt(i);
-			if (c == '\n')
-				buffer.append(separator);
-			else
-				buffer.append(c);
-		}
-		return buffer.toString();
-	}
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareUIPlugin.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareUIPlugin.java
deleted file mode 100644
index f05c019..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareUIPlugin.java
+++ /dev/null
@@ -1,879 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
-import java.net.MalformedURLException;
-import java.lang.reflect.InvocationTargetException;
-import java.util.*;
-
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Shell;
-
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.dialogs.ProgressMonitorDialog;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.util.Assert;
-import org.eclipse.jface.preference.IPreferenceStore;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.ui.model.IWorkbenchAdapter;
-import org.eclipse.ui.*;
-import org.eclipse.compare.*;
-import org.eclipse.compare.structuremergeviewer.*;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-
-
-/**
- * The Compare UI plug-in defines the entry point to initiate a configurable
- * compare operation on arbitrary resources. The result of the compare
- * is opened into a compare editor where the details can be browsed and
- * edited in dynamically selected structure and content viewers.
- * <p>
- * The Compare UI provides a registry for content and structure compare viewers,
- * which is initialized from extensions contributed to extension points
- * declared by this plug-in.
- * <p>
- * This class is the plug-in runtime class for the 
- * <code>"org.eclipse.compare"</code> plug-in.
- * </p>
- */
-public final class CompareUIPlugin extends AbstractUIPlugin {
-	
-	public static final String DTOOL_NEXT= "dlcl16/next_nav.gif";	//$NON-NLS-1$
-	public static final String CTOOL_NEXT= "clcl16/next_nav.gif";	//$NON-NLS-1$
-	public static final String ETOOL_NEXT= "elcl16/next_nav.gif";	//$NON-NLS-1$
-	
-	public static final String DTOOL_PREV= "dlcl16/prev_nav.gif";	//$NON-NLS-1$
-	public static final String CTOOL_PREV= "clcl16/prev_nav.gif";	//$NON-NLS-1$
-	public static final String ETOOL_PREV= "elcl16/prev_nav.gif";	//$NON-NLS-1$
-				
-	/** Status code describing an internal error */
-	public static final int INTERNAL_ERROR= 1;
-
-	private static boolean NORMALIZE_CASE= true;
-
-	private final static String CLASS_ATTRIBUTE= "class"; //$NON-NLS-1$
-	private final static String EXTENSIONS_ATTRIBUTE= "extensions"; //$NON-NLS-1$
-
-	public static final String PLUGIN_ID= "org.eclipse.compare"; //$NON-NLS-1$
-
-	private static final String STRUCTURE_CREATOR_EXTENSION_POINT= "structureCreators"; //$NON-NLS-1$
-	private static final String STRUCTURE_MERGEVIEWER_EXTENSION_POINT= "structureMergeViewers"; //$NON-NLS-1$
-	private static final String CONTENT_MERGEVIEWER_EXTENSION_POINT= "contentMergeViewers"; //$NON-NLS-1$
-	private static final String CONTENT_VIEWER_EXTENSION_POINT= "contentViewers"; //$NON-NLS-1$
-	
-	private static final String COMPARE_EDITOR= PLUGIN_ID + ".CompareEditor"; //$NON-NLS-1$
-	
-	private static final String STRUCTUREVIEWER_ALIASES_PREFERENCE_NAME= "StructureViewerAliases";	//$NON-NLS-1$
-	
-	/** Maps type to icons */
-	private static Map fgImages= new Hashtable(10);
-	/** Maps type to ImageDescriptors */
-	private static Map fgImageDescriptors= new Hashtable(10);
-	/** Maps ImageDescriptors to Images */
-	private static Map fgImages2= new Hashtable(10);
-	
-	private static Map fgStructureCreators= new Hashtable(10);
-	private static Map fgStructureViewerDescriptors= new Hashtable(10);
-	private static Map fgStructureViewerAliases= new Hashtable(10);
-	private static Map fgContentViewerDescriptors= new Hashtable(10);
-	private static Map fgContentMergeViewerDescriptors= new Hashtable(10);
-	
-	private static List fgDisposeOnShutdownImages= new ArrayList();
-	
-	private static ResourceBundle fgResourceBundle;
-
-	private static CompareUIPlugin fgComparePlugin;
-
-	/**
-	 * Creates the <code>CompareUIPlugin</code> object and registers all
-	 * structure creators, content merge viewers, and structure merge viewers
-	 * contributed to this plug-in's extension points.
-	 * <p>
-	 * Note that instances of plug-in runtime classes are automatically created 
-	 * by the platform in the course of plug-in activation.
-	 * </p>
-	 *
-	 * @param descriptor the plug-in descriptor
-	 */
-	public CompareUIPlugin(IPluginDescriptor descriptor) {
-		super(descriptor);
-				
-		fgComparePlugin= this;
-		
-		fgResourceBundle= descriptor.getResourceBundle();
-		
-		registerExtensions();
-		
-		initPreferenceStore();
-	}
-	
-	/**
-	 * @see AbstractUIPlugin#initializeDefaultPreferences
-	 */
-	protected void initializeDefaultPreferences(IPreferenceStore store) {
-		super.initializeDefaultPreferences(store);
-		
-		ComparePreferencePage.initDefaults(store);		
-	}
-	
-	/**
-	 * Registers all structure creators, content merge viewers, and structure merge viewers
-	 * that are found in the XML plugin files.
-	 */
-	private void registerExtensions() {
-		IPluginRegistry registry= Platform.getPluginRegistry();
-		
-		// collect all IStructureCreators
-		IConfigurationElement[] elements= registry.getConfigurationElementsFor(PLUGIN_ID, STRUCTURE_CREATOR_EXTENSION_POINT);
-		for (int i= 0; i < elements.length; i++) {
-			final IConfigurationElement conf= elements[i];
-			String extensions= conf.getAttribute(EXTENSIONS_ATTRIBUTE);
-			registerStructureCreator(extensions,
-				new IStructureCreatorDescriptor() {
-					public IStructureCreator createStructureCreator() {
-						try {
-							return (IStructureCreator) conf.createExecutableExtension(CLASS_ATTRIBUTE);
-						} catch (CoreException ex) {
-						}
-						return null;
-					}
-				}
-			);
-		}
-				
-		// collect all viewers which define the structure mergeviewer extension point
-		elements= registry.getConfigurationElementsFor(PLUGIN_ID, STRUCTURE_MERGEVIEWER_EXTENSION_POINT);
-		for (int i= 0; i < elements.length; i++) {
-			ViewerDescriptor desc= new ViewerDescriptor(elements[i]);
-			String ext= desc.getExtension();
-			if (ext != null)
-				registerStructureViewerDescriptor(desc.getExtension(), desc);
-		}
-		
-		// collect all viewers which define the content mergeviewer extension point
-		elements= registry.getConfigurationElementsFor(PLUGIN_ID, CONTENT_MERGEVIEWER_EXTENSION_POINT);
-		for (int i= 0; i < elements.length; i++) {
-			ViewerDescriptor desc= new ViewerDescriptor(elements[i]);
-			String ext= desc.getExtension();
-			if (ext != null)
-				registerContentMergeViewerDescriptor(desc.getExtension(), desc);
-		}
-		
-		// collect all viewers which define the content viewer extension point
-		elements= registry.getConfigurationElementsFor(PLUGIN_ID, CONTENT_VIEWER_EXTENSION_POINT);
-		for (int i= 0; i < elements.length; i++) {
-			ViewerDescriptor desc= new ViewerDescriptor(elements[i]);
-			String ext= desc.getExtension();
-			if (ext != null)
-				registerContentViewerDescriptor(desc.getExtension(), desc);
-		}
-	}
-	
-	/**
-	 * Returns the singleton instance of this plug-in runtime class.
-	 *
-	 * @return the compare plug-in instance
-	 */
-	public static CompareUIPlugin getDefault() {
-		return fgComparePlugin;
-	}
-	
-	/**
-	 * Returns this plug-in's resource bundle.
-	 *
-	 * @return the plugin's resource bundle
-	 */
-	public static ResourceBundle getResourceBundle() {
-		return fgResourceBundle;
-	}
-	
-	public static IWorkbench getActiveWorkbench() {
-		CompareUIPlugin plugin= getDefault();
-		if (plugin == null)
-			return null;
-		return plugin.getWorkbench();
-	}
-	
-	public static IWorkbenchWindow getActiveWorkbenchWindow() {
-		IWorkbench workbench= getActiveWorkbench();
-		if (workbench == null)
-			return null;	
-		return workbench.getActiveWorkbenchWindow();
-	}
-	
-	/**
-	 * Returns the active workkbench page or <code>null</code> if
-	 * no active workkbench page can be determined.
-	 *
-	 * @return the active workkbench page or <code>null</code> if
-	 * 	no active workkbench page can be determined
-	 */
-	private static IWorkbenchPage getActivePage() {
-		IWorkbenchWindow window= getActiveWorkbenchWindow();
-		if (window == null)
-			return null;
-		return window.getActivePage();
-	}
-	
-	/**
-	 * Returns the SWT Shell of the active workbench window or <code>null</code> if
-	 * no workbench window is active.
-	 *
-	 * @return the SWT Shell of the active workbench window, or <code>null</code> if
-	 * 	no workbench window is active
-	 */
-	public static Shell getShell() {
-		IWorkbenchWindow window= getActiveWorkbenchWindow();
-		if (window == null)
-			return null;
-		return window.getShell();
-	}
-
-	/**
-	 * Registers the given image for being disposed when this plug-in is shutdown.
-	 *
-	 * @param image the image to register for disposal
-	 */
-	public static void disposeOnShutdown(Image image) {
-		if (image != null)
-			fgDisposeOnShutdownImages.add(image);
-	}
-	
-	/* (non-Javadoc)
-	 * Method declared on Plugin.
-	 * Frees all resources of the compare plug-in.
-	 */
-	public void shutdown() throws CoreException {
-			
-		/*
-		 * Converts the aliases into a single string before they are stored
-		 * in the preference store.
-		 * The format is:
-		 * <key> '.' <alias> ' ' <key> '.' <alias> ...
-		 */
-		IPreferenceStore ps= getPreferenceStore();
-		if (ps != null) {
-			StringBuffer sb= new StringBuffer();
-			Iterator iter= fgStructureViewerAliases.keySet().iterator();
-			while (iter.hasNext()) {
-				String key= (String) iter.next();
-				String alias= (String) fgStructureViewerAliases.get(key);
-				sb.append(key);
-				sb.append('.');
-				sb.append(alias);
-				sb.append(' ');
-			}
-			ps.setValue(STRUCTUREVIEWER_ALIASES_PREFERENCE_NAME, sb.toString());
-		}
-		
-		super.shutdown();
-		
-		if (fgDisposeOnShutdownImages != null) {
-			Iterator i= fgDisposeOnShutdownImages.iterator();
-			while (i.hasNext()) {
-				Image img= (Image) i.next();
-				if (!img.isDisposed())
-					img.dispose();
-			}
-			fgImages= null;
-		}
-	}
-	
-	/**
-	 * Performs the comparison described by the given input and opens a
-	 * compare editor on the result.
-	 *
-	 * @param input the input on which to open the compare editor
-	 * @see CompareEditorInput
-	 */
-	public void openCompareEditor(CompareEditorInput input, IWorkbenchPage page) {
-		
-		if (compareResultOK(input)) {
-			if (page == null)
-				page= getActivePage();
-			if (page != null) {
-				try {
-					page.openEditor(input, COMPARE_EDITOR);
-				} catch (PartInitException e) {
-					MessageDialog.openError(getShell(), Utilities.getString("CompareUIPlugin.openEditorError"), e.getMessage()); //$NON-NLS-1$
-				}
-			} else {
-				MessageDialog.openError(getShell(),
-						Utilities.getString("CompareUIPlugin.openEditorError"), //$NON-NLS-1$
-						Utilities.getString("CompareUIPlugin.noActiveWorkbenchPage")); //$NON-NLS-1$
-			}
-		}
-	}
-
-	/**
-	 * Performs the comparison described by the given input and opens a
-	 * compare dialog on the result.
-	 *
-	 * @param input the input on which to open the compare editor
-	 * @see CompareEditorInput
-	 */
-	public void openCompareDialog(final CompareEditorInput input) {
-				
-		if (compareResultOK(input)) {
-			CompareDialog dialog= new CompareDialog(getShell(), input);
-			dialog.open();
-		}
-	}
-	
-	/**
-	 * @return <code>true</code> if compare result is OK to show, <code>false</code> otherwise
-	 */
-	private boolean compareResultOK(CompareEditorInput input) {
-		final Shell shell= getShell();
-		try {
-			
-			// run operation in separate thread and make it canceable
-			new ProgressMonitorDialog(shell).run(true, true, input);
-			
-			String message= input.getMessage();
-			if (message != null) {
-				MessageDialog.openError(shell, Utilities.getString("CompareUIPlugin.compareFailed"), message); //$NON-NLS-1$
-				return false;
-			}
-			
-			if (input.getCompareResult() == null) {
-				MessageDialog.openInformation(shell, Utilities.getString("CompareUIPlugin.dialogTitle"), Utilities.getString("CompareUIPlugin.noDifferences")); //$NON-NLS-2$ //$NON-NLS-1$
-				return false;
-			}
-			
-			return true;
-
-		} catch (InterruptedException x) {
-			// cancelled by user		
-		} catch (InvocationTargetException x) {
-			MessageDialog.openError(shell, Utilities.getString("CompareUIPlugin.compareFailed"), x.getTargetException().getMessage()); //$NON-NLS-1$
-		}
-		return false;
-	}
-		
-	/**
-	 * Registers an image for the given type.
-	 */
-	private static void registerImage(String type, Image image, boolean dispose) {
-		fgImages.put(normalizeCase(type), image);
-		if (image != null && dispose) {
-			fgDisposeOnShutdownImages.add(image);
-		}
-	}
-	
-	/**
-	 * Registers an image descriptor for the given type.
-	 *
-	 * @param type the type
-	 * @param descriptor the image descriptor
-	 */
-	public static void registerImageDescriptor(String type, ImageDescriptor descriptor) {
-		fgImageDescriptors.put(normalizeCase(type), descriptor);
-	}
-	
-	public static ImageDescriptor getImageDescriptor(String relativePath) {
-		
-		URL installURL= null;
-		if (fgComparePlugin != null)
-			installURL= fgComparePlugin.getDescriptor().getInstallURL();
-					
-		if (installURL != null) {
-			try {
-				URL url= new URL(installURL, Utilities.getIconPath(null) + relativePath);
-				return ImageDescriptor.createFromURL(url);
-			} catch (MalformedURLException e) {
-				Assert.isTrue(false);
-			}
-		}
-		return null;
-	}
-	
-	/**
-	 * Returns a shared image for the given type, or a generic image if none
-	 * has been registered for the given type.
-	 * <p>
-	 * Note: Images returned from this method will be automitically disposed
-	 * of when this plug-in shuts down. Callers must not dispose of these
-	 * images themselves.
-	 * </p>
-	 *
-	 * @param type the type
-	 * @return the image
-	 */
-	public static Image getImage(String type) {
-		
-		type= normalizeCase(type);
-		
-		boolean dispose= false;
-		Image image= null;
-		if (type != null)
-			image= (Image) fgImages.get(type);
-		if (image == null) {
-			ImageDescriptor id= (ImageDescriptor) fgImageDescriptors.get(type);
-			if (id != null) {
-				image= id.createImage();
-				dispose= true;
-			}
-				
-			if (image == null) {
-				if (fgComparePlugin != null) {
-					if (ITypedElement.FOLDER_TYPE.equals(type)) {
-						image= getDefault().getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_FOLDER);
-						//image= SharedImages.getImage(ISharedImages.IMG_OBJ_FOLDER);
-					} else {
-						image= createWorkbenchImage(type);
-						dispose= true;
-					}
-				} else {
-					id= (ImageDescriptor) fgImageDescriptors.get(normalizeCase("file")); //$NON-NLS-1$
-					image= id.createImage();
-					dispose= true;
-				}
-			}
-			if (image != null)
-				registerImage(type, image, dispose);
-		}
-		return image;
-	}
-	
-	/**
-	 * Returns a shared image for the given adaptable.
-	 * This convenience method queries the given adaptable
-	 * for its <code>IWorkbenchAdapter.getImageDescriptor</code>, which it
-	 * uses to create an image if it does not already have one.
-	 * <p>
-	 * Note: Images returned from this method will be automitically disposed
-	 * of when this plug-in shuts down. Callers must not dispose of these
-	 * images themselves.
-	 * </p>
-	 *
-	 * @param adaptable the adaptable for which to find an image
-	 * @return an image
-	 */
-	public static Image getImage(IAdaptable adaptable) {
-		if (adaptable != null) {
-			Object o= adaptable.getAdapter(IWorkbenchAdapter.class);
-			if (o instanceof IWorkbenchAdapter) {
-				ImageDescriptor id= ((IWorkbenchAdapter) o).getImageDescriptor(adaptable);
-				if (id != null) {
-					Image image= (Image)fgImages2.get(id);
-					if (image == null) {
-						image= id.createImage();
-						try {
-							fgImages2.put(id, image);
-						} catch (NullPointerException ex) {
-						}
-						fgDisposeOnShutdownImages.add(image);
-
-					}
-					return image;
-				}
-			}
-		}
-		return null;
-	}
-	
-	private static Image createWorkbenchImage(String type) {
-		IEditorRegistry er= getDefault().getWorkbench().getEditorRegistry();
-		ImageDescriptor id= er.getImageDescriptor("foo." + type); //$NON-NLS-1$
-		return id.createImage();
-	}
-	
-	/**
-	 * Registers the given structure creator descriptor for one or more types.
-	 *
-	 * @param types one or more types separated by commas and whitespace
-	 * @param descriptor the descriptor to register
-	 */
-	public static void registerStructureCreator(String types, IStructureCreatorDescriptor descriptor) {
-		if (types != null) {
-			StringTokenizer tokenizer= new StringTokenizer(types, ","); //$NON-NLS-1$
-			while (tokenizer.hasMoreElements()) {
-				String extension= tokenizer.nextToken().trim();
-				fgStructureCreators.put(normalizeCase(extension), descriptor);
-			}
-		}
-	}
-	
-	/**
-	 * Returns an structure creator descriptor for the given type.
-	 *
-	 * @param type the type for which to find a descriptor
-	 * @return a descriptor for the given type, or <code>null</code> if no
-	 *   descriptor has been registered
-	 */
-	public static IStructureCreatorDescriptor getStructureCreator(String type) {
-		return (IStructureCreatorDescriptor) fgStructureCreators.get(normalizeCase(type));
-	}
-	
-	/**
-	 * Registers the given structure viewer descriptor for one or more types.
-	 *
-	 * @param types one or more types separated by commas and whitespace
-	 * @param the descriptor to register
-	 */
-	public static void registerStructureViewerDescriptor(String types, IViewerDescriptor descriptor) {
-		StringTokenizer tokenizer= new StringTokenizer(types, ","); //$NON-NLS-1$
-		while (tokenizer.hasMoreElements()) {
-			String extension= tokenizer.nextToken().trim();
-			fgStructureViewerDescriptors.put(normalizeCase(extension), descriptor);
-		}
-	}
-	
-	/**
-	 * Registers the given content merge viewer descriptor for one or more types.
-	 *
-	 * @param types one or more types separated by commas and whitespace
-	 * @param descriptor the descriptor to register
-	 */
-	public static void registerContentMergeViewerDescriptor(String types, IViewerDescriptor descriptor) {
-		StringTokenizer tokenizer= new StringTokenizer(types, ","); //$NON-NLS-1$
-		while (tokenizer.hasMoreElements()) {
-			String extension= tokenizer.nextToken().trim();
-			fgContentMergeViewerDescriptors.put(normalizeCase(extension), descriptor);
-		}
-	}
-	
-	/**
-	 * Registers the given content viewer descriptor for one or more types.
-	 *
-	 * @param types one or more types separated by commas and whitespace
-	 * @param descriptor the descriptor to register
-	 */
-	public static void registerContentViewerDescriptor(String types, IViewerDescriptor descriptor) {
-		StringTokenizer tokenizer= new StringTokenizer(types, ","); //$NON-NLS-1$
-		while (tokenizer.hasMoreElements()) {
-			String extension= tokenizer.nextToken().trim();
-			fgContentViewerDescriptors.put(normalizeCase(extension), descriptor);
-		}
-	}
-		
-	/**
-	 * Returns a structure compare viewer based on an old viewer and an input object.
-	 * If the old viewer is suitable for showing the input, the old viewer
-	 * is returned. Otherwise, the input's type is used to find a viewer descriptor in the registry
-	 * which in turn is used to create a structure compare viewer under the given parent composite.
-	 * If no viewer descriptor can be found <code>null</code> is returned.
-	 *
-	 * @param oldViewer a new viewer is only created if this old viewer cannot show the given input
-	 * @param input the input object for which to find a structure viewer
-	 * @param parent the SWT parent composite under which the new viewer is created
-	 * @param configuration a configuration which is passed to a newly created viewer
-	 * @return the compare viewer which is suitable for the given input object or <code>null</code>
-	 */
-	public static Viewer findStructureViewer(Viewer oldViewer, ICompareInput input, Composite parent,
-				CompareConfiguration configuration) {
-
-		if (input.getLeft() == null || input.getRight() == null)	// we don't show the structure of additions or deletions
-			return null;
-			
-		String[] types= getTypes(input);
-		if (!isHomogenous(types))
-			return null;
-		String type= types[0];
-			
-		type= normalizeCase(type);
-			
-		IViewerDescriptor vd= (IViewerDescriptor) fgStructureViewerDescriptors.get(type);
-		if (vd == null) {
-			String alias= (String) fgStructureViewerAliases.get(type);
-			if (alias != null)
-				vd= (IViewerDescriptor) fgStructureViewerDescriptors.get(alias);
-		}
-		if (vd != null)
-			return vd.createViewer(oldViewer, parent, configuration);
-			
-		IStructureCreatorDescriptor scc= getStructureCreator(type);
-		if (scc != null) {
-			IStructureCreator sc= scc.createStructureCreator();
-			if (sc != null) {
-				StructureDiffViewer sdv= new StructureDiffViewer(parent, configuration);
-				sdv.setStructureCreator(sc);
-				return sdv;
-			}
-		}
-		return null;
-	}
-	
-	/**
-	 * Returns a content compare viewer based on an old viewer and an input object.
-	 * If the old viewer is suitable for showing the input the old viewer
-	 * is returned. Otherwise the input's type is used to find a viewer descriptor in the registry
-	 * which in turn is used to create a content compare viewer under the given parent composite.
-	 * If no viewer descriptor can be found <code>null</code> is returned.
-	 *
-	 * @param oldViewer a new viewer is only created if this old viewer cannot show the given input
-	 * @param input the input object for which to find a content viewer
-	 * @param parent the SWT parent composite under which the new viewer is created
-	 * @param configuration a configuration which is passed to a newly created viewer
-	 * @return the compare viewer which is suitable for the given input object or <code>null</code>
-	 */
-	public static Viewer findContentViewer(Viewer oldViewer, Object in, Composite parent, CompareConfiguration cc) {
-		
-		if (in instanceof IStreamContentAccessor) {
-			String type= ITypedElement.TEXT_TYPE;
-			
-			if (in instanceof ITypedElement) {
-				ITypedElement tin= (ITypedElement) in;
-				String ty= tin.getType();
-				if (ty != null)
-					type= ty;
-			}
-			type= normalizeCase(type);
-			
-			IViewerDescriptor vd= (IViewerDescriptor) fgContentViewerDescriptors.get(type);
-			Viewer viewer= null;
-			if (vd != null) {
-				viewer= vd.createViewer(oldViewer, parent, cc);
-				if (viewer != null)
-					return viewer;
-			}
-			// fallback
-			return new SimpleTextViewer(parent);
-		}
-
-		if (!(in instanceof ICompareInput))
-			return null;
-			
-		ICompareInput input= (ICompareInput) in;
-		String[] types= getTypes(input);
-		String type= null;
-		if (isHomogenous(types))
-			type= types[0];
-		
-		if (ITypedElement.FOLDER_TYPE.equals(type))
-			return null;
-			
-		if (type == null) {
-			int n= 0;
-			for (int i= 0; i < types.length; i++)
-				if (!ITypedElement.UNKNOWN_TYPE.equals(types[i])) {
-					n++;
-					if (type == null)
-						type= types[i];	// remember the first known type
-				}
-			if (n > 1)	// don't use the type if there were more than one
-				type= null;
-		}
-		
-		if (type != null) {
-			IViewerDescriptor vd= (IViewerDescriptor) fgContentMergeViewerDescriptors.get(type);
-			Viewer viewer= null;
-			if (vd != null) {
-				viewer= vd.createViewer(oldViewer, parent, cc);
-				if (viewer != null)
-					return viewer;
-			}
-		}
-
-		// fallback
-		String leftType= guessType(input.getLeft());
-		String rightType= guessType(input.getRight());
-			
-		if (leftType != null || rightType != null) {
-			boolean right_text= rightType != null && ITypedElement.TEXT_TYPE.equals(rightType);
-			boolean left_text= leftType != null && ITypedElement.TEXT_TYPE.equals(leftType);
-			if ((leftType == null && right_text) || (left_text && rightType == null) || (left_text && right_text))
-				type= ITypedElement.TEXT_TYPE;
-			else
-				type= "binary"; //$NON-NLS-1$
-			
-			IViewerDescriptor vd= (IViewerDescriptor) fgContentMergeViewerDescriptors.get(normalizeCase(type));
-			if (vd != null)
-				return vd.createViewer(oldViewer, parent, cc);
-		}
-		return null;
-	}
-	
-	private static String[] getTypes(ICompareInput input) {
-		ITypedElement ancestor= input.getAncestor();
-		ITypedElement left= input.getLeft();
-		ITypedElement right= input.getRight();
-		
-		String[] types= new String[3];
-		int cnt= 0;
-		
-		if (ancestor != null) {
-			String type= ancestor.getType();
-			if (type != null)
-				types[cnt++]= normalizeCase(type);
-		}
-		if (left != null) {
-			String type= left.getType();
-			if (type != null)
-				types[cnt++]= normalizeCase(type);
-		}
-		if (right != null) {
-			String type= right.getType();
-			if (type != null)
-				types[cnt++]= normalizeCase(type);
-		}
-		
-		String[] result= new String[cnt];
-		for (int i= 0; i < cnt; i++)
-			result[i]= types[i];
-		return result;
-	}
-		
-	/**
-	 * Determines the type of the given threeway input by analyzing
-	 * the types (file extension) of the individual parts.
-	 * Returns null if no type can be determined.
-	 */
-	private static boolean isHomogenous(String[] types) {
-		switch (types.length) {
-		case 1:
-			return true;
-		case 2:
-			return types[0].equals(types[1]);
-		case 3:
-			return types[0].equals(types[1]) && types[1].equals(types[2]);
-		}
-		return false;
-	}
-	
-	/**
-	 * Guesses the file type of the given input.
-	 * Returns ITypedElement.TEXT_TYPE if none of the first 10 lines is longer than 1000 bytes.
-	 * Returns ITypedElement.UNKNOWN_TYPE otherwise.
-	 * Returns <code>null</code> if the input isn't an <code>IStreamContentAccessor</code>.
-	 */
-	private static String guessType(ITypedElement input) {
-		if (input instanceof IStreamContentAccessor) {
-			IStreamContentAccessor sca= (IStreamContentAccessor) input;
-			InputStream is= null;
-			try {
-				is= sca.getContents();
-				if (is == null)
-					return null;
-				int lineLength= 0;
-				int lines= 0;
-				while (lines < 10) {
-					int c= is.read();
-					if (c == -1)	// EOF
-						break;
-					if (c == '\n' || c == '\r') { // reset line length
-						lineLength= 0;
-						lines++;
-					} else
-						lineLength++;
-					if (lineLength > 1000)
-						return ITypedElement.UNKNOWN_TYPE;
-				}
-				return ITypedElement.TEXT_TYPE;
-			} catch (CoreException ex) {
-				// be silent and return UNKNOWN_TYPE
-			} catch (IOException ex) {
-				// be silent and return UNKNOWN_TYPE
-			} finally {
-				if (is != null) {
-					try {
-						is.close();
-					} catch (IOException ex) {
-					}
-				}
-			}
-			return ITypedElement.UNKNOWN_TYPE;
-		}
-		return null;
-	}
-	
-	private static String normalizeCase(String s) {
-		if (NORMALIZE_CASE && s != null)
-			return s.toUpperCase();
-		return s;
-	}
-	
-	//---- alias mgmt
-	
-	private void initPreferenceStore() {
-		//System.out.println("initPreferenceStore");
-		IPreferenceStore ps= getPreferenceStore();
-		if (ps != null) {
-			String aliases= ps.getString(STRUCTUREVIEWER_ALIASES_PREFERENCE_NAME);
-			//System.out.println("  <" + aliases + ">");
-			if (aliases != null && aliases.length() > 0) {
-				StringTokenizer st= new StringTokenizer(aliases, " ");	//$NON-NLS-1$
-				while (st.hasMoreTokens()) {
-					String pair= st.nextToken();
-					int pos= pair.indexOf('.');
-					if (pos > 0) {
-						String key= pair.substring(0, pos);
-						String alias= pair.substring(pos+1);
-						fgStructureViewerAliases.put(key, alias);
-						//System.out.println("<" + key + "><" + alias + ">");
-					}
-				}
-			}
-		}		
-	}
-	
-	public static void addStructureViewerAlias(String type, String alias) {
-		//System.out.println("addStructureViewerAlias: " + type + " " + alias);
-		fgStructureViewerAliases.put(normalizeCase(alias), normalizeCase(type));
-	}
-	
-	public static void removeAllStructureViewerAliases(String type) {
-		String t= normalizeCase(type);
-		Set entrySet= fgStructureViewerAliases.entrySet();
-		for (Iterator iter= entrySet.iterator(); iter.hasNext(); ) {
-			Map.Entry entry= (Map.Entry)iter.next();
-			if (entry.getValue().equals(t))
-				iter.remove();
-		}
-	}
-	
-	/**
-	 * Returns an array of all editors that have an unsaved content. If the identical content is 
-	 * presented in more than one editor, only one of those editor parts is part of the result.
-	 * 
-	 * @return an array of all dirty editor parts.
-	 */
-	public static IEditorPart[] getDirtyEditors() {
-		Set inputs= new HashSet();
-		List result= new ArrayList(0);
-		IWorkbench workbench= getDefault().getWorkbench();
-		IWorkbenchWindow[] windows= workbench.getWorkbenchWindows();
-		for (int i= 0; i < windows.length; i++) {
-			IWorkbenchPage[] pages= windows[i].getPages();
-			for (int x= 0; x < pages.length; x++) {
-				IEditorPart[] editors= pages[x].getDirtyEditors();
-				for (int z= 0; z < editors.length; z++) {
-					IEditorPart ep= editors[z];
-					IEditorInput input= ep.getEditorInput();
-					if (!inputs.contains(input)) {
-						inputs.add(input);
-						result.add(ep);
-					}
-				}
-			}
-		}
-		return (IEditorPart[])result.toArray(new IEditorPart[result.size()]);
-	}
-		
-	public static void log(Throwable e) {
-		log(new Status(IStatus.ERROR, getPluginId(), INTERNAL_ERROR, CompareMessages.getString("ComparePlugin.internal_error"), e)); //$NON-NLS-1$
-	}
-	
-	public static void log(IStatus status) {
-		getDefault().getLog().log(status);
-	}
-	
-	public static String getPluginId() {
-		return getDefault().getDescriptor().getUniqueIdentifier();
-	}
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareWithEditionAction.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareWithEditionAction.java
deleted file mode 100644
index f8cef54..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareWithEditionAction.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-public class CompareWithEditionAction extends EditionAction {
-	
-	public CompareWithEditionAction() {
-		super(false, "org.eclipse.compare.internal.CompareWithEditionAction"); //$NON-NLS-1$
-		this.fHelpContextId= ICompareContextIds.COMPARE_WITH_EDITION_DIALOG;
-	}
-}
-
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareWithEditionAction.properties b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareWithEditionAction.properties
deleted file mode 100644
index 154531a..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareWithEditionAction.properties
+++ /dev/null
@@ -1,38 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-# @(#)CompareWithEditionAction.properties
-#
-# Resources for CompareWithEditionAction.java
-
-title= Compare with Local History
-
-treeTitleFormat= Local History of ''{0}''
-dateIcon= obj16/day_obj.gif
-timeIcon= obj16/resource_obj.gif
-
-treeFormat= {0}
-workspaceTreeFormat= {0} (Workspace File)
-parseErrorFormat= {0} (Parse Error)
-
-editionLabel= Local History ({0})
-workspaceEditionLabel= Workspace File
-
-targetLabel= Editor Buffer
-workspaceTargetLabel= Workspace File
-
-todayFormat= Today ({0})
-yesterdayFormat= Yesterday ({0})
-dayFormat= {0}
-
-closeButton.label=Close
-
-noLocalHistoryError= No local history available for selected resource.
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/DiffImage.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/DiffImage.java
deleted file mode 100644
index 1c17ded..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/DiffImage.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import org.eclipse.swt.graphics.*;
-
-import org.eclipse.jface.resource.CompositeImageDescriptor;
-import org.eclipse.jface.resource.ImageDescriptor;
-
-/**
- * Combines an image with an overlay.
- */
-public class DiffImage extends CompositeImageDescriptor {
-
-	static final int HEIGHT= 16;
-
-	private Image fBaseImage;
-	private ImageDescriptor fOverlayImage;
-	private int fWidth;
-	private boolean fLeft= true;
-
-	public DiffImage(Image base, ImageDescriptor overlay, int w) {
-		fBaseImage= base;
-		fOverlayImage= overlay;
-		fWidth= w;
-	}
-
-	public DiffImage(Image base, ImageDescriptor overlay, int w, boolean onLeft) {
-		fBaseImage= base;
-		fOverlayImage= overlay;
-		fWidth= w;
-		fLeft= onLeft;
-	}
-
-	protected Point getSize() {
-		return new Point(fWidth, HEIGHT);
-	}
-
-	protected void drawCompositeImage(int width, int height) {
-		if (fLeft) {
-			if (fBaseImage != null) {
-				ImageData base= fBaseImage.getImageData();
-				if (base == null)
-					base= DEFAULT_IMAGE_DATA;
-				drawImage(base, fWidth - base.width, 0);
-			}
-	
-			if (fOverlayImage != null) {
-				ImageData overlay= fOverlayImage.getImageData();
-				if (overlay == null)
-					overlay= DEFAULT_IMAGE_DATA;
-				drawImage(overlay, 0, (HEIGHT - overlay.height) / 2);
-			}
-		} else {
-			if (fBaseImage != null) {
-				ImageData base= fBaseImage.getImageData();
-				if (base == null)
-					base= DEFAULT_IMAGE_DATA;
-				drawImage(base, 0, 0);
-			}
-	
-			if (fOverlayImage != null) {
-				ImageData overlay= fOverlayImage.getImageData();
-				if (overlay == null)
-					overlay= DEFAULT_IMAGE_DATA;
-				drawImage(overlay, fWidth - overlay.width, (HEIGHT - overlay.height) / 2);
-			}
-		}
-	}
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/DocLineComparator.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/DocLineComparator.java
deleted file mode 100644
index e27a96c..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/DocLineComparator.java
+++ /dev/null
@@ -1,194 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import org.eclipse.jface.text.*;
-import org.eclipse.compare.contentmergeviewer.ITokenComparator;
-import org.eclipse.compare.rangedifferencer.IRangeComparator;
-
-/**
- * Implements the <code>IRangeComparator</code> interface for lines in a document.
- * A <code>DocLineComparator</code> is used as the input for the <code>RangeDifferencer</code>
- * engine to perform a line oriented compare on documents.
- * <p>
- * A <code>DocLineComparator</code> doesn't know anything about line separators because
- * its notion of lines is solely defined in the underlying <code>IDocument</code>.
- */
-public class DocLineComparator implements ITokenComparator {
-
-	private IDocument fDocument;
-	private int fLineOffset;
-	private int fLineCount;
-	private int fLength;
-	private boolean fIgnoreWhiteSpace;
-
-	/**
-	 * Creates a <code>DocLineComparator</code> for the given document range.
-	 * ignoreWhiteSpace controls whether comparing lines (in method
-	 * <code>rangesEqual<code>) should ignore whitespace.
-	 *
-	 * @param document the document from which the lines are taken
-	 * @param region if non-<code>null</code> only lines within this range are taken
-	 * @param ignoreWhiteSpace if <code>true</code> white space is ignored when comparing lines
-	 */
-	public DocLineComparator(IDocument document, IRegion region, boolean ignoreWhiteSpace) {
-
-		fDocument= document;
-		fIgnoreWhiteSpace= ignoreWhiteSpace;
-
-		fLineOffset= 0;
-		if (region != null) {
-			fLength= region.getLength();
-			int start= region.getOffset();
-			try {
-				fLineOffset= fDocument.getLineOfOffset(start);
-			} catch (BadLocationException ex) {
-			}
-
-			if (fLength == 0)
-				fLineCount= 0;
-			else {
-				int endLine= fDocument.getNumberOfLines();
-				try {
-					endLine= fDocument.getLineOfOffset(start + fLength);
-				} catch (BadLocationException ex) {
-				}
-				fLineCount= endLine - fLineOffset + 1;
-			}
-
-		} else {
-			fLength= document.getLength();
-			fLineCount= fDocument.getNumberOfLines();
-		}
-	}
-
-	/**
-	 * Returns the number of lines in the document.
-	 *
-	 * @return number of lines
-	 */
-	public int getRangeCount() {
-		return fLineCount;
-	}
-
-	/* (non Javadoc)
-	 * see ITokenComparator.getTokenStart
-	 */
-	public int getTokenStart(int line) {
-		try {
-			IRegion r= fDocument.getLineInformation(fLineOffset + line);
-			return r.getOffset();
-		} catch (BadLocationException ex) {
-			return fDocument.getLength();
-		}
-	}
-
-	/* (non Javadoc)
-	 * Returns the length of the given line.
-	 * see ITokenComparator.getTokenLength
-	 */
-	public int getTokenLength(int line) {
-		return getTokenStart(line+1) - getTokenStart(line);
-	}
-
-	/**
-	 * Returns <code>true</code> if a line given by the first index
-	 * matches a line specified by the other <code>IRangeComparator</code> and index.
-	 *
-	 * @param thisIndex	the number of the line within this range comparator
-	 * @param other the range comparator to compare this with
-	 * @param otherIndex the number of the line within the other comparator
-	 * @return <code>true</code> if the lines are equal
-	 */
-	public boolean rangesEqual(int thisIndex, IRangeComparator other0, int otherIndex) {
-
-		if (other0 != null && other0.getClass() == getClass()) {
-			DocLineComparator other= (DocLineComparator) other0;
-
-			if (fIgnoreWhiteSpace) {
-				String s1= extract(thisIndex);
-				String s2= other.extract(otherIndex);
-				return compare(s1, s2);
-			}
-
-			int tlen= getTokenLength(thisIndex);
-			int olen= other.getTokenLength(otherIndex);
-			if (tlen == olen) {
-				String s1= extract(thisIndex);
-				String s2= other.extract(otherIndex);
-				return s1.equals(s2);
-			}
-		}
-		return false;
-	}
-
-	/**
-	 * Aborts the comparison if the number of tokens is too large.
-	 *
-	 * @return <code>true</code> to abort a token comparison
-	 */
-	public boolean skipRangeComparison(int length, int max, IRangeComparator other) {
-		return false;
-	}
-		
-	//---- private methods
-	
-	/**
-	 * Extract a single line from the underlying document without the line separator.
-	 *
-	 * @param line the number of the line to extract
-	 * @return the contents of the line as a String
-	 */
-	private String extract(int line) {
-		if (line < fLineCount) {
-			try {
-				IRegion r= fDocument.getLineInformation(fLineOffset + line);
-				return fDocument.get(r.getOffset(), r.getLength());
-			} catch(BadLocationException e) {
-			}
-		}
-		return ""; //$NON-NLS-1$
-	}
-	
-	private boolean compare(String s1, String s2) {
-		int l1= s1.length();
-		int l2= s2.length();
-		int c1= 0, c2= 0;
-		int i1= 0, i2= 0;
-		
-		while (c1 != -1) {
-			
-			c1= -1;
-			while (i1 < l1) {
-				char c= s1.charAt(i1++);
-				if (! Character.isWhitespace(c)) {
-					c1= c;
-					break;
-				}
-			}
-			
-			c2= -1;
-			while (i2 < l2) {
-				char c= s2.charAt(i2++);
-				if (! Character.isWhitespace(c)) {
-					c2= c;
-					break;
-				}
-			}
-				
-			if (c1 != c2)
-				return false;
-		}
-		return true;
-	}
-
-}
-
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/DocumentManager.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/DocumentManager.java
deleted file mode 100644
index b2db191..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/DocumentManager.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import java.util.*;
-
-import org.eclipse.jface.text.IDocument;
-
-/**
- * No API yet.
- */
-public class DocumentManager {
-	
-	private static final boolean DEBUG= false;
-	
-	private static ArrayList fgKeys= new ArrayList();
-	private static ArrayList fgValues= new ArrayList();
-	
-	public static IDocument get(Object o) {
-		
-		for (int i= 0; i < fgKeys.size(); i++) {
-			if (fgKeys.get(i) == o)
-				return (IDocument) fgValues.get(i);
-		}
-		return null;
-	}
-	
-	public static void put(Object o, IDocument document) {
-		if (DEBUG) System.out.println("DocumentManager.put: " + document);	//$NON-NLS-1$
-		for (int i= 0; i < fgKeys.size(); i++) {
-			if (fgKeys.get(i) == o) {
-				fgValues.set(i, document);
-				return;
-			}
-		}
-		fgKeys.add(o);
-		fgValues.add(document);	
-	}
-	
-	public static void remove(IDocument document) {
-		if (document != null) {
-			if (DEBUG) System.out.println("DocumentManager.remove: " + document);	//$NON-NLS-1$
-			for (int i= 0; i < fgValues.size(); i++) {
-				if (fgValues.get(i) == document) {
-					fgKeys.remove(i);
-					fgValues.remove(i);
-					return;
-				}
-			}
-			if (DEBUG) System.out.println("DocumentManager.remove: not found");	//$NON-NLS-1$
-		}
-	}
-	
-	public static void dump() {
-		if (DEBUG) System.out.println("DocumentManager: managed docs:" + fgValues.size());	//$NON-NLS-1$
-	}
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/EditionAction.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/EditionAction.java
deleted file mode 100644
index d610d0c..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/EditionAction.java
+++ /dev/null
@@ -1,267 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import java.io.InputStream;
-import java.io.ByteArrayInputStream;
-import java.util.ArrayList;
-import java.util.ResourceBundle;
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.*;
-
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.graphics.Image;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.dialogs.ProgressMonitorDialog;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.BadLocationException;
-
-import org.eclipse.ui.*;
-import org.eclipse.ui.part.FileEditorInput;
-import org.eclipse.ui.texteditor.ITextEditor;
-import org.eclipse.ui.texteditor.IDocumentProvider;
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-
-import org.eclipse.compare.*;
-import org.eclipse.compare.ITypedElement;
-import org.eclipse.compare.IStreamContentAccessor;
-
-
-public class EditionAction implements IActionDelegate {
-
-	/**
-	 * Implements the IStreamContentAccessor and ITypedElement protocols
-	 * for a Document.
-	 */
-	class DocumentBufferNode implements ITypedElement, IStreamContentAccessor {
-		
-		private IDocument fDocument;
-		private IFile fFile;
-		
-		DocumentBufferNode(IDocument document, IFile file) {
-			fDocument= document;
-			fFile= file;
-		}
-		
-		public String getName() {
-			return fFile.getName();
-		}
-		
-		public String getType() {
-			return fFile.getFileExtension();
-		}
-		
-		public Image getImage() {
-			return null;
-		}
-		
-		public InputStream getContents() {
-			return new ByteArrayInputStream(fDocument.get().getBytes());
-		}
-	}
-
-	private ISelection fSelection;
-	private String fBundleName;
-	private boolean fReplaceMode;
-	protected boolean fPrevious= false;
-	protected String fHelpContextId;
-	
-	EditionAction(boolean replaceMode, String bundleName) {
-		fReplaceMode= replaceMode;
-		fBundleName= bundleName;
-	}
-
-	public final void selectionChanged(IAction action, ISelection selection) {
-		fSelection= selection;
-		if (action != null) {
-			IFile[] files= getFiles(selection, fReplaceMode);
-			action.setEnabled(files.length == 1);	// we don't support multiple selection for now
-		}
-	}
-	
-	public void run(IAction action) {
-		IFile[] files= getFiles(fSelection, fReplaceMode);
-		for (int i= 0; i < files.length; i++)
-			doFromHistory(files[i]);
-	}
-
-	private void doFromHistory(final IFile file) {
-						
-		ResourceBundle bundle= ResourceBundle.getBundle(fBundleName);
-		String title= Utilities.getString(bundle, "title"); //$NON-NLS-1$
-			
-		Shell parentShell= CompareUIPlugin.getShell();
-		
-		IFileState states[]= null;
-		try {
-			states= file.getHistory(null);
-		} catch (CoreException ex) {		
-			MessageDialog.openError(parentShell, title, ex.getMessage());
-			return;
-		}
-		
-		if (states == null || states.length <= 0) {
-			String msg= Utilities.getString(bundle, "noLocalHistoryError"); //$NON-NLS-1$
-			MessageDialog.openInformation(parentShell, title, msg);
-			return;
-		}
-		
-		ITypedElement base= new ResourceNode(file);
-		
-		IDocument document= getDocument(file);
-		ITypedElement target= base;
-		if (document != null)
-			target= new DocumentBufferNode(document, file);
-	
-		ITypedElement[] editions= new ITypedElement[states.length+1];
-		editions[0]= base;
-		for (int i= 0; i < states.length; i++)
-			editions[i+1]= new HistoryItem(base, states[i]);
-
-		EditionSelectionDialog d= new EditionSelectionDialog(parentShell, bundle);
-		d.setEditionTitleArgument(file.getName());
-		d.setEditionTitleImage(CompareUIPlugin.getImage(file));
-		//d.setHideIdenticalEntries(false);
-		if (fHelpContextId != null)
-			d.setHelpContextId(fHelpContextId);
-		
-		if (fReplaceMode) {
-			
-			ITypedElement ti= null;
-			if (fPrevious)
-				ti= d.selectPreviousEdition(target, editions, null);
-			else
-				ti= d.selectEdition(target, editions, null);
-			
-			if (ti instanceof IStreamContentAccessor) {
-				IStreamContentAccessor sa= (IStreamContentAccessor)ti;
-				try {
-
-					if (document != null)
-						updateDocument(document, sa);	
-					else
-						updateWorkspace(bundle, parentShell, sa, file);
-						
-				} catch (InterruptedException x) {
-					// Do nothing. Operation has been canceled by user.
-					
-				} catch (InvocationTargetException x) {
-					String reason= x.getTargetException().getMessage();
-					MessageDialog.openError(parentShell, title, Utilities.getFormattedString(bundle, "replaceError", reason));	//$NON-NLS-1$
-				}
-			}
-		} else {
-			d.setCompareMode(true);
-
-			d.selectEdition(target, editions, null);			
-		}
-	}
-	
-	private void updateWorkspace(final ResourceBundle bundle, Shell shell,
-						final IStreamContentAccessor sa, final IFile file)
-									throws InvocationTargetException, InterruptedException {
-		
-		WorkspaceModifyOperation operation= new WorkspaceModifyOperation() {
-			public void execute(IProgressMonitor pm) throws InvocationTargetException {
-				try {
-					String taskName= Utilities.getString(bundle, "taskName"); //$NON-NLS-1$
-					pm.beginTask(taskName, IProgressMonitor.UNKNOWN);
-					file.setContents(sa.getContents(), false, true, pm);
-				} catch (CoreException e) {
-					throw new InvocationTargetException(e);
-				} finally {
-					pm.done();
-				}
-			}
-		};
-		
-		ProgressMonitorDialog pmdialog= new ProgressMonitorDialog(shell);				
-		pmdialog.run(false, true, operation);									
-	}
-	
-	private void updateDocument(IDocument document, IStreamContentAccessor sa) throws InvocationTargetException {
-		try {
-			InputStream is= sa.getContents();
-			String text= Utilities.readString(is);
-			document.replace(0, document.getLength(), text);
-		} catch (CoreException e) {
-			throw new InvocationTargetException(e);
-		} catch (BadLocationException e) {
-			throw new InvocationTargetException(e);
-		}
-	}
-	
-	private IDocument getDocument(IFile file) {
-		IWorkbench wb= PlatformUI.getWorkbench();
-		if (wb == null)
-			return null;
-		IWorkbenchWindow[] ws= wb.getWorkbenchWindows();
-		if (ws == null)
-			return null;
-			
-		FileEditorInput test= new FileEditorInput(file);
-		
-		for (int i= 0; i < ws.length; i++) {
-			IWorkbenchWindow w= ws[i];
-			IWorkbenchPage[] wps= w.getPages();
-			if (wps != null) {
-				for (int j= 0; j < wps.length; j++) {
-					IWorkbenchPage wp= wps[j];
-					IEditorPart ep= wp.findEditor(test);
-					if (ep instanceof ITextEditor) {
-						ITextEditor te= (ITextEditor) ep;
-						IDocumentProvider dp= te.getDocumentProvider();
-						if (dp != null) {
-							IDocument doc= dp.getDocument(ep);
-							if (doc != null)
-								return doc;
-						}
-					}
-				}
-			}
-		}
-		return null;
-	}
-	
-	private IFile[] getFiles(ISelection selection, boolean modifiable) {
-		ArrayList result= new ArrayList();
-		Object[] s= Utilities.toArray(selection);	
-		for (int i= 0; i < s.length; i++) {
-			Object o= s[i];
-			IFile file= null;
-			if (o instanceof IFile) {
-				file= (IFile) o;
-			} else if (o instanceof IAdaptable) {
-				IAdaptable a= (IAdaptable) o;
-				Object adapter= a.getAdapter(IResource.class);
-				if (adapter instanceof IFile)
-					file= (IFile) adapter;
-			}
-			if (file != null) {
-				if (modifiable) {
-					if (!file.isReadOnly())
-						result.add(file);
-				} else {
-					result.add(file);
-				}					
-			}
-		}
-		return (IFile[]) result.toArray(new IFile[result.size()]);
-	}
-
-
-}
-
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ExceptionHandler.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ExceptionHandler.java
deleted file mode 100644
index 3ea3ba5..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ExceptionHandler.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import java.io.StringWriter;
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.swt.widgets.Shell;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.dialogs.MessageDialog;
-
-/**
- * The default exception handler shows an error dialog when one of its handle methods
- * is called. If the passed exception is a <code>CoreException</code> an error dialog
- * pops up showing the exception's status information. For a <code>InvocationTargetException</code>
- * a normal message dialog pops up showing the exception's message. Additionally the exception
- * is written to the platform log.
- */
-public class ExceptionHandler {
-
-	private static ExceptionHandler fgInstance= new ExceptionHandler();
-	
-	/**
-	 * Logs the given exception using the platform's logging mechanism. The exception is
-	 * logged as an error with the error code <code>JavaStatusConstants.INTERNAL_ERROR</code>.
-	 */
-	public static void log(Throwable t, String message) {
-		CompareUIPlugin.log(new Status(IStatus.ERROR, CompareUIPlugin.getPluginId(), 
-			CompareUIPlugin.INTERNAL_ERROR, message, t));
-	}
-	
-	/**
-	 * Handles the given <code>CoreException</code>. The workbench shell is used as a parent
-	 * for the dialog window.
-	 * 
-	 * @param e the <code>CoreException</code> to be handled
-	 * @param title the dialog window's window title
-	 * @param message message to be displayed by the dialog window
-	 */
-	public static void handle(CoreException e, String title, String message) {
-		handle(e, CompareUIPlugin.getShell(), title, message);
-	}
-	
-	/**
-	 * Handles the given <code>CoreException</code>. 
-	 * 
-	 * @param e the <code>CoreException</code> to be handled
-	 * @param parent the dialog window's parent shell
-	 * @param title the dialog window's window title
-	 * @param message message to be displayed by the dialog window
-	 */
-	public static void handle(CoreException e, Shell parent, String title, String message) {
-		fgInstance.perform(e, parent, title, message);
-	}
-	
-	/**
-	 * Handles the given <code>InvocationTargetException</code>. The workbench shell is used 
-	 * as a parent for the dialog window.
-	 * 
-	 * @param e the <code>InvocationTargetException</code> to be handled
-	 * @param title the dialog window's window title
-	 * @param message message to be displayed by the dialog window
-	 */
-	public static void handle(InvocationTargetException e, String title, String message) {
-		handle(e, CompareUIPlugin.getShell(), title, message);
-	}
-	
-	/**
-	 * Handles the given <code>InvocationTargetException</code>. 
-	 * 
-	 * @param e the <code>InvocationTargetException</code> to be handled
-	 * @param parent the dialog window's parent shell
-	 * @param title the dialog window's window title
-	 * @param message message to be displayed by the dialog window
-	 */
-	public static void handle(InvocationTargetException e, Shell parent, String title, String message) {
-		fgInstance.perform(e, parent, title, message);
-	}
-
-	//---- Hooks for subclasses to control exception handling ------------------------------------
-	
-	protected void perform(CoreException e, Shell shell, String title, String message) {
-		CompareUIPlugin.log(e);
-		IStatus status= e.getStatus();
-		if (status != null) {
-			ErrorDialog.openError(shell, title, message, status);
-		} else {
-			displayMessageDialog(e, e.getMessage(), shell, title, message);
-		}
-	}
-
-	protected void perform(InvocationTargetException e, Shell shell, String title, String message) {
-		Throwable target= e.getTargetException();
-		if (target instanceof CoreException) {
-			perform((CoreException)target, shell, title, message);
-		} else {
-			CompareUIPlugin.log(e);
-			if (e.getMessage() != null && e.getMessage().length() > 0) {
-				displayMessageDialog(e, e.getMessage(), shell, title, message);
-			} else {
-				displayMessageDialog(e, target.getMessage(), shell, title, message);
-			}
-		}
-	}
-
-	//---- Helper methods -----------------------------------------------------------------------
-	
-	private void displayMessageDialog(Throwable t, String exceptionMessage, Shell shell, String title, String message) {
-		StringWriter msg= new StringWriter();
-		if (message != null) {
-			msg.write(message);
-			msg.write("\n\n"); //$NON-NLS-1$
-		}
-		if (exceptionMessage == null || exceptionMessage.length() == 0)
-			msg.write(CompareMessages.getString("ExceptionDialog.seeErrorLogMessage")); //$NON-NLS-1$
-		else
-			msg.write(exceptionMessage);
-		MessageDialog.openError(shell, title, msg.toString());			
-	}	
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ICompareContextIds.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ICompareContextIds.java
deleted file mode 100644
index a6df241..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ICompareContextIds.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import org.eclipse.compare.CompareUI;
-
-/**
- * Help context ids for the Compare UI.
- * <p>
- * This interface contains constants only; it is not intended to be implemented
- * or extended.
- * </p>
- * 
- */
-public interface ICompareContextIds {
-	
-	public static final String PREFIX= CompareUI.PLUGIN_ID + '.';
-	
-	// Dialogs
-	public static final String EDITION_DIALOG= PREFIX + "edition_dialog_context"; //$NON-NLS-1$
-
-	public static final String COMPARE_EDITOR= PREFIX + "compare_editor_context"; //$NON-NLS-1$
-	public static final String PATCH_INPUT_WIZARD_PAGE= PREFIX + "patch_input_wizard_page_context";	//$NON-NLS-1$
-	public static final String PATCH_PREVIEW_WIZARD_PAGE= PREFIX + "patch_preview_wizard_page_context";	//$NON-NLS-1$
-	public static final String ADD_FROM_HISTORY_DIALOG= PREFIX + "add_from_history_dialog_context"; //$NON-NLS-1$
-	public static final String COMPARE_DIALOG= PREFIX + "compare_dialog_context"; //$NON-NLS-1$
-	public static final String COMPARE_WITH_EDITION_DIALOG= PREFIX + "compare_with_edition_dialog_context"; //$NON-NLS-1$
-	public static final String REPLACE_WITH_EDITION_DIALOG= PREFIX + "replace_with_edition_dialog_context"; //$NON-NLS-1$
-	
-	// Viewer
-	public static final String TEXT_MERGE_VIEW= PREFIX + "text_merge_view_context"; //$NON-NLS-1$
-	public static final String IMAGE_COMPARE_VIEW= PREFIX + "image_compare_view_context"; //$NON-NLS-1$
-	public static final String BINARY_COMPARE_VIEW= PREFIX + "binary_compare_view_context"; //$NON-NLS-1$
-	public static final String DIFF_VIEW= PREFIX + "diff_view_context"; //$NON-NLS-1$
-	
-	// Actions
-	public static final String GLOBAL_NEXT_DIFF_ACTION= PREFIX + "global_next_diff_action_context"; //$NON-NLS-1$
-	public static final String GLOBAL_PREVIOUS_DIFF_ACTION= PREFIX + "global_previous_diff_action_context"; //$NON-NLS-1$
-	public static final String NEXT_DIFF_ACTION= PREFIX + "next_diff_action_context"; //$NON-NLS-1$
-	public static final String PREVIOUS_DIFF_ACTION= PREFIX + "previous_diff_action_context"; //$NON-NLS-1$
-	public static final String IGNORE_WHITESPACE_ACTION= PREFIX + "ignore_whitespace_action_context"; //$NON-NLS-1$
-
-	// Preference page
-	public static final String COMPARE_PREFERENCE_PAGE= PREFIX + "compare_preference_page_context"; //$NON-NLS-1$
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/INavigatable.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/INavigatable.java
deleted file mode 100644
index 3e64e2e..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/INavigatable.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-public interface INavigatable {
-	
-	static final String NAVIGATOR_PROPERTY= "org.eclipse.compare.internal.Navigator"; //$NON-NLS-1$
-	
-	/**
-	 * Returns true if at end or beginning.
-	 */
-	boolean gotoDifference(boolean next);
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/IOpenable.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/IOpenable.java
deleted file mode 100644
index 0138859..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/IOpenable.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-/*
- * Fix for http://dev.eclipse.org/bugs/show_bug.cgi?id=20106
- */ 
-public interface IOpenable {
-	
-	static final String OPENABLE_PROPERTY= "org.eclipse.compare.internal.Openable"; //$NON-NLS-1$
-	
-	/**
-	 * Opens the selected element
-	 */
-	void openSelected();
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ISavable.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ISavable.java
deleted file mode 100644
index a15db7c..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ISavable.java
+++ /dev/null
@@ -1,19 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.CoreException;
-
-public interface ISavable {
-	
-	void save(IProgressMonitor pm) throws CoreException;
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/IStructureCreatorDescriptor.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/IStructureCreatorDescriptor.java
deleted file mode 100644
index f5a845e..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/IStructureCreatorDescriptor.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import org.eclipse.compare.structuremergeviewer.IStructureCreator;
-
-/**
- * A factory object for creating <code>IStructureCreator</code>s from a descriptor.
- * <p>
- * It is used when registering <code>IStructureCreator</code> for types
- * in <code>CompareUIPlugin.registerStructureCreator</code>.
- * </p>
- *
- * @see IStructureCreator
- * @see CompareUIPlugin
- */
-public interface IStructureCreatorDescriptor {
-
-	/**
-	 * Creates a new structure creator.
-	 *
-	 * @return a newly created structure creator
-	 */
-	IStructureCreator createStructureCreator(); 
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/IViewerDescriptor.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/IViewerDescriptor.java
deleted file mode 100644
index 2dda66e..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/IViewerDescriptor.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import org.eclipse.swt.widgets.Composite;
-
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.compare.CompareConfiguration;
-
-/**
- * A factory object for creating a <code>Viewer</code>s from a descriptor.
- * <p>
- * It is used when registering a viewer for a specific type
- * in <code>CompareUIPlugin.registerContentViewerDescriptor</code> and
- * in <code>CompareUIPlugin.registerStructureViewerDescriptor</code>.
- *
- * @see org.eclipse.compare.structuremergeviewer.IStructureCreator
- * @see CompareUIPlugin
- */
-public interface IViewerDescriptor {
-
-	/**
-	 * Creates a new viewer from this descriptor under the given STW parent control.
-	 * If the current viewer has the same type as a new viewer
-	 * the implementation of this method is free to return the current viewer instead.
-	 *
-	 * @param currentViewer the current viewer which is going to be replaced with a new viewer.
-	 * @param parent the SWT parent control under which the new viewer has to be created.
-	 * @param config a compare configuration the new viewer might be interested in.
-	 * @return a new viewer or the current viewer.
-	 */
-	Viewer createViewer(Viewer currentViewer, Composite parent, CompareConfiguration config);
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/IgnoreWhiteSpaceAction.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/IgnoreWhiteSpaceAction.java
deleted file mode 100644
index b6b0fa1..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/IgnoreWhiteSpaceAction.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import java.util.ResourceBundle;
-
-import org.eclipse.compare.*;
-
-/**
- * Toggles the <code>ICompareConfiguration.IGNORE_WS</code> property of an
- * <code>ICompareConfiguration</code>.
- */
-public class IgnoreWhiteSpaceAction extends ChangePropertyAction {
-
-	public IgnoreWhiteSpaceAction(ResourceBundle bundle, CompareConfiguration cc) {
-		super(bundle, cc, "action.IgnoreWhiteSpace.", CompareConfiguration.IGNORE_WHITESPACE); //$NON-NLS-1$
-	}
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ImageCanvas.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ImageCanvas.java
deleted file mode 100644
index f598f89..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ImageCanvas.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.widgets.*;
-
-/**
- * A <code>Canvas</code> showing a single centered SWT <code>Image</code>.
- * If the <code>Image</code> is larger than the <code>Canvas<code>,
- * <code>Scrollbars</code> will appear.
- */
-class ImageCanvas extends Canvas {
-
-	private Image fImage;
-
-	/**
-	 * Create a new ImageCanvas with the given SWT stylebits.
-	 * (SWT.H_SCROLL and SWT.V_SCROLL are automtically added).
-	 */
-	public ImageCanvas(Composite parent, int style) {
-		super(parent, style | SWT.H_SCROLL | SWT.V_SCROLL);
-
-		ScrollBar sb= getHorizontalBar();
-		sb.setIncrement(20);
-		sb.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				repaint();
-			}
-		});
-
-		sb= getVerticalBar();
-		sb.setIncrement(20);
-		sb.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				repaint();
-			}
-		});
-
-		addListener(SWT.Resize, new Listener() {
-			public void handleEvent(Event e) {
-				updateScrollbars();
-			}
-		});
-
-		addListener(SWT.Paint, new Listener() {
-			public void handleEvent(Event event) {
-				paint(event.gc);
-			}
-		});
-	}
-
-	/**
-	 * Set the SWT Image to use as the ImageCanvas contents.
-	 */
-	public void setImage(Image img) {
-		fImage= img;
-
-		if (!isDisposed()) {
-			getHorizontalBar().setSelection(0);
-			getVerticalBar().setSelection(0);
-			updateScrollbars();
-			getParent().layout();
-			redraw();
-		}
-	}
-
-	public void repaint() {
-		if (!isDisposed()) {
-			GC gc= new GC(this);
-			paint(gc);
-			gc.dispose();
-		}
-	}
-
-	/**
-	 * @private
-	 */
-	void paint(GC gc) {
-		if (fImage != null) {
-			Rectangle bounds= fImage.getBounds();
-			Rectangle clientArea= getClientArea();
-
-			int x;
-			if (bounds.width < clientArea.width)
-				x= (clientArea.width - bounds.width) / 2;
-			else
-				x= -getHorizontalBar().getSelection();
-
-			int y;
-			if (bounds.height < clientArea.height)
-				y= (clientArea.height - bounds.height) / 2;
-			else
-				y= -getVerticalBar().getSelection();
-
-			gc.drawImage(fImage, x, y);
-		}
-	}
-
-	/**
-	 * @private
-	 */
-	void updateScrollbars() {
-		Rectangle bounds= fImage != null ? fImage.getBounds() : new Rectangle(0, 0, 0, 0);
-		Point size= getSize();
-		Rectangle clientArea= getClientArea();
-
-		ScrollBar horizontal= getHorizontalBar();
-		if (bounds.width <= clientArea.width) {
-			horizontal.setVisible(false);
-			horizontal.setSelection(0);
-		} else {
-			horizontal.setPageIncrement(clientArea.width - horizontal.getIncrement());
-			int max= bounds.width + (size.x - clientArea.width);
-			horizontal.setMaximum(max);
-			horizontal.setThumb(size.x > max ? max : size.x);
-			horizontal.setVisible(true);
-		}
-
-		ScrollBar vertical= getVerticalBar();
-		if (bounds.height <= clientArea.height) {
-			vertical.setVisible(false);
-			vertical.setSelection(0);
-		} else {
-			vertical.setPageIncrement(clientArea.height - vertical.getIncrement());
-			int max= bounds.height + (size.y - clientArea.height);
-			vertical.setMaximum(max);
-			vertical.setThumb(size.y > max ? max : size.y);
-			vertical.setVisible(true);
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ImageMergeViewer.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ImageMergeViewer.java
deleted file mode 100644
index e574dab..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ImageMergeViewer.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import java.io.InputStream;
-import java.io.IOException;
-import java.util.ResourceBundle;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.SWTException;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.help.WorkbenchHelp;
-
-import org.eclipse.core.runtime.CoreException;
-
-import org.eclipse.compare.*;
-import org.eclipse.compare.contentmergeviewer.ContentMergeViewer;
-
-/**
- */
-public class ImageMergeViewer extends ContentMergeViewer {
-	
-	private static final String BUNDLE_NAME= "org.eclipse.compare.internal.ImageMergeViewerResources"; //$NON-NLS-1$
-		
-	private Object fLeftImage;
-	private Object fRightImage;
-
-	private ImageCanvas fAncestor;
-	private ImageCanvas fLeft;
-	private ImageCanvas fRight;
-	
-			
-	public ImageMergeViewer(Composite parent, int styles, CompareConfiguration mp) {
-		super(styles, ResourceBundle.getBundle(BUNDLE_NAME), mp);
-
-		WorkbenchHelp.setHelp(parent, ICompareContextIds.IMAGE_COMPARE_VIEW);
-
-		buildControl(parent);
-		String title= Utilities.getString(getResourceBundle(), "title"); //$NON-NLS-1$
-		getControl().setData(CompareUI.COMPARE_VIEWER_TITLE, title);
-	}
-
-	protected void updateContent(Object ancestor, Object left, Object right) {
-		
-		setInput(fAncestor, ancestor);
-		
-		fLeftImage= left;
-		setInput(fLeft, left);
-		
-		fRightImage= right;
-		setInput(fRight, right);
-	}
-	
-	/**
-	 * We can't modify the contents of either side we just return null.
-	 */
-	protected byte[] getContents(boolean left) {
-		return null;
-	}
-	
-	public void createControls(Composite composite) {
-		fAncestor= new ImageCanvas(composite, SWT.NO_FOCUS);
-		fLeft= new ImageCanvas(composite, SWT.NO_FOCUS);
-		fRight= new ImageCanvas(composite, SWT.NO_FOCUS);
-	}
-
-	private static void setInput(ImageCanvas canvas, Object input) {
-		if (canvas != null) {
-
-			InputStream stream= null;
-			if (input instanceof IStreamContentAccessor) {
-				IStreamContentAccessor sca= (IStreamContentAccessor) input;
-				if (sca != null) {
-					try {
-						stream= sca.getContents();
-					} catch (CoreException ex) {
-					}
-				}
-			}
-			
-			Image image= null;			
-			Display display= canvas.getDisplay();
-			if (stream != null) {
-				try {
-					image= new Image(display, stream);
-				} catch (SWTException ex) {
-				}
-			}
-
-			canvas.setImage(image);
-			if (image != null) {
-				canvas.setBackground(display.getSystemColor(SWT.COLOR_LIST_BACKGROUND));
-			} else {
-				canvas.setBackground(null);
-			}
-			
-			if (stream != null) {
-				try {
-					stream.close();
-				} catch (IOException ex) {
-				}
-			}
-		}
-	}
-	
-	protected void handleResizeAncestor(int x, int y, int width, int height) {
-		if (width > 0) {
-			fAncestor.setVisible(true);
-			fAncestor.setBounds(x, y, width, height);
-		} else {
-			fAncestor.setVisible(false);
-		}
-	}
-
-	protected void handleResizeLeftRight(int x, int y, int width1, int centerWidth, int width2, int height) {
-		fLeft.setBounds(x, y, width1, height);
-		fRight.setBounds(x+width1+centerWidth, y, width2, height);
-	}
-	
-	protected void copy(boolean leftToRight) {
-		if (leftToRight) {
-			fRightImage= fLeftImage;
-			setInput(fRight, fRightImage);
-			setRightDirty(true);
-		} else {
-			fLeftImage= fRightImage;
-			setInput(fLeft, fLeftImage);
-			setLeftDirty(true);
-		}
-	}
-}
-
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ImageMergeViewerCreator.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ImageMergeViewerCreator.java
deleted file mode 100644
index ae0ab78..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ImageMergeViewerCreator.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-
-import org.eclipse.compare.*;
-import org.eclipse.jface.viewers.Viewer;
-
-/**
- * A factory object for the <code>ImageMergeViewer</code>.
- * This indirection is necessary because only objects with a default
- * constructor can be created via an extension point
- * (this precludes Viewers).
- */
-public class ImageMergeViewerCreator implements IViewerCreator {
-
-	public Viewer createViewer(Composite parent, CompareConfiguration mp) {
-		return new ImageMergeViewer(parent, SWT.NULL, mp);
-	}
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ImageMergeViewerResources.properties b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ImageMergeViewerResources.properties
deleted file mode 100644
index cb23466..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ImageMergeViewerResources.properties
+++ /dev/null
@@ -1,32 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-# @(#)ImageMergeViewerResources.properties
-#
-# Resource strings for ImageMergeViewer.java
-
-title= Image Compare
-
-#####################################################
-# Actions
-#####################################################
-
-action.CopyLeftToRight.label= Copy Left to Right
-action.CopyLeftToRight.tooltip= Copy Image from Left to Right
-action.CopyLeftToRight.image= elcl16/copy_r_co.gif
-
-action.CopyRightToLeft.label= Copy Right to Left
-action.CopyRightToLeft.tooltip= Copy Image from Right to Left
-action.CopyRightToLeft.image= elcl16/copy_l_co.gif
-
-action.EnableAncestor.label= Enable Ancestor Pane
-action.EnableAncestor.tooltip= Control Visibility of Ancestor Pane
-action.EnableAncestor.image= elcl16/ancestorpane_co.gif
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ListContentProvider.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ListContentProvider.java
deleted file mode 100644
index b39150c..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ListContentProvider.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import java.util.List;
-
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.Viewer;
-
-/** 
- * A specialized content provider to show a list of editor parts.
- */ 
-public class ListContentProvider implements IStructuredContentProvider {
-	List fContents;	
-
-	public ListContentProvider() {
-	}
-	
-	public Object[] getElements(Object input) {
-		if (fContents != null && fContents == input)
-			return fContents.toArray();
-		return new Object[0];
-	}
-
-	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-		if (newInput instanceof List) 
-			fContents= (List)newInput;
-		else
-			fContents= null;
-		// we use a fixed set.
-	}
-
-	public void dispose() {
-	}
-	
-	public boolean isDeleted(Object o) {
-		return fContents != null && !fContents.contains(o);
-	}
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ListDialog.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ListDialog.java
deleted file mode 100644
index 5df991b..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ListDialog.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.*;
-
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.viewers.*;
-
-import org.eclipse.ui.dialogs.SelectionDialog;
-
-public class ListDialog extends SelectionDialog {
-
-	private IStructuredContentProvider fContentProvider;
-	private ILabelProvider fLabelProvider;
-	private Object fInput;
-	private TableViewer fTableViewer;
-	private boolean fAddCancelButton;
-	
-	public ListDialog(Shell parent) {
-		super(parent);
-		fAddCancelButton= false;
-	}
-
-	public void setInput(Object input) {
-		fInput= input;
-	}
-	
-	public void setContentProvider(IStructuredContentProvider sp){
-		fContentProvider= sp;
-	}
-	
-	public void setLabelProvider(ILabelProvider lp){
-		fLabelProvider= lp;
-	}
-
-	public void setAddCancelButton(boolean addCancelButton) {
-		fAddCancelButton= addCancelButton;
-	}
-	
-	public TableViewer getTableViewer(){
-		return fTableViewer;
-	}
-			
-	public boolean hasFilters(){
-		return fTableViewer.getFilters() != null && fTableViewer.getFilters().length != 0;
-	}
-	
-	public void create() {
-		setShellStyle(SWT.DIALOG_TRIM | SWT.RESIZE);
-		super.create();
-	}
-	
-	protected void createButtonsForButtonBar(Composite parent) {
-		if (! fAddCancelButton)
-			createButton(parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL, true);
-		else
-			super.createButtonsForButtonBar(parent);	
-	}	
-	
-	protected Control createDialogArea(Composite container) {
-		Composite parent= (Composite) super.createDialogArea(container);
-		createMessageArea(parent);
-		fTableViewer= new TableViewer(parent, getTableStyle());
-		fTableViewer.setContentProvider(fContentProvider);
-		Table table= fTableViewer.getTable();
-		fTableViewer.setLabelProvider(fLabelProvider);
-		fTableViewer.setInput(fInput);
-		GridData gd= new GridData(GridData.FILL_BOTH);
-		gd.heightHint= convertHeightInCharsToPixels(15);
-		gd.widthHint= convertWidthInCharsToPixels(55);
-		table.setLayoutData(gd);
-		applyDialogFont(parent);
-		return parent;
-	}
-	
-	protected int getTableStyle() {
-		return SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER;
-	}
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/MergeSourceViewer.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/MergeSourceViewer.java
deleted file mode 100644
index 939bf58..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/MergeSourceViewer.java
+++ /dev/null
@@ -1,392 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import java.util.*;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.graphics.Font;
-
-import org.eclipse.jface.action.*;
-import org.eclipse.jface.viewers.*;
-import org.eclipse.jface.text.*;
-import org.eclipse.jface.text.source.*;
-
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-/**
- * Extends the JFace SourceViewer with some convenience methods.
- */
-public class MergeSourceViewer extends SourceViewer
-						implements ISelectionChangedListener, ITextListener, IMenuListener {
-								
-	public static final String UNDO_ID= "undo"; //$NON-NLS-1$
-	public static final String REDO_ID= "redo"; //$NON-NLS-1$
-	public static final String CUT_ID= "cut"; //$NON-NLS-1$
-	public static final String COPY_ID= "copy"; //$NON-NLS-1$
-	public static final String PASTE_ID= "paste"; //$NON-NLS-1$
-	public static final String DELETE_ID= "delete"; //$NON-NLS-1$
-	public static final String SELECT_ALL_ID= "selectAll"; //$NON-NLS-1$
-	public static final String SAVE_ID= "save"; //$NON-NLS-1$
-
-	class TextOperationAction extends MergeViewerAction {
-		
-		private int fOperationCode;
-		
-		TextOperationAction(int operationCode, boolean mutable, boolean selection, boolean content) {
-			super(mutable, selection, content);
-			fOperationCode= operationCode;
-			update();
-		}
-		
-		public void run() {
-			if (isEnabled())
-				doOperation(fOperationCode);
-		}
-
-		public boolean isEnabled() {
-			return fOperationCode != -1 && canDoOperation(fOperationCode);
-		}
-		
-		public void update() {
-			this.setEnabled(isEnabled());
-		}
-	}
-
-	private ResourceBundle fResourceBundle;
-	private Position fRegion;
-	private boolean fEnabled= true;
-	private HashMap fActions= new HashMap();
-	
-	private boolean fAddSaveAction= true;
-	
-	
-	public MergeSourceViewer(Composite parent, ResourceBundle bundle) {
-		super(parent, null, SWT.H_SCROLL + SWT.V_SCROLL);
-		
-		fResourceBundle= bundle;
-		
-		MenuManager menu= new MenuManager();
-		menu.setRemoveAllWhenShown(true);
-		menu.addMenuListener(this);
-		StyledText te= getTextWidget();
-		te.setMenu(menu.createContextMenu(te));
-	}
-	
-	public void hideSaveAction() {
-		fAddSaveAction= false;
-	}
-	
-	public void setFont(Font font) {
-		StyledText te= getTextWidget();
-		if (te != null)
-			te.setFont(font);
-	}
-	
-	public void setBackgroundColor(Color color) {
-		StyledText te= getTextWidget();
-		if (te != null)
-			te.setBackground(color);
-	}
-	
-	public void setEnabled(boolean enabled) {
-		if (enabled != fEnabled) {
-			fEnabled= enabled;
-			StyledText c= getTextWidget();
-			if (c != null) {
-				c.setEnabled(enabled);
-				Display d= c.getDisplay();
-				c.setBackground(enabled ? d.getSystemColor(SWT.COLOR_LIST_BACKGROUND) : null);
-			}
-		}
-	}
-	
-	public boolean getEnabled() {
-		return fEnabled;
-	}
-
-	public void setRegion(Position region) {
-		fRegion= region;
-	}
-	
-	public Position getRegion() {
-		return fRegion;
-	}
-	
-	public boolean isControlOkToUse() {
-		StyledText t= getTextWidget();
-		return t != null && !t.isDisposed();
-	}
-				
-	public void setSelection(Position position) {
-		if (position != null)
-			setSelectedRange(position.getOffset(), position.getLength());
-	}
-	
-	public void setLineBackground(Position position, Color c) {
-		StyledText t= getTextWidget();
-		if (t != null && !t.isDisposed()) {
-			Point region= new Point(0, 0);
-			getLineRange(position, region);
-		
-			region.x-= getDocumentRegionOffset();
-		
-			try {
-				t.setLineBackground(region.x, region.y, c);
-			} catch (IllegalArgumentException ex) {
-			}
-		}
-	}
-	
-	public void resetLineBackground() {
-		StyledText t= getTextWidget();
-		if (t != null && !t.isDisposed()) {
-			int lines= getLineCount();
-			t.setLineBackground(0, lines, null);
-		}
-	}
-	
-	/**
-	 * Returns number of lines in document region.
-	 */
-	public int getLineCount() {
-		IRegion region= getVisibleRegion();
-
-		int length= region.getLength();
-		if (length == 0)
-			return 0;
-		
-		IDocument doc= getDocument();
-		int startLine= 0;
-		int endLine= 0;
-
-		int start= region.getOffset();
-		try {
-			startLine= doc.getLineOfOffset(start);
-		} catch(BadLocationException ex) {
-		}
-		try {
-			endLine= doc.getLineOfOffset(start+length);
-		} catch(BadLocationException ex) {
-		}
-		
-		return endLine-startLine+1;
-	}
-	
-	public int getViewportLines() {
-		StyledText te= getTextWidget();
-		Rectangle clArea= te.getClientArea();
-		if (!clArea.isEmpty())
-			return clArea.height / te.getLineHeight();
-		return 0;
-	}
-
-	public int getViewportHeight() {
-		StyledText te= getTextWidget();
-		Rectangle clArea= te.getClientArea();
-		if (!clArea.isEmpty())
-			return clArea.height;
-		return 0;
-	}
-	
-	/**
-	 * Returns lines
-	 */
-	public int getDocumentRegionOffset() {
-		int start= getVisibleRegion().getOffset();
-		IDocument doc= getDocument();
-		if (doc != null) {
-			try {
-				return doc.getLineOfOffset(start);
-			} catch(BadLocationException ex) {
-			}
-		}
-		return 0;
-	}
-	
-	public int getVerticalScrollOffset() {
-		StyledText st= getTextWidget();
-		int lineHeight= st.getLineHeight();
-		return getTopInset() - ((getDocumentRegionOffset()*lineHeight) + st.getTopPixel());
-	}
-
-	/**
-	 * Returns the start line and the number of lines which correspond to the given position.
-	 * Starting line number is 0 based.
-	 */
-	public Point getLineRange(Position p, Point region) {
-		
-		IDocument doc= getDocument();
-		
-		if (p == null || doc == null) {
-			region.x= 0;
-			region.y= 0;
-			return region;
-		}
-		
-		int start= p.getOffset();
-		int length= p.getLength();
-		
-		int startLine= 0;
-		try {
-			startLine= doc.getLineOfOffset(start);
-		} catch (BadLocationException e) {
-		}
-		
-		int lineCount= 0;
-		
-		if (length == 0) {
-//			// if range length is 0 and if range starts a new line
-//			try {
-//				if (start == doc.getLineStartOffset(startLine)) {
-//					lines--;
-//				}
-//			} catch (BadLocationException e) {
-//				lines--;
-//			}
-			
-		} else {
-			int endLine= 0;
-			try {
-				endLine= doc.getLineOfOffset(start + length - 1);	// why -1?
-			} catch (BadLocationException e) {
-			}
-			lineCount= endLine-startLine+1;
-		}
-				
-		region.x= startLine;
-		region.y= lineCount;
-		return region;
-	}
-	
-	/**
-	 * Scroll TextPart to the given line.
-	 */
-	public void vscroll(int line) {
-
-		int srcViewSize= getLineCount();
-		int srcExtentSize= getViewportLines();
-
-		if (srcViewSize > srcExtentSize) {
-
-			if (line < 0)
-				line= 0;
-
-			int cp= getTopIndex();
-			if (cp != line)
-				setTopIndex(line + getDocumentRegionOffset());
-		}
-	}
-	
-	public void addAction(String actionId, MergeViewerAction action) {
-		fActions.put(actionId, action);
-	}
-	
-	public MergeViewerAction getAction(String actionId) {
-		MergeViewerAction action= (MergeViewerAction) fActions.get(actionId);
-		if (action == null) {
-			action= createAction(actionId);
-			if (action == null)
-				return null;
-			
-			if (action.isContentDependent())
-				addTextListener(this);
-			if (action.isSelectionDependent())
-				addSelectionChangedListener(this);
-				
-			Utilities.initAction(action, fResourceBundle, "action." + actionId + ".");			 //$NON-NLS-1$ //$NON-NLS-2$
-			fActions.put(actionId, action);
-		}
-		if (action.isEditableDependent() && !isEditable())
-			return null;
-		return action;
-	}
-	
-	protected MergeViewerAction createAction(String actionId) {
-		if (UNDO_ID.equals(actionId))
-			return new TextOperationAction(UNDO, true, false, true);
-		if (REDO_ID.equals(actionId))
-			return new TextOperationAction(REDO, true, false, true);
-		if (CUT_ID.equals(actionId))
-			return new TextOperationAction(CUT, true, true, false);
-		if (COPY_ID.equals(actionId))
-			return new TextOperationAction(COPY, false, true, false);
-		if (PASTE_ID.equals(actionId))
-			return new TextOperationAction(PASTE, true, false, false);
-		if (DELETE_ID.equals(actionId))
-			return new TextOperationAction(DELETE, true, false, false);
-		if (SELECT_ALL_ID.equals(actionId))
-			return new TextOperationAction(SELECT_ALL, false, false, false);
-		return null;
-	}
-	
-	public void selectionChanged(SelectionChangedEvent event) {
-		Iterator e= fActions.values().iterator();
-		while (e.hasNext()) {
-			MergeViewerAction action= (MergeViewerAction) e.next();
-			if (action.isSelectionDependent())
-				action.update();
-		}
-	}
-					
-	public void textChanged(TextEvent event) {
-		Iterator e= fActions.values().iterator();
-		while (e.hasNext()) {
-			MergeViewerAction action= (MergeViewerAction) e.next();
-			if (action.isContentDependent())
-				action.update();
-		}
-	}
-		
-	/**
-	 * Allows the viewer to add menus and/or tools to the context menu.
-	 */
-	public void menuAboutToShow(IMenuManager menu) {
-		
-		menu.add(new Separator("undo")); //$NON-NLS-1$
-		addMenu(menu, UNDO_ID);
-		addMenu(menu, REDO_ID);
-	
-		menu.add(new Separator("ccp")); //$NON-NLS-1$
-		addMenu(menu, CUT_ID);
-		addMenu(menu, COPY_ID);
-		addMenu(menu, PASTE_ID);
-		addMenu(menu, DELETE_ID);
-		addMenu(menu, SELECT_ALL_ID);
-
-		menu.add(new Separator("edit")); //$NON-NLS-1$
-		menu.add(new Separator("find")); //$NON-NLS-1$
-		//addMenu(menu, FIND_ID);
-		
-		menu.add(new Separator("save")); //$NON-NLS-1$
-		if (fAddSaveAction)
-			addMenu(menu, SAVE_ID);
-		
-		menu.add(new Separator("rest")); //$NON-NLS-1$
-	}
-	
-	private void addMenu(IMenuManager menu, String actionId) {
-		IAction action= getAction(actionId);
-		if (action != null)
-			menu.add(action);
-	}
-		
-	protected void handleDispose() {
-		
-		removeTextListener(this);
-		removeSelectionChangedListener(this);
-		
-		super.handleDispose();
-	}
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/MergeViewerAction.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/MergeViewerAction.java
deleted file mode 100644
index 590ab86..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/MergeViewerAction.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import org.eclipse.ui.texteditor.IUpdate;
-import org.eclipse.jface.action.Action;
-
-
-public abstract class MergeViewerAction extends Action implements IUpdate {
-	
-	private boolean fMutable;
-	private boolean fSelection;
-	private boolean fContent;
-	
-	public MergeViewerAction(boolean mutable, boolean selection, boolean content) {
-		fMutable= mutable;
-		fSelection= selection;
-		fContent= content;
-	}
-
-	public boolean isSelectionDependent() {
-		return fSelection;
-	}
-	
-	public boolean isContentDependent() {
-		return fContent;
-	}
-	
-	public boolean isEditableDependent() {
-		return fMutable;
-	}
-	
-	public void update() {
-	}
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/MergeViewerContentProvider.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/MergeViewerContentProvider.java
deleted file mode 100644
index 8002bb5..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/MergeViewerContentProvider.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import org.eclipse.swt.graphics.Image;
-
-import org.eclipse.jface.viewers.Viewer;
-
-import org.eclipse.compare.*;
-import org.eclipse.compare.structuremergeviewer.*;
-import org.eclipse.compare.contentmergeviewer.IMergeViewerContentProvider;
-
-/**
- * Adapts any <code>ContentMergeViewer</code> to work on an <code>ICompareInput</code>
- * e.g. a <code>DiffNode</code>.
- */
-public class MergeViewerContentProvider implements IMergeViewerContentProvider {
-	
-	private CompareConfiguration fCompareConfiguration;
-		
-	public MergeViewerContentProvider(CompareConfiguration cc) {
-		fCompareConfiguration= cc;
-	}
-	
-	public void dispose() {
-	}
-	
-	public void inputChanged(Viewer v, Object o1, Object o2) {
-		// we are not interested since we have no state
-	}
-	
-	//---- ancestor
-			
-	public String getAncestorLabel(Object element) {
-		return fCompareConfiguration.getAncestorLabel(element);
-	}
-	
-	public Image getAncestorImage(Object element) {
-		return fCompareConfiguration.getAncestorImage(element);
-	}
-	
-	public Object getAncestorContent(Object element) {
-		if (element instanceof ICompareInput)
-			return ((ICompareInput) element).getAncestor();
-		return null;
-	}
-	
-	public boolean showAncestor(Object element) {
-		if (element instanceof ICompareInput)
-			return (((ICompareInput)element).getKind() & Differencer.DIRECTION_MASK) == Differencer.CONFLICTING;
-		return false;
-	}
-
-	//---- left
-					
-	public String getLeftLabel(Object element) {
-		return fCompareConfiguration.getLeftLabel(element);
-	}
-	
-	public Image getLeftImage(Object element) {
-		return fCompareConfiguration.getLeftImage(element);
-	}
-	
-	public Object getLeftContent(Object element) {	
-		if (element instanceof ICompareInput)
-			return ((ICompareInput) element).getLeft();
-		return null;
-	}
-		
-	public boolean isLeftEditable(Object element) {
-		if (element instanceof ICompareInput) {
-			Object left= ((ICompareInput) element).getLeft();
-			if (left == null) {
-				IDiffElement parent= ((IDiffElement)element).getParent();
-				if (parent instanceof ICompareInput)
-					left= ((ICompareInput) parent).getLeft();
-			}
-			if (left instanceof IEditableContent)
-				return ((IEditableContent)left).isEditable();
-		}
-		return false;
-	}
-
-	public void saveLeftContent(Object element, byte[] bytes) {
-		if (element instanceof ICompareInput) {
-			ICompareInput node= (ICompareInput) element;
-			if (bytes != null) {
-				ITypedElement left= node.getLeft();
-				// #9869: problem if left is null (because no resource exists yet) nothing is done!
-				if (left == null) {
-					node.copy(false);
-					left= node.getLeft();
-				}
-				if (left instanceof IEditableContent)
-					((IEditableContent)left).setContent(bytes);
-				if (node instanceof ResourceCompareInput.MyDiffNode)
-					((ResourceCompareInput.MyDiffNode)node).fireChange();
-			} else {
-				node.copy(false);
-			}			
-		}
-	}
-	
-	//---- right
-	
-	public String getRightLabel(Object element) {
-		return fCompareConfiguration.getRightLabel(element);
-	}
-	
-	public Image getRightImage(Object element) {
-		return fCompareConfiguration.getRightImage(element);
-	}
-	
-	public Object getRightContent(Object element) {
-		if (element instanceof ICompareInput)
-			return ((ICompareInput) element).getRight();
-		return null;
-	}
-	
-	public boolean isRightEditable(Object element) {
-		if (element instanceof ICompareInput) {
-			Object right= ((ICompareInput) element).getRight();
-			if (right == null) {
-				IDiffContainer parent= ((IDiffElement)element).getParent();
-				if (parent instanceof ICompareInput)
-					right= ((ICompareInput) parent).getRight();
-			}
-			if (right instanceof IEditableContent)
-				return ((IEditableContent)right).isEditable();
-		}
-		return false;
-	}
-	
-	public void saveRightContent(Object element, byte[] bytes) {
-		if (element instanceof ICompareInput) {
-			ICompareInput node= (ICompareInput) element;
-			if (bytes != null) {
-				ITypedElement right= node.getRight();
-				// #9869: problem if right is null (because no resource exists yet) nothing is done!
-				if (right == null) {
-					node.copy(true);
-					right= node.getRight();
-				}
-				if (right instanceof IEditableContent)
-					((IEditableContent)right).setContent(bytes);
-				if (node instanceof ResourceCompareInput.MyDiffNode)
-					((ResourceCompareInput.MyDiffNode)node).fireChange();
-			} else {
-				node.copy(true);
-			}		
-		}
-	}
-}
-
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/NullViewer.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/NullViewer.java
deleted file mode 100644
index e35b93a..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/NullViewer.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.*;
-
-import org.eclipse.compare.CompareViewerSwitchingPane;
-
-/**
- * Used whenever the input is null or no viewer can be found.
- */
-public class NullViewer extends AbstractViewer {
-
-	private Control fDummy;
-
-	public NullViewer(Composite parent) {
-
-		fDummy= new Tree(parent, SWT.NULL);
-
-		CompareViewerSwitchingPane.clearToolBar(parent);
-	}
-
-	public Control getControl() {
-		return fDummy;
-	}
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/OverlayPreferenceStore.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/OverlayPreferenceStore.java
deleted file mode 100644
index 7484356..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/OverlayPreferenceStore.java
+++ /dev/null
@@ -1,451 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.preference.PreferenceStore;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-
-/**
- * An overlaying preference store.
- */
-public class OverlayPreferenceStore  implements IPreferenceStore {
-	
-	
-	public static final class TypeDescriptor {
-		private TypeDescriptor() {
-		}
-	};
-	
-	public static final TypeDescriptor BOOLEAN= new TypeDescriptor();
-	public static final TypeDescriptor DOUBLE= new TypeDescriptor();
-	public static final TypeDescriptor FLOAT= new TypeDescriptor();
-	public static final TypeDescriptor INT= new TypeDescriptor();
-	public static final TypeDescriptor LONG= new TypeDescriptor();
-	public static final TypeDescriptor STRING= new TypeDescriptor();
-	
-	public static class OverlayKey {
-		
-		TypeDescriptor fDescriptor;
-		String fKey;
-		
-		public OverlayKey(TypeDescriptor descriptor, String key) {
-			fDescriptor= descriptor;
-			fKey= key;
-		}
-	};
-	
-	private class PropertyListener implements IPropertyChangeListener {
-				
-		/*
-		 * @see IPropertyChangeListener#propertyChange(PropertyChangeEvent)
-		 */
-		public void propertyChange(PropertyChangeEvent event) {
-			OverlayKey key= findOverlayKey(event.getProperty());
-			if (key != null)
-				propagateProperty(fParent, key, fStore); 
-		}
-	};
-	
-	
-	private IPreferenceStore fParent;
-	private IPreferenceStore fStore;
-	private OverlayKey[] fOverlayKeys;
-	
-	private PropertyListener fPropertyListener;
-	
-	
-	public OverlayPreferenceStore(IPreferenceStore parent, OverlayKey[] overlayKeys) {
-		fParent= parent;
-		fOverlayKeys= overlayKeys;
-		fStore= new PreferenceStore();
-	}
-	
-	private OverlayKey findOverlayKey(String key) {
-		for (int i= 0; i < fOverlayKeys.length; i++) {
-			if (fOverlayKeys[i].fKey.equals(key))
-				return fOverlayKeys[i];
-		}
-		return null;
-	}
-	
-	private boolean covers(String key) {
-		return (findOverlayKey(key) != null);
-	}
-	
-	private void propagateProperty(IPreferenceStore orgin, OverlayKey key, IPreferenceStore target) {
-		
-		if (orgin.isDefault(key.fKey)) {
-			if (!target.isDefault(key.fKey))
-				target.setToDefault(key.fKey);
-			return;
-		}
-		
-		TypeDescriptor d= key.fDescriptor;
-		if (BOOLEAN == d) {
-			
-			boolean originValue= orgin.getBoolean(key.fKey);
-			boolean targetValue= target.getBoolean(key.fKey);
-			if (targetValue != originValue)
-				target.setValue(key.fKey, originValue);
-				
-		} else if (DOUBLE == d) {
-			
-			double originValue= orgin.getDouble(key.fKey);
-			double targetValue= target.getDouble(key.fKey);
-			if (targetValue != originValue)
-				target.setValue(key.fKey, originValue);
-		
-		} else if (FLOAT == d) {
-			
-			float originValue= orgin.getFloat(key.fKey);
-			float targetValue= target.getFloat(key.fKey);
-			if (targetValue != originValue)
-				target.setValue(key.fKey, originValue);
-				
-		} else if (INT == d) {
-
-			int originValue= orgin.getInt(key.fKey);
-			int targetValue= target.getInt(key.fKey);
-			if (targetValue != originValue)
-				target.setValue(key.fKey, originValue);
-
-		} else if (LONG == d) {
-
-			long originValue= orgin.getLong(key.fKey);
-			long targetValue= target.getLong(key.fKey);
-			if (targetValue != originValue)
-				target.setValue(key.fKey, originValue);
-
-		} else if (STRING == d) {
-
-			String originValue= orgin.getString(key.fKey);
-			String targetValue= target.getString(key.fKey);
-			if (targetValue != null && originValue != null && !targetValue.equals(originValue))
-				target.setValue(key.fKey, originValue);
-
-		}
-	}
-	
-	public void propagate() {
-		for (int i= 0; i < fOverlayKeys.length; i++)
-			propagateProperty(fStore, fOverlayKeys[i], fParent);
-	}
-	
-	private void loadProperty(IPreferenceStore orgin, OverlayKey key, IPreferenceStore target, boolean forceInitialization) {
-		TypeDescriptor d= key.fDescriptor;
-		if (BOOLEAN == d) {
-			
-			if (forceInitialization)
-				target.setValue(key.fKey, true);
-			target.setValue(key.fKey, orgin.getBoolean(key.fKey));
-			target.setDefault(key.fKey, orgin.getDefaultBoolean(key.fKey));
-			
-		} else if (DOUBLE == d) {
-			
-			if (forceInitialization)
-				target.setValue(key.fKey, 1.0D);
-			target.setValue(key.fKey, orgin.getDouble(key.fKey));
-			target.setDefault(key.fKey, orgin.getDefaultDouble(key.fKey));
-			
-		} else if (FLOAT == d) {
-			
-			if (forceInitialization)
-				target.setValue(key.fKey, 1.0F);
-			target.setValue(key.fKey, orgin.getFloat(key.fKey));
-			target.setDefault(key.fKey, orgin.getDefaultFloat(key.fKey));
-			
-		} else if (INT == d) {
-			
-			if (forceInitialization)
-				target.setValue(key.fKey, 1);
-			target.setValue(key.fKey, orgin.getInt(key.fKey));
-			target.setDefault(key.fKey, orgin.getDefaultInt(key.fKey));
-			
-		} else if (LONG == d) {
-			
-			if (forceInitialization)
-				target.setValue(key.fKey, 1L);
-			target.setValue(key.fKey, orgin.getLong(key.fKey));
-			target.setDefault(key.fKey, orgin.getDefaultLong(key.fKey));
-			
-		} else if (STRING == d) {
-			
-			if (forceInitialization)
-				target.setValue(key.fKey, "1");	//$NON-NLS-1$
-			target.setValue(key.fKey, orgin.getString(key.fKey));
-			target.setDefault(key.fKey, orgin.getDefaultString(key.fKey));
-			
-		}
-	}
-	
-	public void load() {
-		for (int i= 0; i < fOverlayKeys.length; i++)
-			loadProperty(fParent, fOverlayKeys[i], fStore, true);
-	}
-	
-	public void loadDefaults() {
-		for (int i= 0; i < fOverlayKeys.length; i++)
-			setToDefault(fOverlayKeys[i].fKey);
-	}
-	
-	public void start() {
-		if (fPropertyListener == null) {
-			fPropertyListener= new PropertyListener();
-			fParent.addPropertyChangeListener(fPropertyListener);
-		}
-	}
-	
-	public void stop() {
-		if (fPropertyListener != null)  {
-			fParent.removePropertyChangeListener(fPropertyListener);
-			fPropertyListener= null;
-		}
-	}
-	
-	/*
-	 * @see IPreferenceStore#addPropertyChangeListener(IPropertyChangeListener)
-	 */
-	public void addPropertyChangeListener(IPropertyChangeListener listener) {
-		fStore.addPropertyChangeListener(listener);
-	}
-	
-	/*
-	 * @see IPreferenceStore#removePropertyChangeListener(IPropertyChangeListener)
-	 */
-	public void removePropertyChangeListener(IPropertyChangeListener listener) {
-		fStore.removePropertyChangeListener(listener);
-	}
-	
-	/*
-	 * @see IPreferenceStore#firePropertyChangeEvent(String, Object, Object)
-	 */
-	public void firePropertyChangeEvent(String name, Object oldValue, Object newValue) {
-		fStore.firePropertyChangeEvent(name, oldValue, newValue);
-	}
-
-	/*
-	 * @see IPreferenceStore#contains(String)
-	 */
-	public boolean contains(String name) {
-		return fStore.contains(name);
-	}
-	
-	/*
-	 * @see IPreferenceStore#getBoolean(String)
-	 */
-	public boolean getBoolean(String name) {
-		return fStore.getBoolean(name);
-	}
-
-	/*
-	 * @see IPreferenceStore#getDefaultBoolean(String)
-	 */
-	public boolean getDefaultBoolean(String name) {
-		return fStore.getDefaultBoolean(name);
-	}
-
-	/*
-	 * @see IPreferenceStore#getDefaultDouble(String)
-	 */
-	public double getDefaultDouble(String name) {
-		return fStore.getDefaultDouble(name);
-	}
-
-	/*
-	 * @see IPreferenceStore#getDefaultFloat(String)
-	 */
-	public float getDefaultFloat(String name) {
-		return fStore.getDefaultFloat(name);
-	}
-
-	/*
-	 * @see IPreferenceStore#getDefaultInt(String)
-	 */
-	public int getDefaultInt(String name) {
-		return fStore.getDefaultInt(name);
-	}
-
-	/*
-	 * @see IPreferenceStore#getDefaultLong(String)
-	 */
-	public long getDefaultLong(String name) {
-		return fStore.getDefaultLong(name);
-	}
-
-	/*
-	 * @see IPreferenceStore#getDefaultString(String)
-	 */
-	public String getDefaultString(String name) {
-		return fStore.getDefaultString(name);
-	}
-
-	/*
-	 * @see IPreferenceStore#getDouble(String)
-	 */
-	public double getDouble(String name) {
-		return fStore.getDouble(name);
-	}
-
-	/*
-	 * @see IPreferenceStore#getFloat(String)
-	 */
-	public float getFloat(String name) {
-		return fStore.getFloat(name);
-	}
-
-	/*
-	 * @see IPreferenceStore#getInt(String)
-	 */
-	public int getInt(String name) {
-		return fStore.getInt(name);
-	}
-
-	/*
-	 * @see IPreferenceStore#getLong(String)
-	 */
-	public long getLong(String name) {
-		return fStore.getLong(name);
-	}
-
-	/*
-	 * @see IPreferenceStore#getString(String)
-	 */
-	public String getString(String name) {
-		return fStore.getString(name);
-	}
-
-	/*
-	 * @see IPreferenceStore#isDefault(String)
-	 */
-	public boolean isDefault(String name) {
-		return fStore.isDefault(name);
-	}
-
-	/*
-	 * @see IPreferenceStore#needsSaving()
-	 */
-	public boolean needsSaving() {
-		return fStore.needsSaving();
-	}
-
-	/*
-	 * @see IPreferenceStore#putValue(String, String)
-	 */
-	public void putValue(String name, String value) {
-		if (covers(name))
-			fStore.putValue(name, value);
-	}
-
-	/*
-	 * @see IPreferenceStore#setDefault(String, double)
-	 */
-	public void setDefault(String name, double value) {
-		if (covers(name))
-			fStore.setDefault(name, value);
-	}
-
-	/*
-	 * @see IPreferenceStore#setDefault(String, float)
-	 */
-	public void setDefault(String name, float value) {
-		if (covers(name))
-			fStore.setDefault(name, value);
-	}
-
-	/*
-	 * @see IPreferenceStore#setDefault(String, int)
-	 */
-	public void setDefault(String name, int value) {
-		if (covers(name))
-			fStore.setDefault(name, value);
-	}
-
-	/*
-	 * @see IPreferenceStore#setDefault(String, long)
-	 */
-	public void setDefault(String name, long value) {
-		if (covers(name))
-			fStore.setDefault(name, value);
-	}
-
-	/*
-	 * @see IPreferenceStore#setDefault(String, String)
-	 */
-	public void setDefault(String name, String value) {
-		if (covers(name))
-			fStore.setDefault(name, value);
-	}
-
-	/*
-	 * @see IPreferenceStore#setDefault(String, boolean)
-	 */
-	public void setDefault(String name, boolean value) {
-		if (covers(name))
-			fStore.setDefault(name, value);
-	}
-
-	/*
-	 * @see IPreferenceStore#setToDefault(String)
-	 */
-	public void setToDefault(String name) {
-		fStore.setToDefault(name);
-	}
-
-	/*
-	 * @see IPreferenceStore#setValue(String, double)
-	 */
-	public void setValue(String name, double value) {
-		if (covers(name))
-			fStore.setValue(name, value);
-	}
-
-	/*
-	 * @see IPreferenceStore#setValue(String, float)
-	 */
-	public void setValue(String name, float value) {
-		if (covers(name))
-			fStore.setValue(name, value);
-	}
-
-	/*
-	 * @see IPreferenceStore#setValue(String, int)
-	 */
-	public void setValue(String name, int value) {
-		if (covers(name))
-			fStore.setValue(name, value);
-	}
-
-	/*
-	 * @see IPreferenceStore#setValue(String, long)
-	 */
-	public void setValue(String name, long value) {
-		if (covers(name))
-			fStore.setValue(name, value);
-	}
-
-	/*
-	 * @see IPreferenceStore#setValue(String, String)
-	 */
-	public void setValue(String name, String value) {
-		if (covers(name))
-			fStore.setValue(name, value);
-	}
-
-	/*
-	 * @see IPreferenceStore#setValue(String, boolean)
-	 */
-	public void setValue(String name, boolean value) {
-		if (covers(name))
-			fStore.setValue(name, value);
-	}
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ReplaceWithEditionAction.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ReplaceWithEditionAction.java
deleted file mode 100644
index fdcc7bf..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ReplaceWithEditionAction.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-
-public class ReplaceWithEditionAction extends EditionAction {
-		
-	public ReplaceWithEditionAction() {
-		super(true, "org.eclipse.compare.internal.ReplaceWithEditionAction"); //$NON-NLS-1$
-		fHelpContextId= ICompareContextIds.REPLACE_WITH_EDITION_DIALOG;
-	}
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ReplaceWithEditionAction.properties b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ReplaceWithEditionAction.properties
deleted file mode 100644
index db582df..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ReplaceWithEditionAction.properties
+++ /dev/null
@@ -1,40 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-# @(#)ReplaceWithEditionAction.properties
-#
-# Resources for ReplaceWithEditionAction.java
-
-title= Replace from Local History
-
-treeTitleFormat= Local History of ''{0}''
-dateIcon= obj16/day_obj.gif
-timeIcon= obj16/resource_obj.gif
-
-treeFormat= {0}
-workspaceTreeFormat= {0} (Workspace File)
-parseErrorFormat= {0} (Parse Error)
-
-editionLabel= Local History ({0})
-workspaceEditionLabel= Workspace File
-
-targetLabel= {0}
-
-todayFormat= Today ({0})
-yesterdayFormat= Yesterday ({0})
-dayFormat= {0}
-
-buttonLabel= Replace
-
-noLocalHistoryError= No local history available for selected resource.
-replaceError=Can''t replace resource (reason: {0}).
-
-taskName=Replacing
\ No newline at end of file
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ReplaceWithPreviousEditionAction.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ReplaceWithPreviousEditionAction.java
deleted file mode 100644
index 3fa6b07..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ReplaceWithPreviousEditionAction.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-
-public class ReplaceWithPreviousEditionAction extends EditionAction {
-		
-	public ReplaceWithPreviousEditionAction() {
-		super(true,
-			"org.eclipse.compare.internal.ReplaceWithEditionAction");	//$NON-NLS-1$
-		fPrevious= true;
-	}
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ResizableDialog.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ResizableDialog.java
deleted file mode 100644
index 423ba97..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ResizableDialog.java
+++ /dev/null
@@ -1,161 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import java.util.ResourceBundle;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.help.WorkbenchHelp;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.dialogs.DialogSettings;
-
-
-/**
- * Base class for resizable Dialogs with persistent window bounds.
- */
-public abstract class ResizableDialog extends Dialog {
-
-	// dialog store id constants
-	private final static String DIALOG_BOUNDS_KEY= "ResizableDialogBounds"; //$NON-NLS-1$
-	private static final String X= "x"; //$NON-NLS-1$
-	private static final String Y= "y"; //$NON-NLS-1$
-	private static final String WIDTH= "width"; //$NON-NLS-1$
-	private static final String HEIGHT= "height"; //$NON-NLS-1$
-	
-	protected ResourceBundle fBundle;
-	private Rectangle fNewBounds;
-	private IDialogSettings fSettings;
-	private String fContextId;
-
-
-	public ResizableDialog(Shell parent, ResourceBundle bundle) {
-		super(parent);
-		setShellStyle(getShellStyle() | SWT.RESIZE | SWT.MAX);
-		
-		fBundle= bundle;
-		
-		fSettings= CompareUIPlugin.getDefault().getDialogSettings();
-	}
-	
-	public void setHelpContextId(String contextId) {
-		fContextId= contextId;
-	}
-
-	/*
-	 * @see org.eclipse.jface.window.Window#configureShell(Shell)
-	 */
-	protected void configureShell(Shell newShell) {
-		super.configureShell(newShell);
-		if (fContextId != null)
-			WorkbenchHelp.setHelp(newShell, fContextId);
-	}
-	
-	protected Point getInitialSize() {
-		
-		int width= 0;
-		int height= 0;
-		
-		final Shell s= getShell();
-		if (s != null) {
-			s.addControlListener(
-				new ControlListener() {
-					public void controlMoved(ControlEvent arg0) {
-						fNewBounds= s.getBounds();
-					}
-					public void controlResized(ControlEvent arg0) {
-						fNewBounds= s.getBounds();
-					}
-				}
-			);
-		}
-		
-		IDialogSettings bounds= fSettings.getSection(DIALOG_BOUNDS_KEY); //$NON-NLS-1$
-		if (bounds == null) {
-			if (fBundle != null) {
-				width= Utilities.getInteger(fBundle, WIDTH, 0);
-				height= Utilities.getInteger(fBundle, HEIGHT, 0);
-				Shell shell= getParentShell();
-				if (shell != null) {
-					Point parentSize= shell.getSize();
-					if (width <= 0)
-						width= parentSize.x-300;
-					if (height <= 0)
-						height= parentSize.y-200;
-				}
-			} else {
-				Shell shell= getParentShell();
-				if (shell != null) {
-					Point parentSize= shell.getSize();
-					width= parentSize.x-100;
-					height= parentSize.y-100;
-				}
-			}
-			if (width < 700)
-				width= 700;
-			if (height < 500)
-				height= 500;
-		} else {
-			try {
-				width= bounds.getInt(WIDTH);
-			} catch (NumberFormatException e) {
-				width= 700;
-			}
-			try {
-				height= bounds.getInt(HEIGHT);
-			} catch (NumberFormatException e) {
-				height= 500;
-			}
-		}	
-	
-		return new Point(width, height);
-	}
-	
-	protected Point getInitialLocation(Point initialSize) {
-		Point loc= super.getInitialLocation(initialSize);
-		
-		IDialogSettings bounds= fSettings.getSection(DIALOG_BOUNDS_KEY);
-		if (bounds != null) {
-			try {
-				loc.x= bounds.getInt(X);
-			} catch (NumberFormatException e) {
-			}
-			try {
-				loc.y= bounds.getInt(Y);
-			} catch (NumberFormatException e) {
-			}
-		}
-		return loc;
-	}
-	
-	public boolean close() {
-		boolean closed= super.close();
-		if (closed && fNewBounds != null)
-			saveBounds(fNewBounds);
-		return closed;
-	}
-
-	private void saveBounds(Rectangle bounds) {
-		IDialogSettings dialogBounds= fSettings.getSection(DIALOG_BOUNDS_KEY);
-		if (dialogBounds == null) {
-			dialogBounds= new DialogSettings(DIALOG_BOUNDS_KEY);
-			fSettings.addSection(dialogBounds);
-		}
-		dialogBounds.put(X, bounds.x);
-		dialogBounds.put(Y, bounds.y);
-		dialogBounds.put(WIDTH, bounds.width);
-		dialogBounds.put(HEIGHT, bounds.height);
-	}
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ResourceCompareInput.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ResourceCompareInput.java
deleted file mode 100644
index 042aac1..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ResourceCompareInput.java
+++ /dev/null
@@ -1,367 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import java.text.MessageFormat;
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.swt.widgets.Composite;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.Viewer;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.*;
-
-import org.eclipse.compare.*;
-import org.eclipse.compare.structuremergeviewer.*;
-
-
-/**
- * A two-way or three-way compare for arbitrary IResources.
- */
-class ResourceCompareInput extends CompareEditorInput {
-	
-	private static final boolean NORMALIZE_CASE= true;
-	
-	private boolean fThreeWay= false;
-	private Object fRoot;
-	private IStructureComparator fAncestor;
-	private IStructureComparator fLeft;
-	private IStructureComparator fRight;
-	private IResource fAncestorResource;
-	private IResource fLeftResource;
-	private IResource fRightResource;
-	private DiffTreeViewer fDiffViewer;
-	private IAction fOpenAction;
-	
-	class MyDiffNode extends DiffNode {
-		
-		private boolean fDirty= false;
-		private ITypedElement fLastId;
-		private String fLastName;
-		
-		
-		public MyDiffNode(IDiffContainer parent, int description, ITypedElement ancestor, ITypedElement left, ITypedElement right) {
-			super(parent, description, ancestor, left, right);
-		}
-		public void fireChange() {
-			super.fireChange();
-			setDirty(true);
-			fDirty= true;
-			if (fDiffViewer != null)
-				fDiffViewer.refresh(this);
-		}
-		void clearDirty() {
-			fDirty= false;
-		}
-		public String getName() {
-			if (fLastName == null)
-				fLastName= super.getName();
-			if (fDirty)
-				return '<' + fLastName + '>';
-			return fLastName;
-		}
-		
-		public ITypedElement getId() {
-			ITypedElement id= super.getId();
-			if (id == null)
-				return fLastId;
-			fLastId= id;
-			return id;
-		}
-	}
-	
-	/**
-	 * Creates an compare editor input for the given selection.
-	 */
-	ResourceCompareInput(CompareConfiguration config) {
-		super(config);
-	}
-			
-	public Viewer createDiffViewer(Composite parent) {
-		fDiffViewer= new DiffTreeViewer(parent, getCompareConfiguration()) {
-			protected void fillContextMenu(IMenuManager manager) {
-				
-				if (fOpenAction == null) {
-					fOpenAction= new Action() {
-						public void run() {
-							handleOpen(null);
-						}
-					};
-					Utilities.initAction(fOpenAction, getBundle(), "action.CompareContents."); //$NON-NLS-1$
-				}
-				
-				boolean enable= false;
-				ISelection selection= getSelection();
-				if (selection instanceof IStructuredSelection) {
-					IStructuredSelection ss= (IStructuredSelection)selection;
-					if (ss.size() == 1) {
-						Object element= ss.getFirstElement();
-						if (element instanceof MyDiffNode) {
-							ITypedElement te= ((MyDiffNode) element).getId();
-							if (te != null)
-								enable= !ITypedElement.FOLDER_TYPE.equals(te.getType());
-						} else
-							enable= true;
-					}
-				}
-				fOpenAction.setEnabled(enable);
-				
-				manager.add(fOpenAction);
-				
-				super.fillContextMenu(manager);
-			}
-		};
-		return fDiffViewer;
-	}
-
-	void setSelection(ISelection s) {
-		
-		IResource[] selection= Utilities.getResources(s);
-
-		fThreeWay= selection.length == 3;
-		
-		fAncestorResource= null;
-		fLeftResource= selection[0];
-		fRightResource= selection[1];
-		if (fThreeWay) {
-			fLeftResource= selection[1];		
-			fRightResource= selection[2];
-		}
-		
-		fAncestor= null;
-		fLeft= getStructure(fLeftResource);
-		fRight= getStructure(fRightResource);
-					
-		if (fThreeWay) {
-			fAncestorResource= selection[0];
-			fAncestor= getStructure(fAncestorResource);
-		}
-	}
-	
-	/**
-	 * Returns true if compare can be executed for the given selection.
-	 */
-	public boolean isEnabled(ISelection s) {
-		
-		IResource[] selection= Utilities.getResources(s);
-		if (selection.length < 2 || selection.length > 3)
-			return false;
-
-		fThreeWay= selection.length == 3;
-		
-		fLeftResource= selection[0];
-		fRightResource= selection[1];
-		if (fThreeWay) {
-			fLeftResource= selection[1];		
-			fRightResource= selection[2];
-		}
-							
-		if (!comparable(fLeftResource, fRightResource))
-			return false;
-
-		if (fThreeWay) {
-			fAncestorResource= selection[0];
-			
-			if (!comparable(fLeftResource, fRightResource))
-				return false;
-		}
-
-		return true;
-	}
-	
-	/**
-	 * Initializes the images in the compare configuration.
-	 */
-	void initializeCompareConfiguration() {
-		CompareConfiguration cc= getCompareConfiguration();
-		if (fLeftResource != null) {
-			cc.setLeftLabel(buildLabel(fLeftResource));
-			cc.setLeftImage(CompareUIPlugin.getImage(fLeftResource));
-		}
-		if (fRightResource != null) {
-			cc.setRightLabel(buildLabel(fRightResource));
-			cc.setRightImage(CompareUIPlugin.getImage(fRightResource));
-		}
-		if (fThreeWay && fAncestorResource != null) {			
-			cc.setAncestorLabel(buildLabel(fAncestorResource));
-			cc.setAncestorImage(CompareUIPlugin.getImage(fAncestorResource));
-		}
-	}
-	
-	/**
-	 * Returns true if both resources are either structured or unstructured.
-	 */
-	private boolean comparable(IResource c1, IResource c2) {
-		return hasStructure(c1) == hasStructure(c2);
-	}
-	
-	/**
-	 * Returns true if the given argument has a structure.
-	 */
-	private boolean hasStructure(IResource input) {
-		
-		if (input instanceof IContainer)
-			return true;
-			
-		if (input instanceof IFile) {
-			IFile file= (IFile) input;
-			String type= file.getFileExtension();
-			if (type != null) {
-				type= normalizeCase(type);
-				return "JAR".equals(type) || "ZIP".equals(type);	//$NON-NLS-2$ //$NON-NLS-1$
-			}
-		}
-		
-		return false;
-	}
-	
-	/**
-	 * Creates a <code>IStructureComparator</code> for the given input.
-	 * Returns <code>null</code> if no <code>IStructureComparator</code>
-	 * can be found for the <code>IResource</code>.
-	 */
-	private IStructureComparator getStructure(IResource input) {
-		
-		if (input instanceof IContainer)
-			return new BufferedResourceNode(input);
-			
-		if (input instanceof IFile) {
-			IStructureComparator rn= new BufferedResourceNode(input);
-			IFile file= (IFile) input;
-			String type= normalizeCase(file.getFileExtension());
-			if ("JAR".equals(type) || "ZIP".equals(type)) //$NON-NLS-2$ //$NON-NLS-1$
-				return new ZipFileStructureCreator().getStructure(rn);
-			return rn;
-		}
-		return null;
-	}
-	
-	/**
-	 * Performs a two-way or three-way diff on the current selection.
-	 */
-	public Object prepareInput(IProgressMonitor pm) throws InvocationTargetException {
-				
-		try {
-			// fix for PR 1GFMLFB: ITPUI:WIN2000 - files that are out of sync with the file system appear as empty							
-			fLeftResource.refreshLocal(IResource.DEPTH_INFINITE, pm);
-			fRightResource.refreshLocal(IResource.DEPTH_INFINITE, pm);
-			if (fThreeWay && fAncestorResource != null)
-				fAncestorResource.refreshLocal(IResource.DEPTH_INFINITE, pm);
-			// end fix						
-				
-			pm.beginTask(Utilities.getString("ResourceCompare.taskName"), IProgressMonitor.UNKNOWN); //$NON-NLS-1$
-
-			String leftLabel= fLeftResource.getName();
-			String rightLabel= fRightResource.getName();
-			
-			String title;
-			if (fThreeWay) {			
-				String format= Utilities.getString("ResourceCompare.threeWay.title"); //$NON-NLS-1$
-				String ancestorLabel= fAncestorResource.getName();
-				title= MessageFormat.format(format, new String[] {ancestorLabel, leftLabel, rightLabel});	
-			} else {
-				String format= Utilities.getString("ResourceCompare.twoWay.title"); //$NON-NLS-1$
-				title= MessageFormat.format(format, new String[] {leftLabel, rightLabel});
-			}
-			setTitle(title);
-			
-			Differencer d= new Differencer() {
-				protected Object visit(Object parent, int description, Object ancestor, Object left, Object right) {
-					return new MyDiffNode((IDiffContainer) parent, description, (ITypedElement)ancestor, (ITypedElement)left, (ITypedElement)right);
-				}
-			};
-			
-			fRoot= d.findDifferences(fThreeWay, pm, null, fAncestor, fLeft, fRight);
-			return fRoot;
-			
-		} catch (CoreException ex) {
-			throw new InvocationTargetException(ex);
-		} finally {
-			pm.done();
-		}
-	}
-	
-	public String getToolTipText() {
-		if (fLeftResource != null && fRightResource != null) {
-			String leftLabel= fLeftResource.getFullPath().makeRelative().toString();
-			String rightLabel= fRightResource.getFullPath().makeRelative().toString();			
-			if (fThreeWay) {			
-				String format= Utilities.getString("ResourceCompare.threeWay.tooltip"); //$NON-NLS-1$
-				String ancestorLabel= fAncestorResource.getFullPath().makeRelative().toString();
-				return MessageFormat.format(format, new String[] {ancestorLabel, leftLabel, rightLabel});
-			} else {
-				String format= Utilities.getString("ResourceCompare.twoWay.tooltip"); //$NON-NLS-1$
-				return MessageFormat.format(format, new String[] {leftLabel, rightLabel});
-			}
-		}
-		// fall back
-		return super.getToolTipText();
-	}
-	
-	private String buildLabel(IResource r) {
-		String n= r.getFullPath().toString();
-		if (n.charAt(0) == IPath.SEPARATOR)
-			return n.substring(1);
-		return n;
-	}
-	
-	public void saveChanges(IProgressMonitor pm) throws CoreException {
-		super.saveChanges(pm);
-		if (fRoot instanceof DiffNode) {
-			try {
-				commit(pm, (DiffNode) fRoot);
-			} finally {
-				if (fDiffViewer != null)
-					fDiffViewer.refresh();				
-				setDirty(false);
-			}
-		}
-	}
-	
-	/*
-	 * Recursively walks the diff tree and commits all changes.
-	 */
-	private static void commit(IProgressMonitor pm, DiffNode node) throws CoreException {
-		
-		if (node instanceof MyDiffNode)		
-			((MyDiffNode)node).clearDirty();
-		
-		ITypedElement left= node.getLeft();
-		if (left instanceof BufferedResourceNode)
-			((BufferedResourceNode) left).commit(pm);
-			
-		ITypedElement right= node.getRight();
-		if (right instanceof BufferedResourceNode)
-			((BufferedResourceNode) right).commit(pm);
-
-		IDiffElement[] children= node.getChildren();
-		if (children != null) {
-			for (int i= 0; i < children.length; i++) {
-				IDiffElement element= children[i];
-				if (element instanceof DiffNode)
-					commit(pm, (DiffNode) element);
-			}
-		}
-	}
-	
-	private static String normalizeCase(String s) {
-		if (NORMALIZE_CASE && s != null)
-			return s.toUpperCase();
-		return s;
-	}
-}
-
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ShowPseudoConflicts.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ShowPseudoConflicts.java
deleted file mode 100644
index 5815270..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ShowPseudoConflicts.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import java.util.ResourceBundle;
-
-import org.eclipse.compare.*;
-
-/**
- * Toggles the <code>ICompareConfiguration.SHOW_PSEUDO_CONFLICTS</code> property of an
- * <code>ICompareConfiguration</code>.
- */
-public class ShowPseudoConflicts extends ChangePropertyAction {
-
-	public ShowPseudoConflicts(ResourceBundle bundle, CompareConfiguration cc) {
-		super(bundle, cc, "action.ShowPseudoConflicts.", CompareConfiguration.SHOW_PSEUDO_CONFLICTS); //$NON-NLS-1$
-	}
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/SimpleTextViewer.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/SimpleTextViewer.java
deleted file mode 100644
index 1346348..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/SimpleTextViewer.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-
-import org.eclipse.jface.text.source.SourceViewer;
-import org.eclipse.jface.text.Document;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.compare.*;
-import org.eclipse.compare.structuremergeviewer.ICompareInput;
-
-
-public class SimpleTextViewer extends AbstractViewer {
-		
-	private SourceViewer fSourceViewer;
-	private ICompareInput fInput;
-	
-	
-	SimpleTextViewer(Composite parent) {
-		fSourceViewer= new SourceViewer(parent, null, SWT.H_SCROLL + SWT.V_SCROLL);
-		fSourceViewer.setEditable(false);
-	}
-		
-	public Control getControl() {
-		return fSourceViewer.getTextWidget();
-	}
-	
-	public void setInput(Object input) {
-		if (input instanceof IStreamContentAccessor) {
-			fSourceViewer.setDocument(new Document(getString(input)));
-		} else if (input instanceof ICompareInput) {
-			fInput= (ICompareInput) input;
-			ITypedElement left= ((ICompareInput) fInput).getLeft();
-			fSourceViewer.setDocument(new Document(getString(left)));
-		}
-	}
-	
-	public Object getInput() {
-		return fInput;
-	}
-	
-	private String getString(Object input) {
-		
-		if (input instanceof IStreamContentAccessor) {
-			IStreamContentAccessor sca= (IStreamContentAccessor) input;
-			try {
-				return Utilities.readString(sca.getContents());
-			} catch (CoreException ex) {
-			}
-		}
-		return ""; //$NON-NLS-1$
-	}
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/TabFolderLayout.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/TabFolderLayout.java
deleted file mode 100644
index 739b82f..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/TabFolderLayout.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Layout;
-
-public class TabFolderLayout extends Layout {
-
-	protected Point computeSize (Composite composite, int wHint, int hHint, boolean flushCache) {
-		if (wHint != SWT.DEFAULT && hHint != SWT.DEFAULT)
-			return new Point(wHint, hHint);
-			
-		Control [] children = composite.getChildren ();
-		int count = children.length;
-		int maxWidth = 0, maxHeight = 0;
-		for (int i=0; i<count; i++) {
-			Control child = children [i];
-			Point pt = child.computeSize (SWT.DEFAULT, SWT.DEFAULT, flushCache);
-			maxWidth = Math.max (maxWidth, pt.x);
-			maxHeight = Math.max (maxHeight, pt.y);
-		}
-		
-		if (wHint != SWT.DEFAULT)
-			maxWidth= wHint;
-		if (hHint != SWT.DEFAULT)
-			maxHeight= hHint;
-		
-		return new Point(maxWidth, maxHeight);	
-		
-	}
-	
-	protected void layout (Composite composite, boolean flushCache) {
-		Rectangle rect= composite.getClientArea();
-	
-		Control[] children = composite.getChildren();
-		for (int i = 0; i < children.length; i++) {
-			children[i].setBounds(rect);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/TextMergeViewerCreator.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/TextMergeViewerCreator.java
deleted file mode 100644
index 1a5d1d8..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/TextMergeViewerCreator.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import org.eclipse.swt.widgets.Composite;
-
-import org.eclipse.jface.viewers.Viewer;
-
-import org.eclipse.compare.*;
-import org.eclipse.compare.contentmergeviewer.TextMergeViewer;
-
-/**
- * A factory object for the <code>TextMergeViewer</code>.
- * This indirection is necessary because only objects with a default
- * constructor can be created via an extension point
- * (this precludes Viewers).
- */
-public class TextMergeViewerCreator implements IViewerCreator {
-
-	public Viewer createViewer(Composite parent, CompareConfiguration mp) {
-		return new TextMergeViewer(parent, mp);
-	}
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/TextViewerCreator.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/TextViewerCreator.java
deleted file mode 100644
index 66eaba9..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/TextViewerCreator.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import org.eclipse.swt.widgets.Composite;
-
-import org.eclipse.jface.viewers.Viewer;
-
-import org.eclipse.compare.CompareConfiguration;
-import org.eclipse.compare.IViewerCreator;
-
-
-/**
- * A factory object for the <code>TextMergeViewer</code>.
- * This indirection is necessary because only objects with a default
- * constructor can be created via an extension point
- * (this precludes Viewers).
- */
-public class TextViewerCreator implements IViewerCreator {
-
-	public Viewer createViewer(Composite parent, CompareConfiguration mp) {
-		return new SimpleTextViewer(parent);
-	}
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/TimeoutContext.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/TimeoutContext.java
deleted file mode 100644
index efbfa3c..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/TimeoutContext.java
+++ /dev/null
@@ -1,384 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-
-import org.eclipse.jface.dialogs.*;
-import org.eclipse.jface.operation.*;
-import org.eclipse.jface.resource.JFaceResources;
-
-import org.eclipse.core.runtime.*;
-
-/**
- * A modal dialog that displays progress during a long running operation.
- */
-public class TimeoutContext {
-
-	private static class ModalContextThread extends Thread {
-		
-		private boolean fWorking;
-		private IRunnableWithProgress fRunnable;
-		private Throwable fThrowable;
-		private IProgressMonitor fProgressMonitor;
-		private boolean fContinueEventDispatching= true;
-		private Display fDisplay;
-
-		private ModalContextThread(IRunnableWithProgress operation, IProgressMonitor monitor) {
-			super("TimeoutContext"); //$NON-NLS-1$
-			fRunnable= operation;
-			fProgressMonitor= monitor;
-		}
-		
-		synchronized boolean timeout(Display display) {
-			fDisplay= display;
-			return fWorking;
-		}
-		
-		public void run() {
-			try {
-				fWorking= true;
-				if (fRunnable != null)
-					fRunnable.run(fProgressMonitor);
-			} catch (InvocationTargetException e) {
-				fThrowable= e;
-			} catch (InterruptedException e) {
-				fThrowable= e;
-			} catch (RuntimeException e) {
-				fThrowable= e;
-			} catch (ThreadDeath e) {
-				// Make sure to propagate ThreadDeath, or threads will never fully terminate
-				throw e;
-			} catch (Error e) {
-				fThrowable= e;
-			} finally {
-				fWorking= false;
-	
-				if (fDisplay != null) {
-					// Make sure that all events in the asynchronous event queue
-					// are dispatched.
-					fDisplay.syncExec(
-						new Runnable() {
-							public void run() {
-								// do nothing
-							}
-						}
-					);
-					
-					// Stop event dispatching
-					fContinueEventDispatching= false;
-					
-					// Force the event loop to return from sleep () so that
-					// it stops event dispatching.
-					fDisplay.asyncExec(null);
-				}
-			}	
-		}
-		
-		public void block() {
-			while (fContinueEventDispatching)
-				if (!fDisplay.readAndDispatch())
-					fDisplay.sleep();
-		}		
-	}
-	
-	static class ProgressMonitorDialog extends org.eclipse.jface.dialogs.Dialog {
-
-		protected ProgressIndicator fProgressIndicator;
-		protected Label fTaskLabel;
-		protected Label fSubTaskLabel;
-		protected Button fCancel;
-		protected boolean fEnableCancelButton;
-		private ProgressMonitor fProgressMonitor;
-		private Cursor fArrowCursor;
-		private Cursor fWaitCursor;
-		private Shell fParentShell;
-		
-		private ProgressMonitorDialog(Shell parent, boolean cancelable, ProgressMonitor pm) {
-			super(parent);
-			fProgressMonitor= pm;
-			fParentShell= parent;
-			fEnableCancelButton= cancelable;
-			this.setBlockOnOpen(false);
-			setShellStyle(SWT.BORDER | SWT.TITLE | SWT.APPLICATION_MODAL); // no close button
-		}
-		
-		public boolean close() {
-			if (fCancel != null && !fCancel.isDisposed())
-				fCancel.setCursor(null);
-			Shell shell= getShell();
-			if (shell != null && !shell.isDisposed())
-				shell.setCursor(null);
-			if (fArrowCursor != null)
-				fArrowCursor.dispose();
-			if (fWaitCursor != null)
-				fWaitCursor.dispose();
-			fArrowCursor= null;
-			fWaitCursor= null;
-			return super.close();
-		}
-		
-		protected void configureShell(Shell shell) {
-			super.configureShell(shell);
-			shell.setText(JFaceResources.getString("ProgressMonitorDialog.title")); //$NON-NLS-1$
-			if (fWaitCursor == null)
-				fWaitCursor= new Cursor(shell.getDisplay(),SWT.CURSOR_WAIT);
-			shell.setCursor(fWaitCursor);
-		}
-		
-		protected void createButtonsForButtonBar(Composite parent) {
-			// cancel button		
-			fCancel= createButton(parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, true);
-			if(fArrowCursor == null)
-				fArrowCursor= new Cursor(fCancel.getDisplay(),SWT.CURSOR_ARROW);		
-			fCancel.setCursor(fArrowCursor);
-			fCancel.addListener(SWT.Selection,
-				new Listener() {
-					public void handleEvent(Event e) {
-						if (fCancel != null && !fCancel.isDisposed())
-							fCancel.setEnabled(false);
-						fProgressMonitor.setCanceled(true);
-					}
-				}
-			);
-			fCancel.setEnabled(fEnableCancelButton);
-		}
-		
-		protected Control createDialogArea(Composite parent) {
-		
-			Composite c= (Composite)super.createDialogArea(parent);
-			((GridLayout)c.getLayout()).numColumns= 2;
-	
-			// icon
-			Label iconLabel= new Label(c, SWT.LEFT);
-			GridData gd= new GridData();
-			iconLabel.setLayoutData(gd);
-			iconLabel.setFont(parent.getFont());
-			Image i= JFaceResources.getImageRegistry().get(org.eclipse.jface.dialogs.Dialog.DLG_IMG_INFO);
-			if (i != null)
-				iconLabel.setImage(i);
-			else
-				iconLabel.setText(JFaceResources.getString("Image_not_found")); //$NON-NLS-1$
-	
-			// label on right hand side of icon
-			fTaskLabel= new Label(c, SWT.LEFT | SWT.WRAP);
-			fTaskLabel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-			fTaskLabel.setFont(parent.getFont());
-	
-			// progress indicator
-			fProgressIndicator= new ProgressIndicator(c);
-			gd= new GridData();
-			gd.heightHint= 15;
-			gd.horizontalAlignment= GridData.FILL;
-			gd.grabExcessHorizontalSpace= true;
-			gd.horizontalSpan= 2;
-			fProgressIndicator.setLayoutData(gd);
-	
-			// label showing current task
-			fSubTaskLabel= new Label(c, SWT.LEFT | SWT.WRAP);
-			gd= new GridData(GridData.FILL_HORIZONTAL);
-			gd.heightHint= 35;	
-			gd.horizontalSpan= 2;
-			fSubTaskLabel.setLayoutData(gd);
-			fSubTaskLabel.setFont(parent.getFont());
-						
-			// update with values fProgressMonitor
-			String s= fProgressMonitor.fTask;
-			if (s == null)
-				s= ""; //$NON-NLS-1$
-			fTaskLabel.setText(s);
-			
-			if (fProgressMonitor.fMaxWork == IProgressMonitor.UNKNOWN)
-				fProgressIndicator.beginAnimatedTask();
-			else
-				fProgressIndicator.beginTask(fProgressMonitor.fMaxWork);
-
-			if (fProgressMonitor.fSubTask != null)
-				fSubTaskLabel.setText(fProgressMonitor.fSubTask);
-			fProgressIndicator.worked(fProgressMonitor.fWorked);
-	
-			fProgressMonitor.activate(this);
-			applyDialogFont(c);
-			return c;
-		}
-		
-		void beginTask(final String name, final int totalWork) {
-			fParentShell.getDisplay().syncExec(
-				new Runnable() {
-					public void run() {
-						fTaskLabel.setText(name);
-						
-						if (fProgressIndicator != null && fProgressIndicator.isDisposed()) {
-							if (totalWork == IProgressMonitor.UNKNOWN)
-								fProgressIndicator.beginAnimatedTask();
-							else
-								fProgressIndicator.beginTask(totalWork);
-						}
-					}
-				}
-			);
-		}
-		
-		void setTaskName(final String name) {
-			fParentShell.getDisplay().syncExec(
-				new Runnable() {
-					public void run() {
-						if (fTaskLabel != null && fTaskLabel.isDisposed())
-							fTaskLabel.setText(name);
-					}
-				}
-			);
-		}
-
-		void setSubTaskName(final String name) {
-			fParentShell.getDisplay().syncExec(
-				new Runnable() {
-					public void run() {
-						String n= (name == null) ? "" : name;	//$NON-NLS-1$
-						if (fSubTaskLabel != null && !fSubTaskLabel.isDisposed())
-							fSubTaskLabel.setText(n);
-					}
-				}
-			);	
-		}
-		
-		void done() {
-			fParentShell.getDisplay().syncExec(
-				new Runnable() {
-					public void run() {
-						if (fProgressIndicator != null && !fProgressIndicator.isDisposed()) {
-							fProgressIndicator.sendRemainingWork();
-							fProgressIndicator.done();
-						}
-					}
-				}
-			);
-		}
-		
-		void worked(final double work) {
-			fParentShell.getDisplay().syncExec(
-				new Runnable() {
-					public void run() {
-						if (fProgressIndicator != null && !fProgressIndicator.isDisposed())
-							fProgressIndicator.worked(work);
-					}
-				}
-			);
-		}
-
-		protected Point getInitialSize() {
-			return getShell().computeSize(450, SWT.DEFAULT);
-		}
-	}
-
-	private static class ProgressMonitor implements IProgressMonitor {
-		
-		private int fMaxWork;
-		private String fTask;
-		private String fSubTask;
-		private int fWorked;
-		private ProgressMonitorDialog fProgressMonitorDialog;
-		private boolean fIsCanceled;
-		
-		public void beginTask(String name, int totalWork) {
-			
-			fTask= name;
-			fMaxWork= totalWork;
-			fWorked= 0;
-			
-			if (fProgressMonitorDialog != null)	
-				fProgressMonitorDialog.beginTask(name, totalWork);			
-		}
-		
-		void activate(ProgressMonitorDialog dialog) {
-			fProgressMonitorDialog= dialog;
-		}
-		
-		public void done() {
-			if (fProgressMonitorDialog != null)				
-				fProgressMonitorDialog.done();
-		}
-		
-		public void setTaskName(String name) {
-			fTask= name;
-			if (fProgressMonitorDialog != null)				
-				fProgressMonitorDialog.setTaskName(name);
-		}
-				
-		public boolean isCanceled() {
-			return fIsCanceled;
-		}
-		
-		public void setCanceled(boolean b) {
-			fIsCanceled= b;
-		}
-		
-		public void subTask(String name) {
-			fSubTask= name;
-			if (fProgressMonitorDialog != null)				
-				fProgressMonitorDialog.setSubTaskName(name);
-		}
-		
-		public void worked(int work) {
-			if (fProgressMonitorDialog != null)
-				internalWorked(work);
-			else
-				fWorked+= work;
-		}
-		
-		public void internalWorked(double work) {
-			if (fProgressMonitorDialog != null)				
-				fProgressMonitorDialog.worked(work);
-		}
-	}
-	
-	public static void run(boolean cancelable, int timeout, Shell parent, IRunnableWithProgress runnable) throws InvocationTargetException, InterruptedException {
-		
-		Display display= parent.getDisplay();
-		
-		ProgressMonitor pm= new ProgressMonitor();
-				
-		ModalContextThread t= new ModalContextThread(runnable, pm);
-		t.start();	// start the long running operation
-		
-		// wait until long operations terminates or timeout
-		try {
-			t.join(timeout);
-		} catch (InterruptedException e) {
-		}
-		
-		if (t.timeout(display)) {	// timeout
-			ProgressMonitorDialog dialog= new ProgressMonitorDialog(parent, cancelable, pm);
-			dialog.open();
-			t.block();
-			dialog.close();
-		}
-		
-		Throwable throwable= t.fThrowable;
-		if (throwable != null) {
-			if (throwable instanceof InvocationTargetException) {
-				throw (InvocationTargetException) throwable;
-			} else if (throwable instanceof InterruptedException) {
-				throw (InterruptedException) throwable;
-			} else if (throwable instanceof OperationCanceledException) {
-				throw new InterruptedException(throwable.getMessage());
-			} else {
-				throw new InvocationTargetException(throwable);
-			}	
-		}
-	}
-}
-
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/TokenComparator.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/TokenComparator.java
deleted file mode 100644
index e1aca48..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/TokenComparator.java
+++ /dev/null
@@ -1,176 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import org.eclipse.jface.util.Assert;
-
-import org.eclipse.compare.rangedifferencer.IRangeComparator;
-import org.eclipse.compare.contentmergeviewer.ITokenComparator;
-
-/**
- * Implements the <code>ITokenComparator</code> interface for words (or tokens)
- * in a string.
- * A <code>TokenComparator</code> is used as the input for the <code>RangeDifferencer</code>
- * engine to perform a token oriented compare on strings.
- */
-public class TokenComparator implements ITokenComparator {
-
-	private boolean fShouldEscape= true;
-	private String fText;
-	private int fCount;
-	private int[] fStarts;
-	private int[] fLengths;
-
-	/**
-	 * Creates a <code>TokenComparator</code> for the given string.
-	 *
-	 * @param string the string that is split into token
-	 */
-	public TokenComparator(String text) {
-		
-		Assert.isNotNull(text);
-
-		fText= text;
-		
-		int length= fText.length();
-		fStarts= new int[length];	// pessimistic assumption!
-		fLengths= new int[length];
-		fCount= 0;
-		
-		char lastCategory= 0;	// 0: no category
-		for (int i= 0; i < length; i++) {
-			char c= fText.charAt(i);
-			
-			char category= '?';	// unspecified category
-			if (Character.isWhitespace(c))
-				category= ' ';	// white space category
-			else if (Character.isDigit(c))
-				category= '0';	// digits
-			else if (Character.isLetter(c))
-				category= 'a';	// letters
-			
-			if (category != lastCategory) {
-				// start a new token
-				fStarts[fCount++]= i;
-				lastCategory= category;
-			}
-			fLengths[fCount-1]++;
-		}
-	}
-	
-	/**
-	 * Creates a <code>TokenComparator</code> for the given string.
-	 *
-	 * @param string the string that is split into token
-	 * @param shouldEscape
-	 */
-	public TokenComparator(String s, boolean shouldEscape) {
-		this(s);
-		fShouldEscape= shouldEscape;
-	}
-
-	/**
-	 * Returns the number of token in the string.
-	 *
-	 * @return number of token in the string
-	 */
-	public int getRangeCount() {
-		return fCount;
-	}
-
-	/* (non Javadoc)
-	 * see ITokenComparator.getTokenStart
-	 */
-	public int getTokenStart(int index) {
-		if (index < fCount)
-			return fStarts[index];
-		return fText.length();
-	}
-
-	/* (non Javadoc)
-	 * see ITokenComparator.getTokenLength
-	 */
-	public int getTokenLength(int index) {
-		if (index < fCount)
-			return fLengths[index];
-		return 0;
-	}
-		
-	/**
-	 * Returns <code>true</code> if a token given by the first index
-	 * matches a token specified by the other <code>IRangeComparator</code> and index.
-	 *
-	 * @param thisIndex	the number of the token within this range comparator
-	 * @param other the range comparator to compare this with
-	 * @param otherIndex the number of the token within the other comparator
-	 * @return <code>true</code> if the token are equal
-	 */
-	public boolean rangesEqual(int thisIndex, IRangeComparator other, int otherIndex) {
-		if (other != null && getClass() == other.getClass()) {
-			TokenComparator tc= (TokenComparator) other;
-			int thisLen= getTokenLength(thisIndex);
-			int otherLen= tc.getTokenLength(otherIndex);
-			if (thisLen == otherLen)
-				return fText.regionMatches(false, getTokenStart(thisIndex), tc.fText, tc.getTokenStart(otherIndex), thisLen);
-		}
-		return false;
-	}
-
-	/**
-	 * Aborts the comparison if the number of tokens is too large.
-	 *
-	 * @return <code>true</code> to abort a token comparison
-	 */
-	public boolean skipRangeComparison(int length, int max, IRangeComparator other) {
-
-		if (!fShouldEscape)
-			return false;
-
-		if (getRangeCount() < 50 || other.getRangeCount() < 50)
-			return false;
-
-		if (max < 100)
-			return false;
-
-		if (length < 100)
-			return false;
-
-		if (max > 800)
-			return true;
-
-		if (length < max / 4)
-			return false;
-
-		return true;
-	}
-		
-//	public static void main(String args[]) {
-//		//String in= "private static boolean isWhitespace(char c) {";
-//		//String in= "for (int j= 0; j < l-1; j++) {";
-//		String in= "for do    i= 123; i++";
-//		TokenComparator tc= new TokenComparator(in, false);
-//		
-//		System.out.println("n: " + tc.getRangeCount());
-//		System.out.println(in);
-//		
-//		int p= 0;
-//		for (int i= 0; i < tc.getRangeCount(); i++) {
-//			int l= tc.getTokenLength(i);
-//			System.out.print("<");
-//			
-//			for (int j= 0; j < l-1; j++)
-//				System.out.print(" ");
-//		}
-//		System.out.println();
-//		
-//		//System.out.println("extract: <" + tc.extract(16, 1) + ">");
-//	}
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/Utilities.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/Utilities.java
deleted file mode 100644
index b73ab6b..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/Utilities.java
+++ /dev/null
@@ -1,401 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import java.io.*;
-import java.text.MessageFormat;
-import java.util.*;
-
-import org.eclipse.swt.widgets.*;
-
-import org.eclipse.core.resources.ResourcesPlugin;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.util.*;
-import org.eclipse.jface.viewers.*;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IAdaptable;
-
-import org.eclipse.ui.*;
-
-import org.eclipse.compare.CompareConfiguration;
-
-/**
- * Convenience and utility methods.
- */
-public class Utilities {
-	
-	public static void registerAction(IKeyBindingService kbs, IAction a, String id) {
-		if (kbs != null) {
-			a.setActionDefinitionId(id);
-			kbs.registerAction(a);
-		}
-	}
-	
-	public static IWorkbenchPartSite findSite(Control c) {
-		while (c != null && !c.isDisposed()) {
-			Object data= c.getData();
-			if (data instanceof IWorkbenchPart)
-				return ((IWorkbenchPart)data).getSite();
-			c= c.getParent();
-		}
-		return null;
-	}
-
-	public static IActionBars findActionBars(Control c) {
-		while (c != null && !c.isDisposed()) {
-			Object data= c.getData();
-			if (data instanceof CompareEditor)
-				return ((CompareEditor)data).getActionBars();
-				
-			// PR 1GDVZV7: ITPVCM:WIN98 - CTRL + C does not work in Java source compare
-			if (data instanceof IViewPart)
-				return ((IViewPart)data).getViewSite().getActionBars();
-			// end PR 1GDVZV7
-			
-			c= c.getParent();
-		}
-		return null;
-	}
-
-	public static void setEnableComposite(Composite composite, boolean enable) {
-		Control[] children= composite.getChildren();
-		for (int i= 0; i < children.length; i++)
-			children[i].setEnabled(enable);
-	}
-
-	public static boolean getBoolean(CompareConfiguration cc, String key, boolean dflt) {
-		if (cc != null) {
-			Object value= cc.getProperty(key);
-			if (value instanceof Boolean)
-				return ((Boolean) value).booleanValue();
-		}
-		return dflt;
-	}
-	
-	public static void firePropertyChange(ListenerList ll, Object source, String property, Object old, Object newValue) {
-		if (ll != null) {
-			PropertyChangeEvent event= null;
-			Object[] listeners= ll.getListeners();
-			for (int i= 0; i < listeners.length; i++) {
-				IPropertyChangeListener l= (IPropertyChangeListener) listeners[i];
-				if (event == null)
-					event= new PropertyChangeEvent(source, property, old, newValue);
-				l.propertyChange(event);
-			}
-		}
-	}
-
-	public static boolean okToUse(Widget widget) {
-		return widget != null && !widget.isDisposed();
-	}
-	
-	public static boolean isMotif() {
-		return false;
-	}
-		
-	/**
-	 * Returns the elements of the given selection. 
-	 * Returns an empty array if the selection is empty or if 
-	 * the given selection is not of type <code>IStructuredSelection</code>.
-	 *
-	 * @param selection the selection
-	 * @return the selected elements
-	 */
-	public static Object[] toArray(ISelection selection) {
-		if (!(selection instanceof IStructuredSelection)) {
-			return new Object[0];
-		}
-		IStructuredSelection ss= (IStructuredSelection) selection;
-		return ss.toArray();
-	}
-
-	/**
-	 * Convenience method: extract all <code>IResources</code> from given selection.
-	 * Never returns null.
-	 */
-	public static IResource[] getResources(ISelection selection) {
-		
-		ArrayList tmp= new ArrayList();
-
-		if (selection instanceof IStructuredSelection) {
-		
-			Object[] s= ((IStructuredSelection)selection).toArray();
-				
-			for (int i= 0; i < s.length; i++) {
-				Object o= s[i];
-				if (o instanceof IResource) {
-					tmp.add(o);
-					continue;
-				}
-				if (o instanceof IAdaptable) {
-					IAdaptable a= (IAdaptable) o;
-					Object adapter= a.getAdapter(IResource.class);
-					if (adapter instanceof IResource)
-						tmp.add(adapter);
-					continue;
-				}
-			}
-		}
-		return (IResource[]) tmp.toArray(new IResource[tmp.size()]);
-	}
-
-	public static byte[] readBytes(InputStream in) {
-		ByteArrayOutputStream bos= new ByteArrayOutputStream();
-		try {		
-			while (true) {
-				int c= in.read();
-				if (c == -1)
-					break;
-				bos.write(c);
-			}
-					
-		} catch (IOException ex) {
-			return null;
-		
-		} finally {
-			if (in != null) {
-				try {
-					in.close();
-				} catch (IOException x) {
-				}
-			}
-			try {
-				bos.close();
-			} catch (IOException x) {
-			}
-		}
-		
-		return bos.toByteArray();
-	}
-
-	/**
-	 * Returns null if an error occurred.
-	 */
-	public static String readString(InputStream is) {
-		if (is == null)
-			return null;
-		BufferedReader reader= null;
-		try {
-			StringBuffer buffer= new StringBuffer();
-			char[] part= new char[2048];
-			int read= 0;
-			reader= new BufferedReader(new InputStreamReader(is, ResourcesPlugin.getEncoding()));
-
-			while ((read= reader.read(part)) != -1)
-				buffer.append(part, 0, read);
-			
-			return buffer.toString();
-			
-		} catch (IOException ex) {
-		} finally {
-			if (reader != null) {
-				try {
-					reader.close();
-				} catch (IOException ex) {
-				}
-			}
-		}
-		return null;
-	}
-	
-	public static byte[] getBytes(String s) {
-		try {
-			return s.getBytes(ResourcesPlugin.getEncoding());
-		} catch (UnsupportedEncodingException e) {
-			return s.getBytes();
-		}
-	}
-
-	public static String getIconPath(Display display) {
-		return "icons/full/";	//$NON-NLS-1$
-	}
-	
-	/**
-	 * Initialize the given Action from a ResourceBundle.
-	 */
-	public static void initAction(IAction a, ResourceBundle bundle, String prefix) {
-		
-		String labelKey= "label"; //$NON-NLS-1$
-		String tooltipKey= "tooltip"; //$NON-NLS-1$
-		String imageKey= "image"; //$NON-NLS-1$
-		String descriptionKey= "description"; //$NON-NLS-1$
-		
-		if (prefix != null && prefix.length() > 0) {
-			labelKey= prefix + labelKey;
-			tooltipKey= prefix + tooltipKey;
-			imageKey= prefix + imageKey;
-			descriptionKey= prefix + descriptionKey;
-		}
-		
-		a.setText(getString(bundle, labelKey, labelKey));
-		a.setToolTipText(getString(bundle, tooltipKey, null));
-		a.setDescription(getString(bundle, descriptionKey, null));
-		
-		String relPath= getString(bundle, imageKey, null);
-		if (relPath != null && relPath.trim().length() > 0) {
-			
-			String cPath;
-			String dPath;
-			String ePath;
-			
-			if (relPath.indexOf("/") >= 0) { //$NON-NLS-1$
-				String path= relPath.substring(1);
-				cPath= 'c' + path;
-				dPath= 'd' + path;
-				ePath= 'e' + path;
-			} else {
-				cPath= "clcl16/" + relPath; //$NON-NLS-1$
-				dPath= "dlcl16/" + relPath; //$NON-NLS-1$
-				ePath= "elcl16/" + relPath; //$NON-NLS-1$
-			}
-			
-			ImageDescriptor id= CompareUIPlugin.getImageDescriptor(dPath);	// we set the disabled image first (see PR 1GDDE87)
-			if (id != null)
-				a.setDisabledImageDescriptor(id);
-			id= CompareUIPlugin.getImageDescriptor(cPath);
-			if (id != null)
-				a.setHoverImageDescriptor(id);
-			id= CompareUIPlugin.getImageDescriptor(ePath);
-			if (id != null)
-				a.setImageDescriptor(id);
-		}
-	}
-	
-	public static void initToggleAction(IAction a, ResourceBundle bundle, String prefix, boolean checked) {
-
-		String tooltip= null;
-		if (checked)
-			tooltip= getString(bundle, prefix + "tooltip.checked", null);	//$NON-NLS-1$
-		else
-			tooltip= getString(bundle, prefix + "tooltip.unchecked", null);	//$NON-NLS-1$
-		if (tooltip == null)
-			tooltip= getString(bundle, prefix + "tooltip", null);	//$NON-NLS-1$
-		
-		if (tooltip != null)
-			a.setToolTipText(tooltip);
-			
-		String description= null;
-		if (checked)
-			description= getString(bundle, prefix + "description.checked", null);	//$NON-NLS-1$
-		else
-			description= getString(bundle, prefix + "description.unchecked", null);	//$NON-NLS-1$
-		if (description == null)
-			description= getString(bundle, prefix + "description", null);	//$NON-NLS-1$
-		
-		if (description != null)
-			a.setDescription(description);
-			
-	}
-
-	public static String getString(ResourceBundle bundle, String key, String dfltValue) {
-		
-		if (bundle != null) {
-			try {
-				return bundle.getString(key);
-			} catch (MissingResourceException x) {
-			}
-		}
-		return dfltValue;
-	}
-	
-	public static String getFormattedString(ResourceBundle bundle, String key, String arg) {
-		
-		if (bundle != null) {
-			try {
-				return MessageFormat.format(bundle.getString(key), new String[] { arg });
-			} catch (MissingResourceException x) {
-			}
-		}
-		return "!" + key + "!";//$NON-NLS-2$ //$NON-NLS-1$
-	}
-	
-	public static String getString(String key) {
-		try {
-			return CompareUIPlugin.getResourceBundle().getString(key);
-		} catch (MissingResourceException e) {
-			return "!" + key + "!";//$NON-NLS-2$ //$NON-NLS-1$
-		}
-	}
-	
-	public static String getFormattedString(String key, String arg) {
-		try{
-			return MessageFormat.format(CompareUIPlugin.getResourceBundle().getString(key), new String[] { arg });
-		} catch (MissingResourceException e) {
-			return "!" + key + "!";//$NON-NLS-2$ //$NON-NLS-1$
-		}	
-	}
-
-	public static String getString(ResourceBundle bundle, String key) {
-		return getString(bundle, key, key);
-	}
-	
-	public static int getInteger(ResourceBundle bundle, String key, int dfltValue) {
-		
-		if (bundle != null) {
-			try {
-				String s= bundle.getString(key);
-				if (s != null)
-					return Integer.parseInt(s);
-			} catch (NumberFormatException x) {
-			} catch (MissingResourceException x) {
-			}
-		}
-		return dfltValue;
-	}
-
-	/**
-	 * Answers <code>true</code> if the given selection contains resources that don't
-	 * have overlapping paths and <code>false</code> otherwise. 
-	 */
-	/*
-	public static boolean isSelectionNonOverlapping() throws TeamException {
-		IResource[] resources = getSelectedResources();
-		// allow operation for non-overlapping resource selections
-		if(resources.length>0) {
-			List validPaths = new ArrayList(2);
-			for (int i = 0; i < resources.length; i++) {
-				IResource resource = resources[i];
-				
-				// only allow cvs resources to be selected
-				if(RepositoryProvider.getProvider(resource.getProject(), CVSProviderPlugin.getTypeId()) == null) {
-					return false;
-				}
-				
-				// check if this resource overlaps other selections		
-				IPath resourceFullPath = resource.getFullPath();
-				if(!validPaths.isEmpty()) {
-					for (Iterator it = validPaths.iterator(); it.hasNext();) {
-						IPath path = (IPath) it.next();
-						if(path.isPrefixOf(resourceFullPath) || 
-					       resourceFullPath.isPrefixOf(path)) {
-							return false;
-						}
-					}
-				}
-				validPaths.add(resourceFullPath);
-				
-				// ensure that resources are managed
-				ICVSResource cvsResource = CVSWorkspaceRoot.getCVSResourceFor(resource);
-				if(cvsResource.isFolder()) {
-					if( ! ((ICVSFolder)cvsResource).isCVSFolder()) return false;
-				} else {
-					if( ! cvsResource.isManaged()) return false;
-				}
-			}
-			return true;
-		}
-		return false;
-	}
-	*/
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ViewerDescriptor.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ViewerDescriptor.java
deleted file mode 100644
index c3b601c..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ViewerDescriptor.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import org.eclipse.swt.widgets.Composite;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.compare.*;
-
-import org.eclipse.jface.viewers.Viewer;
-
-/**
- * Creates <code>Viewer</code>s from an <code>IConfigurationElement</code>.
- */
-public class ViewerDescriptor implements IViewerDescriptor {
-
-	private final static String CLASS_ATTRIBUTE= "class"; //$NON-NLS-1$
-	private final static String EXTENSIONS_ATTRIBUTE= "extensions"; //$NON-NLS-1$
-
-	private IConfigurationElement fConfiguration;
-	private IViewerCreator fViewerCreator;
-	private Class fViewerClass;
-
-	public ViewerDescriptor(IConfigurationElement config) {
-		fConfiguration= config;
-	}
-
-	public Viewer createViewer(Viewer currentViewer, Composite parent, CompareConfiguration mp) {
-		
-		if (currentViewer != null && currentViewer.getClass() == fViewerClass) {
-			//System.out.println("reused viewer: " + currentViewer.getClass().getName());
-			return currentViewer;
-		}
-		
-		if (fViewerCreator == null) {
-			try {
-				fViewerCreator= (IViewerCreator) fConfiguration.createExecutableExtension(CLASS_ATTRIBUTE);
-			} catch (CoreException e) {
-			}
-		}
-
-		if (fViewerCreator != null) {
-			Viewer viewer= fViewerCreator.createViewer(parent, mp);
-			if (viewer != null)
-				fViewerClass= viewer.getClass();
-			return viewer;
-		}
-
-		return null;
-	}
-
-	public String getExtension() {
-		return fConfiguration.getAttribute(EXTENSIONS_ATTRIBUTE);
-	}
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ViewerSwitchingCancelled.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ViewerSwitchingCancelled.java
deleted file mode 100644
index 27e580c..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/ViewerSwitchingCancelled.java
+++ /dev/null
@@ -1,17 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-
-public class ViewerSwitchingCancelled extends Error {
-
-}
-
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/CompareWithPatchAction.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/CompareWithPatchAction.java
deleted file mode 100644
index 02bc955..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/CompareWithPatchAction.java
+++ /dev/null
@@ -1,158 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal.patch;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.Arrays;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Shell;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.ProgressMonitorDialog;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.util.Assert;
-import org.eclipse.jface.viewers.*;
-import org.eclipse.jface.wizard.IWizard;
-import org.eclipse.jface.wizard.WizardDialog;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.*;
-
-import org.eclipse.ui.IActionDelegate;
-import org.eclipse.ui.IEditorPart;
-
-import org.eclipse.compare.internal.*;
-
-
-public class CompareWithPatchAction implements IActionDelegate {
-
-	static class PatchWizardDialog extends WizardDialog {
-	
-		PatchWizardDialog(Shell parent, IWizard wizard) {
-			super(parent, wizard);
-			
-			setShellStyle(getShellStyle() | SWT.RESIZE);
-			setMinimumPageSize(700, 500);
-		}
-	}
-	
-	private ISelection fSelection;
-	
-
-	public void selectionChanged(IAction action, ISelection selection) {
-		fSelection= selection;
-		IResource[] resources= PatchWizard.getResource(fSelection);
-		action.setEnabled(resources != null && resources.length == 1);
-	}
-		
-	public void run(IAction action) {
-		PatchWizard wizard= new PatchWizard(fSelection);
-		
-		if (areAllEditorsSaved()) {
-			PatchWizardDialog dialog= new PatchWizardDialog(CompareUIPlugin.getShell(), wizard);
-			dialog.open();
-		}
-	}
-
-	private boolean areAllEditorsSaved(){
-		if (CompareUIPlugin.getDirtyEditors().length == 0)
-			return true;
-		if (! saveAllDirtyEditors())
-			return false;
-		Shell shell= CompareUIPlugin.getShell();
-		try {
-			// Save isn't cancelable.
-			IWorkspace workspace= ResourcesPlugin.getWorkspace();
-			IWorkspaceDescription description= workspace.getDescription();
-			boolean autoBuild= description.isAutoBuilding();
-			description.setAutoBuilding(false);
-			workspace.setDescription(description);
-			try {
-				new ProgressMonitorDialog(shell).run(false, false, createRunnable());
-			} finally {
-				description.setAutoBuilding(autoBuild);
-				workspace.setDescription(description);
-			}
-			return true;
-		} catch (InvocationTargetException e) {
-			ExceptionHandler.handle(e, shell, PatchMessages.getString("PatchAction.ExceptionTitle"), PatchMessages.getString("Exception"));  //$NON-NLS-1$ //$NON-NLS-2$
-			return false;
-		} catch (CoreException e) {
-			ExceptionHandler.handle(e, shell, PatchMessages.getString("PatchAction.ExceptionTitle"), PatchMessages.getString("Exception"));  //$NON-NLS-1$ //$NON-NLS-2$
-			return false;			
-		} catch (InterruptedException e) {
-			Assert.isTrue(false); // Can't happen. Operation isn't cancelable.
-			return false;
-		}
-	}
-
-	private IRunnableWithProgress createRunnable() {
-		return new IRunnableWithProgress() {
-			public void run(IProgressMonitor pm) {
-				IEditorPart[] editorsToSave= CompareUIPlugin.getDirtyEditors();
-				pm.beginTask(PatchMessages.getString("PatchAction.SavingDirtyEditorsTask"), editorsToSave.length); //$NON-NLS-1$
-				for (int i= 0; i < editorsToSave.length; i++) {
-					editorsToSave[i].doSave(new SubProgressMonitor(pm, 1));
-					pm.worked(1);
-				}
-				pm.done();
-			}
-		};
-	}
-
-	private boolean saveAllDirtyEditors() {
-		if (ComparePreferencePage.getSaveAllEditors()) //must save everything
-			return true;
-		ListDialog dialog= new ListDialog(CompareUIPlugin.getShell()) {
-			protected Control createDialogArea(Composite parent) {
-				Composite result= (Composite) super.createDialogArea(parent);
-				final Button check= new Button(result, SWT.CHECK);
-				check.setText(PatchMessages.getString("PatchAction.AlwaysSaveQuestion")); //$NON-NLS-1$
-				check.setSelection(ComparePreferencePage.getSaveAllEditors());
-				check.addSelectionListener(
-					new SelectionAdapter() {
-						public void widgetSelected(SelectionEvent e) {
-							ComparePreferencePage.setSaveAllEditors(check.getSelection());
-						}
-					}
-				);
-				applyDialogFont(result);
-				return result;
-			}
-		};
-		dialog.setTitle(PatchMessages.getString("PatchAction.SaveAllQuestion")); //$NON-NLS-1$
-		dialog.setAddCancelButton(true);
-		dialog.setLabelProvider(createDialogLabelProvider());
-		dialog.setMessage(PatchMessages.getString("PatchAction.SaveAllDescription")); //$NON-NLS-1$
-		dialog.setContentProvider(new ListContentProvider());
-		dialog.setInput(Arrays.asList(CompareUIPlugin.getDirtyEditors()));
-		return dialog.open() == Dialog.OK;
-	}
-
-	private ILabelProvider createDialogLabelProvider() {
-		return new LabelProvider() {
-			public Image getImage(Object element) {
-				return ((IEditorPart) element).getTitleImage();
-			}
-			public String getText(Object element) {
-				return ((IEditorPart) element).getTitle();
-			}
-		};
-	}
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/Diff.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/Diff.java
deleted file mode 100644
index 12e7e2c..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/Diff.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal.patch;
-
-import java.util.*;
-
-import org.eclipse.core.runtime.IPath;
-
-import org.eclipse.compare.structuremergeviewer.Differencer;
-
-
-/* package */ class Diff {
-		
-	IPath fOldPath, fNewPath;
-	long fOldDate, fNewDate;	// if 0: no file
-	List fHunks= new ArrayList();
-	boolean fMatches= false;
-	private boolean fIsEnabled2= true;
-	String fRejected;
-
-	
- 	/* package */ Diff(IPath oldPath, long oldDate, IPath newPath, long newDate) {
-		fOldPath= oldPath;
-		fOldDate= oldPath == null ? 0 : oldDate;
-		fNewPath= newPath;
-		fNewDate= newPath == null ? 0 : newDate;	
-	}
-	
-	boolean isEnabled() {
-		return fIsEnabled2;
-	}
-	
-	void setEnabled(boolean b) {
-		fIsEnabled2= b;
-	}
-	
-	void reverse() {
-		IPath tp= fOldPath;
-		fOldPath= fNewPath;
-		fNewPath= tp;
-		
-		long t= fOldDate;
-		fOldDate= fNewDate;
-		fNewDate= t;
-		
-		Iterator iter= fHunks.iterator();
-		while (iter.hasNext()) {
-			Hunk hunk= (Hunk) iter.next();
-			hunk.reverse();
-		}
-	}
-	
-	Hunk[] getHunks() {
-		return (Hunk[]) fHunks.toArray((Hunk[]) new Hunk[fHunks.size()]);
-	}
-
-	IPath getPath() {
-		if (fOldPath != null)
-			return fOldPath;
-		return fNewPath;
-	}
-	
-	void finish() {
-		if (fHunks.size() == 1) {
-			Hunk h= (Hunk) fHunks.get(0);
-			if (h.fNewLength == 0) {
-				fNewDate= 0;
-				fNewPath= fOldPath;
-			}
-		}
-	}
-	
-	/* package */ void add(Hunk hunk) {
-		fHunks.add(hunk);
-	}
-	
-	/* package */ int getType() {
-		if (fOldDate == 0)
-			return Differencer.ADDITION;
-		if (fNewDate == 0)
-			return Differencer.DELETION;
-		return Differencer.CHANGE;
-	}
-	
-	/* package */ String getDescription(int strip) {
-		IPath path= fOldPath;
-		if (fOldDate == 0)
-			path= fNewPath;
-		if (strip > 0 && strip < path.segmentCount())
-			path= path.removeFirstSegments(strip);
-		return path.toOSString();
-	}
-}
-
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/Hunk.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/Hunk.java
deleted file mode 100644
index 4bb105b..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/Hunk.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal.patch;
-
-import java.util.List;
-
-/**
- * A Hunk describes a range of changed lines and some context lines.
- */
-/* package */ class Hunk {
-	
-	Diff fParent;
-	int fOldStart, fOldLength;
-	int fNewStart, fNewLength;
-	String[] fLines;
-	boolean fMatches= false;
-	private boolean fIsEnabled= true;
-	
-	
-	/* package */ Hunk(Diff parent, int[] oldRange, int[] newRange, List lines) {
-		
-		fParent= parent;
-		if (fParent != null)
-			fParent.add(this);
-		
-		if (oldRange[0] > 0)
-			fOldStart= oldRange[0]-1;	// line number start at 0!
-		else
-			fOldStart= 0;
-		fOldLength= oldRange[1];
-		if (newRange[0] > 0)
-			fNewStart= newRange[0]-1;	// line number start at 0!
-		else
-			fNewStart= 0;
-		fNewLength= newRange[1];
-		
-		fLines= (String[]) lines.toArray(new String[lines.size()]);
-	}
-		
-	boolean isEnabled() {
-		return fIsEnabled;
-	}
-	
-	void setEnabled(boolean enable) {
-		fIsEnabled= enable;
-	}
-	
-	void reverse() {
-		int t= fOldStart;
-		fOldStart= fNewStart;
-		fNewStart= t;
-		
-		t= fOldLength;
-		fOldLength= fNewLength;
-		fNewLength= t;
-		
-		for (int i= 0; i < fLines.length; i++) {
-			String line= fLines[i];
-			char c= line.charAt(0);
-			switch (c) {
-			case '+':
-				fLines[i]= '-' + line.substring(1);
-				break;
-			case '-':
-				fLines[i]= '+' + line.substring(1);
-				break;
-			default:
-				break;
-			}
-		}
-	}
-
-	/**
-	 * Returns the contents of this hunk.
-	 * Each line starts with a control character. Their meaning is as follows:
-	 * <ul>
-	 * <li>
-	 * '+': add the line
-	 * <li>
-	 * '-': delete the line
-	 * <li>
-	 * ' ': no change, context line
-	 * </ul>
-	 */
-	String getContent() {
-		StringBuffer sb= new StringBuffer();
-		for (int i= 0; i < fLines.length; i++) {
-			String line= fLines[i];
-			sb.append(line.substring(0, Patcher.length(line)));
-			sb.append('\n');
-		}
-		return sb.toString();
-	}
-	
-	/**
-	 * Returns a descriptive String for this hunk.
-	 * It is in the form old_start,old_length -> new_start,new_length.
-	 */
-	String getDescription() {
-		StringBuffer sb= new StringBuffer();
-		sb.append(Integer.toString(fOldStart));
-		sb.append(',');
-		sb.append(Integer.toString(fOldLength));
-		sb.append(" -> "); //$NON-NLS-1$
-		sb.append(Integer.toString(fNewStart));
-		sb.append(',');
-		sb.append(Integer.toString(fNewLength));
-		return sb.toString();
-	}
-	
-	String getRejectedDescription() {
-		StringBuffer sb= new StringBuffer();
-		sb.append("@@ -"); //$NON-NLS-1$
-		sb.append(Integer.toString(fOldStart));
-		sb.append(',');
-		sb.append(Integer.toString(fOldLength));
-		sb.append(" +"); //$NON-NLS-1$
-		sb.append(Integer.toString(fNewStart));
-		sb.append(',');
-		sb.append(Integer.toString(fNewLength));
-		sb.append(" @@"); //$NON-NLS-1$
-		return sb.toString();
-	}
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/InputPatchPage.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/InputPatchPage.java
deleted file mode 100644
index 1a3c09a..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/InputPatchPage.java
+++ /dev/null
@@ -1,522 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal.patch;
-
-import java.io.*;
-import java.text.MessageFormat;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.dnd.*;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-
-import org.eclipse.jface.dialogs.*;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.viewers.*;
-import org.eclipse.jface.wizard.*;
-
-import org.eclipse.ui.help.*;
-import org.eclipse.ui.model.*;
-
-import org.eclipse.compare.internal.ICompareContextIds;
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.*;
-
-
-/* package */ class InputPatchPage extends WizardPage {
-
-	// constants
-	protected static final int SIZING_TEXT_FIELD_WIDTH= 250;
-	protected static final int COMBO_HISTORY_LENGTH= 5;
-	
-	// dialog store id constants
-	private final static String PAGE_NAME= "PatchWizardPage1"; //$NON-NLS-1$
-	private final static String STORE_PATCH_FILES_ID= PAGE_NAME + ".PATCH_FILES";	//$NON-NLS-1$
-	private final static String STORE_USE_CLIPBOARD_ID= PAGE_NAME + ".USE_CLIPBOARD";	//$NON-NLS-1$
-	
-	private boolean fShowError= false;
-	
-	// SWT widgets
-	private Button fUseClipboardButton;
-	private Combo fPatchFileNameField;
-	private Button fPatchFileBrowseButton;
-	private Button fUsePatchFileButton;
-	private Group fPatchFileGroup;
-	private CheckboxTreeViewer fPatchTargets;
-	private PatchWizard fPatchWizard;
-
-
-	InputPatchPage(PatchWizard pw) {
-		super("InputPatchPage", PatchMessages.getString("InputPatchPage.title"), null); //$NON-NLS-1$ //$NON-NLS-2$
-		fPatchWizard= pw;
-		setMessage(PatchMessages.getString("InputPatchPage.message")); //$NON-NLS-1$
-	}
-	
-	/**
-	 * Get a path from the supplied text widget.
-	 * @return org.eclipse.core.runtime.IPath
-	 */
-	protected IPath getPathFromText(Text textField) {
-		return (new Path(textField.getText())).makeAbsolute();
-	}
-
-	/* package */ String getPatchName() {
-		if (getUseClipboard())
-			return PatchMessages.getString("InputPatchPage.Clipboard"); //$NON-NLS-1$
-		return getPatchFilePath();
-	}
-	
-	public void createControl(Composite parent) {
-				
-		Composite composite= new Composite(parent, SWT.NULL);
-		composite.setLayout(new GridLayout());
-		composite.setLayoutData(new GridData(/* GridData.VERTICAL_ALIGN_FILL | */ GridData.HORIZONTAL_ALIGN_FILL));
-		setControl(composite);
-		
-		Label l= new Label(composite, SWT.NONE);	// a spacer
-		l.setText(PatchMessages.getString("InputPatchPage.SelectInput")); //$NON-NLS-1$
-		buildInputGroup(composite);
-		
-		new Label(composite, SWT.NONE);	// a spacer		
-		
-		buildPatchFileGroup(composite);		
-			
-		restoreWidgetValues();
-
-		updateWidgetEnablements();
-		//updatePageCompletion();
-		
-		Dialog.applyDialogFont(composite);
-		WorkbenchHelp.setHelp(composite, ICompareContextIds.PATCH_INPUT_WIZARD_PAGE);
-	}
-	
-	/* (non-JavaDoc)
-	 * Method declared in IWizardPage.
-	 */
-	public IWizardPage getNextPage() {
-			
-		Patcher patcher= ((PatchWizard) getWizard()).getPatcher();
-		
-		String source;
-		// Create a reader for the input
-		Reader reader= null;
-		if (getUseClipboard()) {
-			Control c= getControl();
-			if (c != null) {
-				Clipboard clipboard= new Clipboard(c.getDisplay());
-				Object o= clipboard.getContents(TextTransfer.getInstance());
-				clipboard.dispose();
-				if (o instanceof String)
-					reader= new StringReader((String)o);
-			}
-			source= PatchMessages.getString("InputPatchPage.Clipboard.title");	//$NON-NLS-1$
-		} else {
-			String patchFilePath= getPatchFilePath();
-			if (patchFilePath != null) {
-				try {
-					reader= new FileReader(patchFilePath);
-				} catch (FileNotFoundException ex) {
-					MessageDialog.openError(null,
-						PatchMessages.getString("InputPatchPage.PatchErrorDialog.title"),	//$NON-NLS-1$
-						PatchMessages.getString("InputPatchPage.PatchFileNotFound.message")); //$NON-NLS-1$
-				}
-			}
-			source= PatchMessages.getString("InputPatchPage.PatchFile.title");	//$NON-NLS-1$
-		}
-		
-		// parse the input
-		if (reader != null) {
-			try {
-				patcher.parse(new BufferedReader(reader));
-			} catch (IOException ex) {
-				MessageDialog.openError(null,
-					PatchMessages.getString("InputPatchPage.PatchErrorDialog.title"), //$NON-NLS-1$ 
-					PatchMessages.getString("InputPatchPage.ParseError.message")); //$NON-NLS-1$
-			}
-			
-			try {
-				reader.close();
-			} catch (IOException x) {
-			}
-		}
-		
-		Diff[] diffs= patcher.getDiffs();
-		if (diffs == null || diffs.length == 0) {
-			String format= PatchMessages.getString("InputPatchPage.NoDiffsFound.format");	//$NON-NLS-1$
-			String message= MessageFormat.format(format, new String[] { source });
-			MessageDialog.openInformation(null,
-				PatchMessages.getString("InputPatchPage.PatchErrorDialog.title"), message); //$NON-NLS-1$
-			return this;
-		}
-		
-		// if selected target is file ensure that patch file
-		// contains only a patch for a single file
-		IResource target= fPatchWizard.getTarget();
-		if (target instanceof IFile && diffs.length > 1) {
-			String format= PatchMessages.getString("InputPatchPage.SingleFileError.format");	//$NON-NLS-1$
-			String message= MessageFormat.format(format, new String[] { source });
-			MessageDialog.openInformation(null,
-				PatchMessages.getString("InputPatchPage.PatchErrorDialog.title"), message); //$NON-NLS-1$
-			return this;
-		}
-		
-		// guess prefix count
-		int guess= 0; // guessPrefix(diffs);
-		patcher.setStripPrefixSegments(guess);
-
-		return super.getNextPage();
-	}
-			
-	/* (non-JavaDoc)
-	 * Method declared in IWizardPage.
-	 */
-	public boolean canFlipToNextPage() {
-		// we can't call getNextPage to determine if flipping is allowed since computing
-		// the next page is quite expensive. So we say yes if the page is complete.
-		return isPageComplete();
-	}
-	
-	private void setEnablePatchFile(boolean enable) {
-		fPatchFileNameField.setEnabled(enable);
-		fPatchFileBrowseButton.setEnabled(enable);
-	}
-
-	/**
-	 *	Create the group for selecting the patch file
-	 */
-	private void buildPatchFileGroup(Composite parent) {
-		
-		fPatchFileGroup= new Group(parent, SWT.NONE);
-		fPatchFileGroup.setText(PatchMessages.getString("InputPatchPage.SelectPatch.title")); //$NON-NLS-1$
-		GridLayout layout= new GridLayout();
-		layout.numColumns= 3;
-		fPatchFileGroup.setLayout(layout);
-		fPatchFileGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		
-		// 1st row
-		fUsePatchFileButton= new Button(fPatchFileGroup, SWT.RADIO);
-		fUsePatchFileButton.setText(PatchMessages.getString("InputPatchPage.FileButton.text")); //$NON-NLS-1$
-		
-		fPatchFileNameField= new Combo(fPatchFileGroup, SWT.BORDER);
-		GridData gd= new GridData(GridData.FILL_HORIZONTAL);
-		//gd.horizontalIndent= 8;
-		gd.widthHint= SIZING_TEXT_FIELD_WIDTH;
-		fPatchFileNameField.setLayoutData(gd);
-		
-		fPatchFileBrowseButton= new Button(fPatchFileGroup, SWT.PUSH);
-		fPatchFileBrowseButton.setText(PatchMessages.getString("InputPatchPage.ChooseFileButton.text")); //$NON-NLS-1$
-		fPatchFileBrowseButton.setLayoutData(new GridData());
-		
-		// 2nd row
-		fUseClipboardButton= new Button(fPatchFileGroup, SWT.RADIO);
-		fUseClipboardButton.setText(PatchMessages.getString("InputPatchPage.UseClipboardButton.text")); //$NON-NLS-1$
-		gd= new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
-		gd.horizontalSpan= 2;
-		fUseClipboardButton.setLayoutData(gd);
-
-
-		// Add listeners
-		fUsePatchFileButton.addSelectionListener(
-			new SelectionAdapter() {
-				public void widgetSelected(SelectionEvent e) {
-					fShowError= true;
-					setEnablePatchFile(!getUseClipboard());
-					updateWidgetEnablements();
-				}
-			}
-		);
-		fPatchFileNameField.addSelectionListener(
-			new SelectionAdapter() {
-				public void widgetSelected(SelectionEvent e) {
-					setSourceName(fPatchFileNameField.getText());
-					updateWidgetEnablements();
-				}
-			}
-		);
-		fPatchFileNameField.addModifyListener(
-			new ModifyListener() {
-				public void modifyText(ModifyEvent e) {
-					fShowError= true;
-					updateWidgetEnablements();
-				}
-			}
-		);
-		fPatchFileBrowseButton.addSelectionListener(
-			new SelectionAdapter() {
-				public void widgetSelected(SelectionEvent e) {
-					handlePatchFileBrowseButtonPressed();
-					updateWidgetEnablements();
-				}
-			}
-		);
-		
-		//fPatchFileNameField.setFocus();
-	}
-
-	private void buildInputGroup(Composite parent) {
-		
-		PatchWizard pw= (PatchWizard) getWizard();
-		IResource target= pw.getTarget();
-		IWorkspace workspace= target.getWorkspace();
-		IWorkspaceRoot root= workspace.getRoot();
-		
-		Tree tree= new Tree(parent, SWT.BORDER);
-		GridData gd= new GridData(GridData.FILL_HORIZONTAL);
-		gd.heightHint= 200;
-		tree.setLayoutData(gd);
-		
-		fPatchTargets= new CheckboxTreeViewer(tree);
-		fPatchTargets.setLabelProvider(new WorkbenchLabelProvider());
-		fPatchTargets.setContentProvider(new WorkbenchContentProvider());
-		fPatchTargets.setSorter(new WorkbenchViewerSorter());
-		fPatchTargets.setInput(root);
-		if (target != null) {
-			fPatchTargets.expandToLevel(target, 0);
-			fPatchTargets.setSelection(new StructuredSelection(target));
-		}
-		
-		// register listeners
-		fPatchTargets.addSelectionChangedListener(
-			new ISelectionChangedListener() {
-				public void selectionChanged(SelectionChangedEvent event) {
-					fPatchWizard.setTargets(PatchWizard.getResource(event.getSelection()));
-					updateWidgetEnablements();
-				}
-			}
-		);
-	}
-		
-	/**
-	 * Updates the enable state of this page's controls.
-	 */
-	private void updateWidgetEnablements() {
-		
-		String error= null;
-
-		ISelection selection= fPatchTargets.getSelection();
-		boolean anySelected= selection != null && !selection.isEmpty();
-		if (!anySelected)
-			error= PatchMessages.getString("InputPatchPage.NothingSelected.message"); //$NON-NLS-1$
-
-		boolean gotPatch= false;
-		if (getUseClipboard()) {
-			Control c= getControl();
-			if (c != null) {
-				Clipboard clipboard= new Clipboard(c.getDisplay());
-				Object o= clipboard.getContents(TextTransfer.getInstance());
-				clipboard.dispose();
-				if (o instanceof String) {
-					String s= ((String) o).trim();
-					if (s.length() > 0)
-						gotPatch= true;
-					else
-						error= PatchMessages.getString("InputPatchPage.ClipboardIsEmpty.message"); //$NON-NLS-1$
-				} else
-					error= PatchMessages.getString("InputPatchPage.NoTextInClipboard.message");					 //$NON-NLS-1$
-			} else
-				error= PatchMessages.getString("InputPatchPage.CouldNotReadClipboard.message");					 //$NON-NLS-1$
-		} else {
-			String path= fPatchFileNameField.getText();
-			if (path != null && path.length() > 0) {
-				File file= new File(path);
-				gotPatch= file.exists() && file.isFile() && file.length() > 0;
-				if (!gotPatch)
-					error= PatchMessages.getString("InputPatchPage.CannotLocatePatch.message") + path; //$NON-NLS-1$
-			} else {
-				error= PatchMessages.getString("InputPatchPage.NoFileName.message"); //$NON-NLS-1$
-			}
-		}
-		
-		setPageComplete(anySelected && gotPatch);
-		if (fShowError)
-			setErrorMessage(error);
-	}
-	
-	protected void handlePatchFileBrowseButtonPressed() {
-		FileDialog dialog= new FileDialog(getShell(), SWT.NONE);
-		dialog.setText(PatchMessages.getString("InputPatchPage.SelectPatchFileDialog.title"));		 //$NON-NLS-1$
-		dialog.setFilterPath(getPatchFilePath());
-		String res= dialog.open();
-		if (res == null)
-			return;
-		
-		String patchFilePath= dialog.getFileName();
-		IPath filterPath= new Path(dialog.getFilterPath());
-		IPath path= filterPath.append(patchFilePath).makeAbsolute();	
-		patchFilePath= path.toOSString();
-		//fDialogSettings.put(IUIConstants.DIALOGSTORE_LASTEXTJAR, filterPath.toOSString());
-		
-		fPatchFileNameField.setText(patchFilePath);
-		//setSourceName(patchFilePath);
-	}
-	
-	/**
-	 * Sets the source name of the import to be the supplied path.
-	 * Adds the name of the path to the list of items in the
-	 * source combo and selects it.
-	 *
-	 * @param path the path to be added
-	 */
-	protected void setSourceName(String path) {
-	
-		if (path.length() > 0) {
-	
-			String[] currentItems= fPatchFileNameField.getItems();
-			int selectionIndex= -1;
-			for (int i= 0; i < currentItems.length; i++)
-				if (currentItems[i].equals(path))
-					selectionIndex= i;
-			
-			if (selectionIndex < 0) {	// not found in history
-				int oldLength= currentItems.length;
-				String[] newItems= new String[oldLength + 1];
-				System.arraycopy(currentItems, 0, newItems, 0, oldLength);
-				newItems[oldLength]= path;
-				fPatchFileNameField.setItems(newItems);
-				selectionIndex= oldLength;
-			}
-			fPatchFileNameField.select(selectionIndex);
-	
-			//resetSelection();
-		}
-	}
-	
-	/**
-	 *	The Finish button was pressed. Try to do the required work now and answer
-	 *	a boolean indicating success. If false is returned then the wizard will
-	 *	not close.
-	 *
-	 * @return boolean
-	 */
-	public boolean finish() {
-//		if (!ensureSourceIsValid())
-//			return false;
-	
-		saveWidgetValues();
-	
-//		Iterator resourcesEnum = getSelectedResources().iterator();
-//		List fileSystemObjects = new ArrayList();
-//		while (resourcesEnum.hasNext()) {
-//			fileSystemObjects.add(
-//				((FileSystemElement) resourcesEnum.next()).getFileSystemObject());
-//		}
-//	
-//		if (fileSystemObjects.size() > 0)
-//			return importResources(fileSystemObjects);
-//	
-//		MessageDialog
-//			.openInformation(
-//				getContainer().getShell(),
-//				DataTransferMessages.getString("DataTransfer.information"), //$NON-NLS-1$
-//				DataTransferMessages.getString("FileImport.noneSelected")); //$NON-NLS-1$
-//	
-//		return false;
-
-		return true;
-	}
-	
-	/**
-	 *	Use the dialog store to restore widget values to the values that they held
-	 *	last time this wizard was used to completion
-	 */
-	private void restoreWidgetValues() {
-		
-		boolean useClipboard= false;
-		
-		IDialogSettings settings= getDialogSettings();
-		if (settings != null) {
-			
-			useClipboard= settings.getBoolean(STORE_USE_CLIPBOARD_ID);
-
-			// set filenames history
-			String[] sourceNames= settings.getArray(STORE_PATCH_FILES_ID);
-			if (sourceNames != null)
-				for (int i= 0; i < sourceNames.length; i++)
-					if (sourceNames[i] != null && sourceNames[i].length() > 0)
-						fPatchFileNameField.add(sourceNames[i]);
-			
-			// set patch file path
-			String patchFilePath= settings.get(STORE_PATCH_FILES_ID);
-			if (patchFilePath != null)
-				setSourceName(patchFilePath);
-		}
-		
-		// set 'Use Clipboard' radio buttons
-		setUseClipboard(useClipboard);
-	}
-	
-	/**
-	 * 	Since Finish was pressed, write widget values to the dialog store so that they
-	 *	will persist into the next invocation of this wizard page
-	 */
-	void saveWidgetValues() {
-		IDialogSettings settings= getDialogSettings();
-		if (settings != null) {
-			
-			settings.put(STORE_USE_CLIPBOARD_ID, getUseClipboard());
-			settings.put(STORE_PATCH_FILES_ID, getPatchFilePath());
-			
-			// update source names history
-			String[] sourceNames= settings.getArray(STORE_PATCH_FILES_ID);
-			if (sourceNames == null)
-				sourceNames= new String[0];
-	
-			sourceNames= addToHistory(sourceNames, getPatchFilePath());
-			settings.put(STORE_PATCH_FILES_ID, sourceNames);
-		}
-	}
-	
-	// static helpers
-		
-	private void setUseClipboard(boolean useClipboard) {
-		if (useClipboard)
-			fUseClipboardButton.setSelection(true);
-		else
-			fUsePatchFileButton.setSelection(true);
-		setEnablePatchFile(!useClipboard);
-	}
-	
-	private boolean getUseClipboard() {
-		if (fUseClipboardButton != null)
-			return fUseClipboardButton.getSelection();
-		return false;
-	}
-
-	private String getPatchFilePath() {
-		if (fPatchFileNameField != null)
-			return fPatchFileNameField.getText();
-		return ""; //$NON-NLS-1$
-	} 
-
-	/**
-	 * Adds an entry to a history, while taking care of duplicate history items
-	 * and excessively long histories. The assumption is made that all histories
-	 * should be of length <code>COMBO_HISTORY_LENGTH</code>.
-	 *
-	 * @param history the current history
-	 * @param newEntry the entry to add to the history
-	 */
-	protected static String[] addToHistory(String[] history, String newEntry) {
-		java.util.ArrayList l= new java.util.ArrayList(java.util.Arrays.asList(history));
-
-		l.remove(newEntry);
-		l.add(0,newEntry);
-	
-		// since only one new item was added, we can be over the limit
-		// by at most one item
-		if (l.size() > COMBO_HISTORY_LENGTH)
-			l.remove(COMBO_HISTORY_LENGTH);
-		
-		return (String[]) l.toArray(new String[l.size()]);
-	}
-}
-
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/LineReader.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/LineReader.java
deleted file mode 100644
index 33b9ca5..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/LineReader.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal.patch;
-
-import java.io.*;
-import java.util.*;
-
-import org.eclipse.jface.util.Assert;
-
-/* package */ class LineReader {
-
-	private boolean fHaveChar= false;
-	private int fLastChar;
-	private boolean fSawEOF= false;
-	private BufferedReader fReader;
-	private boolean fIgnoreSingleCR= false;
-	
-	
-	/* package */ LineReader(BufferedReader reader) {
-		fReader= reader;
-		Assert.isNotNull(reader);
-	}
-
-	void ignoreSingleCR() {
-		fIgnoreSingleCR= true;
-	}
-	
-    /**
-     * Reads a line of text. A line is considered to be terminated by any one
-     * of a line feed ('\n'), a carriage return ('\r'), or a carriage return
-     * followed immediately by a linefeed.
-     * @return A string containing the contents of the line including
-     *	the line-termination characters, or <code>null</code> if the end of the
-     *	stream has been reached
-     * @exception IOException If an I/O error occurs
-     */
-	/* package */ String readLine() throws IOException {
-		StringBuffer sb= null;
-				
-		while (!fSawEOF) {
-			int c= readChar();
-			if (c == -1) {
-				fSawEOF= true;
-				break;
-			}
-			if (sb == null)
-				sb= new StringBuffer();
-			sb.append((char)c);
-			if (c == '\n')
-				break;
-			if (c == '\r') {
-				c= readChar();
-				if (c == -1) {
-					fSawEOF= true;
-					break;	// EOF
-				}
-				if (c != '\n') {
-					if (fIgnoreSingleCR) {
-						sb.append((char)c);	
-						continue;
-					} else {
-						fHaveChar= true;
-						fLastChar= c;
-					}
-				} else
-					sb.append((char)c);	
-				break;
-			}
-		}
-		
-		if (sb != null)
-			return sb.toString();
-		return null;
-	}
-	
-	/* package */ void close() {
-		try {
-			fReader.close();
-		} catch (IOException ex) {
-		}
-	}
-	
-	/* package */ List readLines() {
-		try {
-			List lines= new ArrayList();
-			String line;
-			while ((line= readLine()) != null)
-				lines.add(line);
-			return lines;
-		} catch (IOException ex) {
-			//System.out.println("error while reading file: " + fileName + "(" + ex + ")");
-		} finally {
-			close();
-		}
-		return null;
-	}
-	/**
-	 * Returns the number of characters in the given string without
-	 * counting a trailing line separator.
-	 */
-	/* package */ int lineContentLength(String line) {
-		if (line == null)
-			return 0;
-		int length= line.length();
-		for (int i= length-1; i >= 0; i--) {
-			char c= line.charAt(i);
-			if (c =='\n' || c == '\r')
-				length--;
-			else
-				break;
-		}
-		return length;
-	}
-	
-	//---- private
-	
-	private int readChar() throws IOException {
-		if (fHaveChar) {
-			fHaveChar= false;
-			return fLastChar;
-		}
-		return fReader.read();
-	}
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatchErrorDialog.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatchErrorDialog.java
deleted file mode 100644
index c4aee63..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatchErrorDialog.java
+++ /dev/null
@@ -1,19 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal.patch;
-
-public class PatchErrorDialog {
-	
-	private PatchErrorDialog() {
-		// no instance.
-	}
-	
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatchMessages.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatchMessages.java
deleted file mode 100644
index 569b875..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatchMessages.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal.patch;
-
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-public class PatchMessages {
-
-	private static final String RESOURCE_BUNDLE= "org.eclipse.compare.internal.patch.PatchMessages";//$NON-NLS-1$
-
-	private static ResourceBundle fgResourceBundle= ResourceBundle.getBundle(RESOURCE_BUNDLE);
-
-	private PatchMessages() {
-	}
-
-	public static String getString(String key) {
-		try {
-			return fgResourceBundle.getString(key);
-		} catch (MissingResourceException e) {
-			return "!" + key + "!";//$NON-NLS-2$ //$NON-NLS-1$
-		}
-	}
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatchMessages.properties b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatchMessages.properties
deleted file mode 100644
index 20c8633..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatchMessages.properties
+++ /dev/null
@@ -1,90 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-#
-# 'Compare with Patch' Action
-#
-PatchAction.ExceptionTitle=Saving Resources
-PatchAction.Exception=Unexpected exception. See log for details
-PatchAction.SavingDirtyEditorsTask=Saving dirty editors
-PatchAction.AlwaysSaveQuestion=&Always save all modified resources automatically prior to patching
-PatchAction.SaveAllQuestion=Save all modified resources
-PatchAction.SaveAllDescription=All modified resources have to be saved before this operation.\nClick 'OK' to confirm or click 'Cancel'.
-
-#
-# PatchWizard
-#
-PatchWizard.title=Apply Patch
-PatchWizard.unexpectedException.message= Unexpected exception while applying the patch. See log for a detailed error description.
-
-#
-# InputPatchPage
-#
-InputPatchPage.title= Patch Input Specification
-InputPatchPage.message= Define the resource to patch and the patch to apply
-InputPatchPage.Clipboard=Clipboard
-InputPatchPage.SelectInput=Select a single file or folder to patch:
-InputPatchPage.PatchErrorDialog.title=Patch Error
-InputPatchPage.PatchErrorDialog=Patch Error
-InputPatchPage.SelectPatch.title=Select Patch
-InputPatchPage.FileButton.text=Fil&e
-InputPatchPage.ChooseFileButton.text=&Browse...
-InputPatchPage.UseClipboardButton.text=&Clipboard
-InputPatchPage.NothingSelected.message=Select a file or folder to be patched
-InputPatchPage.ClipboardIsEmpty.message=Clipboard is empty
-InputPatchPage.NoTextInClipboard.message=Clipboard does not contain text
-InputPatchPage.CouldNotReadClipboard.message=Couldn't retrieve clipboard contents
-InputPatchPage.CannotLocatePatch.message=Can't locate patch file: 
-InputPatchPage.NoFileName.message=No file name
-InputPatchPage.SelectPatchFileDialog.title=Select Patch File
-InputPatchPage.PatchFileNotFound.message=Patch file not found.
-InputPatchPage.ParseError.message=Error while parsing patch
-InputPatchPage.Clipboard.title=Clipboard
-InputPatchPage.PatchFile.title=Patch file
-InputPatchPage.NoDiffsFound.format={0} does not contain valid patch.
-InputPatchPage.SingleFileError.format={0} contains multiple patches. You cannot apply them to a single file.
-
-#
-# PreviewPatchPage
-#
-PreviewPatchPage.title= Verify Patch
-PreviewPatchPage.message= The tree shows the contents of the patch.\nA checked item indicates that a patch can be applied successfully. To remove an item, clear its checkbox.
-PreviewPatchPage.Left.title= Original
-PreviewPatchPage.Right.title= Result
-PreviewPatchPage.PatchOptions.title=Patch Options
-PreviewPatchPage.IgnoreSegments.text=&Ignore leading path name segments:
-PreviewPatchPage.ReversePatch.text=&Reverse patch
-PreviewPatchPage.FuzzFactor.text=&Maximum fuzz factor:
-PreviewPatchPage.FuzzFactor.tooltip=Allow context to shift this number of lines from the original place
-PreviewPatchPage.IgnoreWhitespace.text=Ignore &white space
-PreviewPatchPage.NoName.text=no name
-PreviewPatchPage.FileExists.error=(file already exists)
-PreviewPatchPage.FileDoesNotExist.error=(file doesn't exist)
-PreviewPatchPage.NoMatch.error=(no match)
-PreviewPatchPage.FileIsReadOnly.error=(file is read only)
-PreviewPatchPage.GuessFuzz.text= &Guess
-PreviewPatchPage.GuessFuzzProgress.text= Guessing Fuzz Factor...
-PreviewPatchPage.GuessFuzzProgress.format= {0} (hunk #{1})
-
-#
-# Patcher
-#
-Patcher.ErrorDialog.title=title
-Patcher.DeleteError.message=Error while deleting resource
-Patcher.UpdateError.message=Error while updating resource
-Patcher.RefreshError.message=Error while refreshing from local
-Patcher.Marker.message=Rejected patch
-Patcher.Task.message=Patching
-
-#
-# PatchCompareInput
-#
-PatchCompareInput.RightTitle.format= Patch: {0}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatchWizard.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatchWizard.java
deleted file mode 100644
index 8144490..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatchWizard.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal.patch;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
-
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.viewers.*;
-import org.eclipse.jface.wizard.Wizard;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.CoreException;
-
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-
-import org.eclipse.compare.internal.*;
-
-
-/* package */ class PatchWizard extends Wizard {
-	
-	// dialog store id constants
-	private final static String DIALOG_SETTINGS_KEY= "PatchWizard"; //$NON-NLS-1$
-
-	private boolean fHasNewDialogSettings;
-	
-	private InputPatchPage fPatchWizardPage;
-	
-	private Patcher fPatcher;
-	private IResource fTarget;
-
-		
-	/**
-	 * Creates a wizard for applying a patch file to the workspace.
-	 */
-	/* package */ PatchWizard(ISelection selection) {
-		
-		setDefaultPageImageDescriptor(CompareUIPlugin.getImageDescriptor("wizban/applypatch_wizban.gif"));	//$NON-NLS-1$
-		setWindowTitle(PatchMessages.getString("PatchWizard.title")); //$NON-NLS-1$
-
-		setTargets(getResource(selection));
-
-		fPatcher= new Patcher();
-				
-		IDialogSettings workbenchSettings= CompareUIPlugin.getDefault().getDialogSettings();
-		IDialogSettings section= workbenchSettings.getSection(DIALOG_SETTINGS_KEY); //$NON-NLS-1$
-		if (section == null)
-			fHasNewDialogSettings= true;
-		else {
-			fHasNewDialogSettings= false;
-			setDialogSettings(section);
-		}	
-	}
-	
-	static IResource[] getResource(ISelection selection) {
-		IResource[] rs= Utilities.getResources(selection);
-		ArrayList list= null;
-		for (int i= 0; i < rs.length; i++) {
-			IResource r= rs[i];
-			if (r != null && r.isAccessible()) {
-				if (list == null)
-					list= new ArrayList();
-				list.add(r);
-			}
-		}
-		if (list != null && list.size() > 0)
-			return (IResource[]) list.toArray(new IResource[list.size()]);
-		return null;
-	}
-	
-	Patcher getPatcher() {
-		return fPatcher;
-	}
-	
-	IResource getTarget() {
-		return fTarget;
-	}
-	
-	void setTargets(IResource[] targets) {
-		if (targets != null)
-			fTarget= targets[0];	// right now we can only deal with a single selection
-	}
-	
-	/* (non-Javadoc)
-	 * Method declared on IWizard.
-	 */
-	public void addPages() {
-		super.addPages();
-		
-		addPage(fPatchWizardPage= new InputPatchPage(this));
-		addPage(new PreviewPatchPage(this));
-	}
-	
-	/* (non-Javadoc)
-	 * Method declared on IWizard.
-	 */
-	public boolean needsProgressMonitor() {
-		return true;
-	}
-
-	/* (non-Javadoc)
-	 * Method declared on IWizard.
-	 */
-	public boolean performFinish() {
-		
-		fPatcher.setName(fPatchWizardPage.getPatchName());
-
-		try {
-			WorkspaceModifyOperation op= new WorkspaceModifyOperation() {
-				protected void execute(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
-					try {
-						fPatcher.applyAll(getTarget(), monitor);
-					} catch (CoreException e) {
-						throw new InvocationTargetException(e);
-					}
-				}
-			};
-			getContainer().run(true, false, op);
-
-		} catch (InvocationTargetException e) {
-			ExceptionHandler.handle(e,
-					PatchMessages.getString("PatchWizard.title"),	//$NON-NLS-1$ 
-					PatchMessages.getString("PatchWizard.unexpectedException.message"));	//$NON-NLS-1$
-		} catch (InterruptedException e) {
-			// cannot happen
-		}
-		
-		// Save the dialog settings
-		if (fHasNewDialogSettings) {
-			IDialogSettings workbenchSettings= CompareUIPlugin.getDefault().getDialogSettings();
-			IDialogSettings section= workbenchSettings.getSection(DIALOG_SETTINGS_KEY);
-			section= workbenchSettings.addNewSection(DIALOG_SETTINGS_KEY);
-			setDialogSettings(section);
-		}
-		
-		fPatchWizardPage.saveWidgetValues();
-		//fPreviewPatchPage.saveWidgetValues();
-		
-		return true;
-	}
-}
-
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/Patcher.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/Patcher.java
deleted file mode 100644
index 34e193f..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/Patcher.java
+++ /dev/null
@@ -1,1052 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal.patch;
-
-import java.io.*;
-import java.text.*;
-import java.util.*;
-
-import org.eclipse.swt.SWT;
-
-import org.eclipse.jface.util.Assert;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.core.resources.*;
-
-import org.eclipse.compare.structuremergeviewer.Differencer;
-
-/**
- * A Patcher 
- * - knows how to parse various patch file formats into some in-memory structure,
- * - holds onto the parsed data and the options to use when applying the patches,
- * - knows how to apply the patches to files and folders.
- */
-public class Patcher {
-	
-	private static final boolean DEBUG= false;
-	
-	private static final String DEV_NULL= "/dev/null"; //$NON-NLS-1$
-	
-	private static final String REJECT_FILE_EXTENSION= ".rej"; //$NON-NLS-1$
-	
-	private static final String MARKER_TYPE= "org.eclipse.compare.rejectedPatchMarker";	//$NON-NLS-1$
-
-	// diff formats
-//	private static final int CONTEXT= 0;
-//	private static final int ED= 1;
-//	private static final int NORMAL= 2;
-//	private static final int UNIFIED= 3;
-	
-	// we recognize the following date/time formats
-	private static DateFormat[] DATE_FORMATS= new DateFormat[] {
-		new SimpleDateFormat("EEE MMM dd kk:mm:ss yyyy"), //$NON-NLS-1$
-		new SimpleDateFormat("yyyy/MM/dd kk:mm:ss"), //$NON-NLS-1$
-		new SimpleDateFormat("EEE MMM dd kk:mm:ss yyyy", Locale.US) //$NON-NLS-1$
-	};
-		
-	private String fName;
-	private Diff[] fDiffs;
-	// patch options
-	private int fStripPrefixSegments;
-	private int fFuzz;
-	private boolean fIgnoreWhitespace= false;
-	private boolean fIgnoreLineDelimiter= true;
-	private boolean fPreserveLineDelimiters= false;
-	private boolean fReverse= false;
-	private boolean fAdjustShift= true;
-	
-	
-	Patcher() {
-	}
-	
-	//---- options
-	
-	void setName(String name) {
-		fName= name;
-	}
-	
-	String getName() {
-		return fName;
-	}
-	
-	/**
-	 * Returns an array of Diffs after a sucessfull call to <code>parse</code>.
-	 * If <code>parse</code> hasn't been called returns <code>null</code>.
-	 */
-	Diff[] getDiffs() {
-		return fDiffs;
-	}
-	
-	IPath getPath(Diff diff) {
-		IPath path= diff.getPath();
-		if (fStripPrefixSegments > 0 && fStripPrefixSegments < path.segmentCount())
-			path= path.removeFirstSegments(fStripPrefixSegments);
-		return path;
-	}
-
-	/**
-	 * Returns <code>true</code> if new value differs from old.
-	 */
-	boolean setStripPrefixSegments(int strip) {
-		if (strip != fStripPrefixSegments) {
-			fStripPrefixSegments= strip;
-			return true;
-		}
-		return false;
-	}
-	
-	int getStripPrefixSegments() {
-		return fStripPrefixSegments;
-	}
-	
-	/**
-	 * Returns <code>true</code> if new value differs from old.
-	 */
-	boolean setFuzz(int fuzz) {
-		if (fuzz != fFuzz) {
-			fFuzz= fuzz;
-			return true;
-		}
-		return false;
-	}
-	
-	/**
-	 * Returns <code>true</code> if new value differs from old.
-	 */
-	boolean setReversed(boolean reverse) {
-		if (fReverse != reverse) {
-			fReverse= reverse;
-			
-			for (int i= 0; i < fDiffs.length; i++)
-				fDiffs[i].reverse();
-						
-			return true;
-		}
-		return false;
-	}
-		
-	/**
-	 * Returns <code>true</code> if new value differs from old.
-	 */
-	boolean setIgnoreWhitespace(boolean ignoreWhitespace) {
-		if (ignoreWhitespace != fIgnoreWhitespace) {
-			fIgnoreWhitespace= ignoreWhitespace;
-			return true;
-		}
-		return false;
-	}
-		
-	//---- parsing patch files
-		
-	/* package */ void parse(BufferedReader reader) throws IOException {
-		List diffs= new ArrayList();
-		String line= null;
-		boolean reread= false;
-		String diffArgs= null;
-		String fileName= null;
-		
-		LineReader lr= new LineReader(reader);
-		if (!"carbon".equals(SWT.getPlatform()))	//$NON-NLS-1$
-			lr.ignoreSingleCR();
-		
-		// read leading garbage
-		while (true) {
-			if (!reread)
-				line= lr.readLine();
-			reread= false;
-			if (line == null)
-				break;
-			if (line.length() < 4)
-				continue;	// too short
-								
-			// remember some infos
-			if (line.startsWith("Index: ")) { //$NON-NLS-1$
-				fileName= line.substring(7).trim();
-				continue;
-			}
-			if (line.startsWith("diff")) { //$NON-NLS-1$
-				diffArgs= line.substring(4).trim();
-				continue;
-			}
-
-			if (line.startsWith("--- ")) { //$NON-NLS-1$
-				line= readUnifiedDiff(diffs, lr, line, diffArgs, fileName);
-				diffArgs= fileName= null;
-				reread= true;
-			} else if (line.startsWith("*** ")) { //$NON-NLS-1$
-				line= readContextDiff(diffs, lr, line, diffArgs, fileName);
-				diffArgs= fileName= null;
-				reread= true;
-			}
-		}
-		
-		lr.close();
-		
-		fDiffs= (Diff[]) diffs.toArray((Diff[]) new Diff[diffs.size()]);
-	}
-
-	/**
-	 * Returns the next line that does not belong to this diff
-	 */
-	private String readUnifiedDiff(List diffs, LineReader reader, String line, String args, String fileName) throws IOException {
-								
-		String[] oldArgs= split(line.substring(4));
-
-		// read info about new file
-		line= reader.readLine();
-		if (line == null || !line.startsWith("+++ ")) //$NON-NLS-1$
-			return line;
-			
-		String[] newArgs= split(line.substring(4));
-	
-		Diff diff= new Diff(extractPath(oldArgs, 0, fileName), extractDate(oldArgs, 1),
-				   			extractPath(newArgs, 0, fileName), extractDate(newArgs, 1));
-		diffs.add(diff);
-				   
-		int[] oldRange= new int[2];
-		int[] newRange= new int[2];
-		List lines= new ArrayList();
-
-		try {
-			// read lines of hunk
-			while (true) {
-				
-				line= reader.readLine();
-				if (line == null)
-					return null;
-					
-				if (reader.lineContentLength(line) == 0) {
-					//System.out.println("Warning: found empty line in hunk; ignored");
-					//lines.add(' ' + line);
-					continue;
-				}
-				
-				char c= line.charAt(0);
-				switch (c) {
-				case '@':
-					if (line.startsWith("@@ ")) { //$NON-NLS-1$
-						// flush old hunk
-						if (lines.size() > 0) {
-							new Hunk(diff, oldRange, newRange, lines);
-							lines.clear();
-						}
-								
-						// format: @@ -oldStart,oldLength +newStart,newLength @@
-						extractPair(line, '-', oldRange);
-						extractPair(line, '+', newRange);
-						continue;
-					}
-					break;
-				case ' ':
-				case '+':
-				case '-':
-					lines.add(line);
-					continue;
-				case '\\':
-					if (line.startsWith("No newline at end of file", 2)) { //$NON-NLS-1$
-						int lastIndex= lines.size();
-						if (lastIndex > 0) {
-							line= (String) lines.get(lastIndex-1);
-							int end= line.length()-1;
-							char lc= line.charAt(end);
-							if (lc == '\n') {
-								end--;
-								if (end > 0 && line.charAt(end-1) == '\r')
-									end--;
-							} else if (lc == '\r') {
-								end--;
-							}
-							line= line.substring(0, end);
-							lines.set(lastIndex-1, line);
-						}
-						continue;
-					}
-					break;
-				default:
-					if (DEBUG) {
-						int a1= c, a2= 0;
-						if (line.length() > 1)
-							a2= line.charAt(1);
-						System.out.println("char: " + a1 + " " + a2); //$NON-NLS-1$ //$NON-NLS-2$
-					}
-					break;
-				}
-				return line;
-			}
-		} finally {
-			if (lines.size() > 0)
-				new Hunk(diff, oldRange, newRange, lines);
-			diff.finish();
-		}
-	}
-	
-	/**
-	 * Returns the next line that does not belong to this diff
-	 */
-	private String readContextDiff(List diffs, LineReader reader, String line, String args, String fileName) throws IOException {
-		
-		String[] oldArgs= split(line.substring(4));
-		
-		// read info about new file
-		line= reader.readLine();
-		if (line == null || !line.startsWith("--- ")) //$NON-NLS-1$
-			return line;
-		
-		String[] newArgs= split(line.substring(4));
-						
-		Diff diff= new Diff(extractPath(oldArgs, 0, fileName), extractDate(oldArgs, 1),
-				   			extractPath(newArgs, 0, fileName), extractDate(newArgs, 1));
-		diffs.add(diff);
-				   
-		int[] oldRange= new int[2];
-		int[] newRange= new int[2];
-		List oldLines= new ArrayList();
-		List newLines= new ArrayList();
-		List lines= oldLines;
-		
-		try {
-			// read lines of hunk
-			while (true) {
-				
-				line= reader.readLine();
-				if (line == null)
-					return line;
-				
-				int l= line.length();
-				if (l == 0)
-					continue;
-				if (l > 1) {
-					switch (line.charAt(0)) {
-					case '*':	
-						if (line.startsWith("***************")) {	// new hunk //$NON-NLS-1$
-							// flush old hunk
-							if (oldLines.size() > 0 || newLines.size() > 0) {
-								new Hunk(diff, oldRange, newRange, unifyLines(oldLines, newLines));
-								oldLines.clear();
-								newLines.clear();
-							}
-							continue;
-						}
-						if (line.startsWith("*** ")) {	// old range //$NON-NLS-1$
-							// format: *** oldStart,oldEnd ***
-							extractPair(line, ' ', oldRange);
-							oldRange[1]= oldRange[1]-oldRange[0]+1;
-							lines= oldLines;
-							continue;
-						}
-						break;
-					case ' ':	// context line
-					case '+':	// addition
-					case '!':	// change
-						if (line.charAt(1) == ' ') {
-							lines.add(line);
-							continue;
-						}
-						break;
-					case '-':
-						if (line.charAt(1) == ' ') {	// deletion
-							lines.add(line);
-							continue;
-						}
-						if (line.startsWith("--- ")) {	// new range //$NON-NLS-1$
-							// format: *** newStart,newEnd ***
-							extractPair(line, ' ', newRange);
-							newRange[1]= newRange[1]-newRange[0]+1;
-							lines= newLines;
-							continue;
-						}
-						break;
-					default:
-						break;
-					}
-				}
-				return line;
-			}
-		} finally {
-			// flush last hunk
-			if (oldLines.size() > 0 || newLines.size() > 0)
-				new Hunk(diff, oldRange, newRange, unifyLines(oldLines, newLines));
-			diff.finish();
-		}
-	}
-	
-	/**
-	 * Creates a List of lines in the unified format from
-	 * two Lists of lines in the 'classic' format.
-	 */
-	private List unifyLines(List oldLines, List newLines) {
-		List result= new ArrayList();
-
-		String[] ol= (String[]) oldLines.toArray(new String[oldLines.size()]);
-		String[] nl= (String[]) newLines.toArray(new String[newLines.size()]);
-		
-		int oi= 0, ni= 0;
-		
-		while (true) {
-			
-			char oc= 0;
-			String o= null;
-			if (oi < ol.length) {
-				o= ol[oi];
-				oc= o.charAt(0);
-			}
-			
-			char nc= 0;
-			String n= null;
-			if (ni < nl.length) {
-				n= nl[ni];
-				nc= n.charAt(0);
-			}
-			
-			// EOF
-			if (oc == 0 && nc == 0)
-				break;
-				
-			// deletion in old
-			if (oc == '-') {
-				do {
-					result.add('-' + o.substring(2));
-					oi++;
-					if (oi >= ol.length)
-						break;
-					o= ol[oi];
-				} while (o.charAt(0) == '-');
-				continue;
-			}
-			
-			// addition in new
-			if (nc == '+') {
-				do {
-					result.add('+' + n.substring(2));
-					ni++;
-					if (ni >= nl.length)
-						break;
-					n= nl[ni];
-				} while (n.charAt(0) == '+');
-				continue;
-			}
-			
-			// differing lines on both sides
-			if (oc == '!' && nc == '!') {
-				// remove old
-				do {
-					result.add('-' + o.substring(2));
-					oi++;
-					if (oi >= ol.length)
-						break;
-					o= ol[oi];
-				} while (o.charAt(0) == '!');
-				
-				// add new
-				do {
-					result.add('+' + n.substring(2));
-					ni++;
-					if (ni >= nl.length)
-						break;
-					n= nl[ni];
-				} while (n.charAt(0) == '!');
-				
-				continue;
-			}
-			
-			// context lines
-			if (oc == ' ' && nc == ' ') {
-				do {
-					Assert.isTrue(o.equals(n), "non matching context lines"); //$NON-NLS-1$
-					result.add(' ' + o.substring(2));
-					oi++;
-					ni++;
-					if (oi >= ol.length || ni >= nl.length)
-						break;
-					o= ol[oi];
-					n= nl[ni];
-				} while (o.charAt(0) == ' ' && n.charAt(0) == ' ');
-				continue;
-			}
-			
-			if (oc == ' ') {
-				do {
-					result.add(' ' + o.substring(2));
-					oi++;
-					if (oi >= ol.length)
-						break;
-					o= ol[oi];
-				} while (o.charAt(0) == ' ');
-				continue;
-			}
-
-			if (nc == ' ') {
-				do {
-					result.add(' ' + n.substring(2));
-					ni++;
-					if (ni >= nl.length)
-						break;
-					n= nl[ni];
-				} while (n.charAt(0) == ' ');
-				continue;
-			}
-			
-			Assert.isTrue(false, "unexpected char <" + oc + "> <" + nc + ">"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		}
-		
-		return result;
-	}
-	
-	/**
-	 * Breaks the given string into tab separated substrings.
-	 * Leading and trailing whitespace is removed from each token.
-	 */ 
-	private String[] split(String line) {
-		List l= new ArrayList();
-		StringTokenizer st= new StringTokenizer(line, "\t"); //$NON-NLS-1$
-		while (st.hasMoreElements()) {
-			String token= st.nextToken().trim();
-			if (token.length() > 0)
- 				l.add(token);
-		}
-		return (String[]) l.toArray(new String[l.size()]);
-	}
-	
-	/**
-	 * @return the parsed time/date in milliseconds or -1 on error
-	 */
-	private long extractDate(String[] args, int n) {
-		if (n < args.length) {
-			String line= args[n];
-			for (int i= 0; i < DATE_FORMATS.length; i++) {
-				DATE_FORMATS[i].setLenient(true);
-				try {
-					Date date= DATE_FORMATS[i].parse(line);
-					return date.getTime();		
-				} catch (ParseException ex) {
-				}
-			}
-			// System.err.println("can't parse date: <" + line + ">");
-		}
-		return -1;
-	}
-	
-	/**
-	 * Returns null if file name is "/dev/null".
-	 */
-	private IPath extractPath(String[] args, int n, String path2) {
-		if (n < args.length) {
-			String path= args[n];
-			if (DEV_NULL.equals(path))
-				return null;
-			int pos= path.lastIndexOf(':');
-			if (pos >= 0)
-				path= path.substring(0, pos);
-			if (path2 != null && !path2.equals(path)) {
-				if (DEBUG) System.out.println("path mismatch: " + path2); //$NON-NLS-1$
-				path= path2;
-			}
-			return new Path(path);
-		}
-		return null;
-	}
-	
-	/**
-	 * Tries to extract two integers separated by a comma.
-	 * The parsing of the line starts at the position after
-	 * the first occurrence of the given character start an ends
-	 * at the first blank (or the end of the line).
-	 * If only a single number is found this is assumed to be the length of the range.
-	 * In this case the start of the range is set to 1.
-	 * If an error occurs the range -1,-1 is returned.
-	 */
-	private void extractPair(String line, char start, int[] pair) {
-		pair[0]= pair[1]= -1;
-		int startPos= line.indexOf(start);
-		if (startPos < 0) {
-			if (DEBUG) System.out.println("parsing error in extractPair: couldn't find \'" + start + "\'"); //$NON-NLS-1$ //$NON-NLS-2$
-			return;
-		}
-		line= line.substring(startPos+1);
-		int endPos= line.indexOf(' ');
-		if (endPos < 0) {
-			if (DEBUG) System.out.println("parsing error in extractPair: couldn't find end blank"); //$NON-NLS-1$
-			return;
-		}
-		line= line.substring(0, endPos);
-		int comma= line.indexOf(',');
-		if (comma >= 0) {
-			pair[0]= Integer.parseInt(line.substring(0, comma));
-			pair[1]= Integer.parseInt(line.substring(comma+1));
-		} else {
-			pair[0]= 1;
-			pair[1]= Integer.parseInt(line.substring(comma+1));
-		}
-	}
-	
-	//---- applying a patch file
-	
-	/**
-	 * Tries to patch the given lines with the specified Diff.
-	 * Any hunk that couldn't be applied is returned in the list failedHunks.
-	 */
-	/* package */ void patch(Diff diff, List lines, List failedHunks) {
-		
-		int shift= 0;
-		Iterator iter= diff.fHunks.iterator();
-		while (iter.hasNext()) {
-			Hunk hunk= (Hunk) iter.next();
-			hunk.fMatches= false;
-			shift= patch(hunk, lines, shift, failedHunks);
-		}
-	}
-
-	/**
-	 * Tries to apply the specified hunk to the given lines.
-	 * If the hunk cannot be applied at the original position
-	 * the methods tries Fuzz lines before and after.
-	 * If this fails the Hunk is added to the given list of failed hunks.
-	 */
-	private int patch(Hunk hunk, List lines, int shift, List failedHunks) {
-		if (tryPatch(hunk, lines, shift)) {
-			if (hunk.isEnabled())
-				shift+= doPatch(hunk, lines, shift);
-		} else {
-			boolean found= false;
-			int oldShift= shift;
-						
-			for (int i= 1; i <= fFuzz; i++) {
-				if (tryPatch(hunk, lines, shift-i)) {
-					if (fAdjustShift)
-						shift-= i;
-					found= true;
-					break;
-				}
-			}
-			
-			if (! found) {
-				for (int i= 1; i <= fFuzz; i++) {
-					if (tryPatch(hunk, lines, shift+i)) {
-						if (fAdjustShift)
-							shift+= i;
-						found= true;
-						break;
-					}
-				}
-			}
-			
-			if (found) {
-				if (DEBUG) System.out.println("patched hunk at offset: " + (shift-oldShift)); //$NON-NLS-1$
-				shift+= doPatch(hunk, lines, shift);
-			} else {
-				if (failedHunks != null) {
-					if (DEBUG) System.out.println("failed hunk"); //$NON-NLS-1$
-					failedHunks.add(hunk);
-				}
-			}
-		}
-		return shift;
-	}
-	
-	/**
-	 * Tries to apply the given hunk on the specified lines.
-	 * The parameter shift is added to the line numbers given
-	 * in the hunk.
-	 */
-	private boolean tryPatch(Hunk hunk, List lines, int shift) {
-		int pos= hunk.fOldStart + shift;
-		int deleteMatches= 0;
-		for (int i= 0; i < hunk.fLines.length; i++) {
-			String s= hunk.fLines[i];
-			Assert.isTrue(s.length() > 0);
-			String line= s.substring(1);
-			char controlChar= s.charAt(0);
-			if (controlChar == ' ') {	// context lines
-				while (true) {
-					if (pos < 0 || pos >= lines.size())
-						return false;
-					if (linesMatch(line, (String) lines.get(pos))) {
-						pos++;
-						break;
-					}
-					return false;
-				}
-			} else if (controlChar == '-') {
-				// deleted lines
-				while (true) {
-					if (pos < 0 || pos >= lines.size())
-						return false;
-					if (linesMatch(line, (String) lines.get(pos))) {
-						deleteMatches++;
-						pos++;
-						break;
-					}
-					if (deleteMatches <= 0)
-						return false;
-					pos++;
-				}
-			} else if (controlChar == '+') {
-				// added lines
-				// we don't have to do anything for a 'try'
-			} else
-				Assert.isTrue(false, "tryPatch: unknown control character: " + controlChar); //$NON-NLS-1$
-		}
-		return true;
-	}
-	
-	private int doPatch(Hunk hunk, List lines, int shift) {
-		int pos= hunk.fOldStart + shift;
-		for (int i= 0; i < hunk.fLines.length; i++) {
-			String s= hunk.fLines[i];
-			Assert.isTrue(s.length() > 0);
-			String line= s.substring(1);
-			char controlChar= s.charAt(0);
-			if (controlChar == ' ') {	// context lines
-				while (true) {
-					Assert.isTrue(pos < lines.size(), "doPatch: inconsistency in context"); //$NON-NLS-1$
-					if (linesMatch(line, (String) lines.get(pos))) {
-						pos++;
-						break;
-					}
-					pos++;
-				}
-			} else if (controlChar == '-') {
-				// deleted lines				
-				while (true) {
-					Assert.isTrue(pos < lines.size(), "doPatch: inconsistency in deleted lines"); //$NON-NLS-1$
-					if (linesMatch(line, (String) lines.get(pos))) {
-						break;
-					}
-					pos++;
-				}
-				lines.remove(pos);
-			} else if (controlChar == '+') {
-				// added lines
-				lines.add(pos,  line);
-				pos++;
-			} else
-				Assert.isTrue(false, "doPatch: unknown control character: " + controlChar); //$NON-NLS-1$
-		}
-		hunk.fMatches= true;
-		return hunk.fNewLength - hunk.fOldLength;
-	}
-
-	public void applyAll(IResource target, IProgressMonitor pm) throws CoreException {
-		
-		final int WORK_UNIT= 10;
-				
-		IFile singleFile= null;	// file to be patched
-		IContainer container= null;
-		if (target instanceof IContainer)
-			container= (IContainer) target;
-		else if (target instanceof IFile) {
-			singleFile= (IFile) target;
-			container= singleFile.getParent();
-		} else {
-			Assert.isTrue(false);
-		}
-		
-		if (pm != null) {
-			String message= PatchMessages.getString("Patcher.Task.message");	//$NON-NLS-1$
-			pm.beginTask(message, fDiffs.length*WORK_UNIT);
-		}
-		
-		for (int i= 0; i < fDiffs.length; i++) {
-			
-			int workTicks= WORK_UNIT;
-			
-			Diff diff= fDiffs[i];
-			if (diff.isEnabled()) {
-				
-				IPath path= getPath(diff);
-				if (pm != null)
-					pm.subTask(path.toString());
-			
-				IFile file= singleFile != null
-								? singleFile
-								: createPath(container, path);
-					
-				List failed= new ArrayList();
-				List result= null;
-				
-				int type= diff.getType();
-				switch (type) {
-				case Differencer.ADDITION:
-					// patch it and collect rejected hunks
-					result= apply(diff, file, true, failed);
-					store(createString(result), file, new SubProgressMonitor(pm, workTicks));
-					workTicks-= WORK_UNIT;
-					break;
-				case Differencer.DELETION:
-					file.delete(true, true, new SubProgressMonitor(pm, workTicks));
-					workTicks-= WORK_UNIT;
-					break;
-				case Differencer.CHANGE:
-					// patch it and collect rejected hunks
-					result= apply(diff, file, false, failed);
-					store(createString(result), file, new SubProgressMonitor(pm, workTicks));
-					workTicks-= WORK_UNIT;
-					break;
-				}
-
-				if (failed.size() > 0) {
-					IPath pp= null;
-					if (path.segmentCount() > 1) {
-						pp= path.removeLastSegments(1);
-						pp= pp.append(path.lastSegment() + REJECT_FILE_EXTENSION);
-					} else
-						pp= new Path(path.lastSegment() + REJECT_FILE_EXTENSION);
-					file= createPath(container, pp);
-					if (file != null) {
-						store(getRejected(failed), file, pm);
-						try {
-							IMarker marker= file.createMarker(MARKER_TYPE);
-							marker.setAttribute(IMarker.MESSAGE, PatchMessages.getString("Patcher.Marker.message"));	//$NON-NLS-1$
-							marker.setAttribute(IMarker.PRIORITY, IMarker.PRIORITY_HIGH);
-						} catch (CoreException ex) {
-						}
-					}
-				}
-			}
-			
-			if (pm != null) {
-				if (pm.isCanceled())
-					break;
-				if (workTicks > 0)
-					pm.worked(workTicks);
-			}
-		}
-	}
-	
-	/**
-	 * Reads the contents from the given file and returns them as
-	 * a List of lines.
-	 */
-	List load(IFile file, boolean create) {
-		List lines= null;
-		if (!create && file != null) {
-			// read current contents
-			InputStream is= null;
-			try {
-				is= file.getContents();
-				
-				Reader streamReader= null;
-				try {
-					streamReader= new InputStreamReader(is, ResourcesPlugin.getEncoding());
-				} catch (UnsupportedEncodingException x) {
-					// use default encoding
-					streamReader= new InputStreamReader(is);
-				}
-				
-				BufferedReader reader= new BufferedReader(streamReader);
-				LineReader lr= new LineReader(reader);
-				if (!"carbon".equals(SWT.getPlatform()))	//$NON-NLS-1$
-					lr.ignoreSingleCR();
-				lines= lr.readLines();
-			} catch(CoreException ex) {
-			} finally {
-				if (is != null)
-					try {
-						is.close();
-					} catch(IOException ex) {
-					}
-			}
-		}
-		
-		if (lines == null)
-			lines= new ArrayList();
-		return lines;
-	}
-	
-	List apply(Diff diff, IFile file, boolean create, List failedHunks) {
-		List lines= load(file, create);
-		patch(diff, lines, failedHunks);
-		return lines;
-	}
-	
-	/**
-	 * Converts the string into bytes and stores them in the given file.
-	 */
-	private void store(String contents, IFile file, IProgressMonitor pm) throws CoreException {
-		
-		byte[] bytes;
-		try {
-			bytes= contents.getBytes(ResourcesPlugin.getEncoding());
-		} catch (UnsupportedEncodingException x) {
-			// uses default encoding
-			bytes= contents.getBytes();
-		}
-		
-		InputStream is= new ByteArrayInputStream(bytes);
-		try {
-			if (file.exists()) {
-				file.setContents(is, false, true, pm);
-			} else {
-				file.create(is, false, pm);
-			}
-		} finally {
-			if (is != null)
-				try {
-					is.close();
-				} catch(IOException ex) {
-				}
-		}
-	}
-
-	/**
-	 * Concatenates all strings found in the given List.
-	 */
-	private String createString(List lines) {
-		StringBuffer sb= new StringBuffer();
-		Iterator iter= lines.iterator();
-		if (fPreserveLineDelimiters) {
-			while (iter.hasNext())
-				sb.append((String)iter.next());
-		} else {
-			String lineSeparator= System.getProperty("line.separator"); //$NON-NLS-1$
-			while (iter.hasNext()) {
-				String line= (String)iter.next();
-				int l= length(line);
-				if (l < line.length()) {	// line has delimiter
-					sb.append(line.substring(0, l));
-					sb.append(lineSeparator);
-				} else {
-					sb.append(line);
-				}
-			}
-		}
-		return sb.toString();
-	}
-
-	String getRejected(List failedHunks) {
-		if (failedHunks.size() <= 0)
-			return null;
-		
-		String lineSeparator= System.getProperty("line.separator"); //$NON-NLS-1$
-		StringBuffer sb= new StringBuffer();
-		Iterator iter= failedHunks.iterator();
-		while (iter.hasNext()) {
-			Hunk hunk= (Hunk) iter.next();
-			sb.append(hunk.getRejectedDescription());
-			sb.append(lineSeparator);
-			sb.append(hunk.getContent());
-		}
-		return sb.toString();
-	}
-	
-	/**
-	 * Ensures that a file with the given path exists in
-	 * the given container. Folder are created as necessary.
-	 */
-	private IFile createPath(IContainer container, IPath path) throws CoreException {
-		if (path.segmentCount() > 1) {
-			IFolder f= container.getFolder(path.uptoSegment(1));
-			if (!f.exists())
-				f.create(false, true, null);
-			return createPath(f, path.removeFirstSegments(1));
-		}
-		// a leaf
-		return container.getFile(path);
-	}
-
-	/**
-	 * Returns the given string with all whitespace characters removed.
-	 * Whitespace is defined by <code>Character.isWhitespace(...)</code>.
-	 */
-	private static String stripWhiteSpace(String s) {
-		StringBuffer sb= new StringBuffer();
-		int l= s.length();
-		for (int i= 0; i < l; i++) {
-			char c= s.charAt(i);
-			if (!Character.isWhitespace(c))
-				sb.append(c);
-		}
-		return sb.toString();
-	}
-	
-	/**
-	 * Compares two strings.
-	 * If fIgnoreWhitespace is true whitespace is ignored.
-	 */
-	private boolean linesMatch(String line1, String line2) {
-		if (fIgnoreWhitespace)
-			return stripWhiteSpace(line1).equals(stripWhiteSpace(line2));
-		if (fIgnoreLineDelimiter) {
-			int l1= length(line1);
-			int l2= length(line2);
-			if (l1 != l2)
-				return false;
-			return line1.regionMatches(0, line2, 0, l1);
-		}
-		return line1.equals(line2);
-	}
-	
-	/**
-	 * Returns the length (exluding a line delimiter CR, LF, CR/LF)
-	 * of the given string.
-	 */
-	/* package */ static int length(String s) {
-		int l= s.length();
-		if (l > 0) {
-			char c= s.charAt(l-1);
-			if (c == '\r')
-				return l-1;
-			if (c == '\n') {
-				if (l > 1 && s.charAt(l-2) == '\r')
-					return l-2;
-				return l-1;
-			}
-		}
-		return l;
-	}
-
-	int calculateFuzz(Hunk hunk, List lines, int shift, IProgressMonitor pm, int[] fuzz) {
-		
-		hunk.fMatches= false;
-		if (tryPatch(hunk, lines, shift)) {
-			shift+= doPatch(hunk, lines, shift);
-			fuzz[0]= 0;
-		} else {
-			boolean found= false;
-			int hugeFuzz= lines.size();	// the maximum we need for this file
-			fuzz[0]= -2;	// not found
-			
-			for (int i= 1; i <= hugeFuzz; i++) {
-				if (pm.isCanceled()) {
-					fuzz[0]= -1;
-					return 0;
-				}
-				if (tryPatch(hunk, lines, shift-i)) {
-					fuzz[0]= i;
-					if (fAdjustShift)
-						shift-= i;
-					found= true;
-					break;
-				}
-			}
-			
-			if (! found) {
-				for (int i= 1; i <= hugeFuzz; i++) {
-					if (pm.isCanceled()) {
-						fuzz[0]= -1;
-						return 0;
-					}
-					if (tryPatch(hunk, lines, shift+i)) {
-						fuzz[0]= i;
-						if (fAdjustShift)
-							shift+= i;
-						found= true;
-						break;
-					}
-				}
-			}
-			
-			if (found)
-				shift+= doPatch(hunk, lines, shift);
-		}
-		return shift;
-	}
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PreviewPatchPage.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PreviewPatchPage.java
deleted file mode 100644
index fe43b86..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PreviewPatchPage.java
+++ /dev/null
@@ -1,729 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal.patch;
-
-import java.io.*;
-import java.lang.reflect.InvocationTargetException;
-import java.text.MessageFormat;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ArrayList;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.help.WorkbenchHelp;
-
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.resource.ImageDescriptor;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.*;
-
-import org.eclipse.compare.*;
-import org.eclipse.compare.internal.CompareUIPlugin;
-import org.eclipse.compare.internal.DiffImage;
-import org.eclipse.compare.internal.ICompareContextIds;
-import org.eclipse.compare.internal.TimeoutContext;
-import org.eclipse.compare.structuremergeviewer.*;
-
-
-/**
- * Shows the parsed patch file and any mismatches
- * between files, hunks and the currently selected
- * resources.
- */
-/* package */ class PreviewPatchPage extends WizardPage {
-	
-	static final int GUESS_TIMEOUT= 1500; 	// show progress after 1.5sec of fuzz factor guessing
-	
-	/**
-	 * Used with CompareInput
-	 */
-	static class HunkInput implements ITypedElement, IStreamContentAccessor {
-		String fContent;
-		String fType;
-		
-		HunkInput(String type, String s) {
-			fType= type;
-			fContent= s;
-		}
-		public Image getImage() {
-			return null;
-		}
-		public String getName() {
-			return PatchMessages.getString("PreviewPatchPage.NoName.text"); //$NON-NLS-1$
-		}
-		public String getType() {
-			return fType;
-		}
-		public InputStream getContents() {
-			return new ByteArrayInputStream(fContent.getBytes());
-		}
-	};
-		
-	private PatchWizard fPatchWizard;
-	
-	private Tree fTree;
-	private Combo fStripPrefixSegments;
-	private CompareViewerSwitchingPane fHunkViewer;
-	private Button fIgnoreWhitespaceButton;
-	private Button fReversePatchButton;
-	private Text fFuzzField;
-	
-	private Image fNullImage;
-	private Image fAddImage;
-	private Image fDelImage;
-	private Image fErrorImage;
-	private Image fErrorAddImage;
-	private Image fErrorDelImage;
-	
-	private CompareConfiguration fCompareConfiguration;
-	
-	
-	/* package */ PreviewPatchPage(PatchWizard pw) {
-		super("PreviewPatchPage",	//$NON-NLS-1$ 
-			PatchMessages.getString("PreviewPatchPage.title"), null); //$NON-NLS-1$
-		
-		setMessage(PatchMessages.getString("PreviewPatchPage.message"));	//$NON-NLS-1$
-		
-		fPatchWizard= pw;
-		//setPageComplete(false);
-		
-		int w= 16;
-		
-		ImageDescriptor addId= CompareUIPlugin.getImageDescriptor("ovr16/add_ov.gif");	//$NON-NLS-1$
-		ImageDescriptor delId= CompareUIPlugin.getImageDescriptor("ovr16/del_ov.gif");	//$NON-NLS-1$
-
-		ImageDescriptor errId= CompareUIPlugin.getImageDescriptor("ovr16/error_ov.gif");	//$NON-NLS-1$
-		Image errIm= errId.createImage();
-		
-		fNullImage= new DiffImage(null, null, w).createImage();
-		fAddImage= new DiffImage(null, addId, w).createImage();
-		fDelImage= new DiffImage(null, delId, w).createImage();
-
-		fErrorImage= new DiffImage(errIm, null, w).createImage();
-		fErrorAddImage= new DiffImage(errIm, addId, w).createImage();
-		fErrorDelImage= new DiffImage(errIm, delId, w).createImage();
-		
-		fCompareConfiguration= new CompareConfiguration();
-		
-		fCompareConfiguration.setLeftEditable(false);
-		fCompareConfiguration.setLeftLabel(PatchMessages.getString("PreviewPatchPage.Left.title")); //$NON-NLS-1$
-		
-		fCompareConfiguration.setRightEditable(false);
-		fCompareConfiguration.setRightLabel(PatchMessages.getString("PreviewPatchPage.Right.title")); //$NON-NLS-1$
-	}
-	
-	/* (non-Javadoc)
-	 * Method declared in WizardPage
-	 */
-	public void setVisible(boolean visible) {
-		if (visible)
-			buildTree();
-		super.setVisible(visible);
-	}
-
-	Image getImage(Diff diff) {
-		if (diff.fMatches) {
-			switch (diff.getType()) {
-			case Differencer.ADDITION:
-				return fAddImage;
-			case Differencer.DELETION:
-				return fDelImage;
-			}
-			return fNullImage;
-		}
-		switch (diff.getType()) {
-		case Differencer.ADDITION:
-			return fErrorAddImage;
-		case Differencer.DELETION:
-			return fErrorDelImage;
-		}
-		return fErrorImage;
-	}
-	
-	Image getImage(Hunk hunk) {
-		if (hunk.fMatches)
-			return fNullImage;
-		return fErrorImage;
-	}
-	
-	public void createControl(Composite parent) {
-
-		Composite composite= new Composite(parent, SWT.NULL);
-		composite.setLayout(new GridLayout());
-		composite.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_FILL | GridData.HORIZONTAL_ALIGN_FILL));
-
-		WorkbenchHelp.setHelp(composite, ICompareContextIds.PATCH_PREVIEW_WIZARD_PAGE);		
-
-		setControl(composite);
-		
-		buildPatchOptionsGroup(composite);
-		
-		Splitter splitter= new Splitter(composite, SWT.VERTICAL);
-		splitter.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL
-					| GridData.VERTICAL_ALIGN_FILL | GridData.GRAB_VERTICAL));
-
-		
-		// top pane showing diffs and hunks in a check box tree 
-		fTree= new Tree(splitter, SWT.CHECK | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
-		GridData gd= new GridData();
-		gd.verticalAlignment= GridData.FILL;
-		gd.horizontalAlignment= GridData.FILL;
-		gd.grabExcessHorizontalSpace= true;
-		gd.grabExcessVerticalSpace= true;
-		fTree.setLayoutData(gd);
-				
-		// bottom pane showing hunks in compare viewer 
-		fHunkViewer= new CompareViewerSwitchingPane(splitter, SWT.BORDER | SWT.FLAT) {
-			protected Viewer getViewer(Viewer oldViewer, Object input) {
-				return CompareUI.findContentViewer(oldViewer, (ICompareInput)input, this, fCompareConfiguration);
-			}
-		};
-		gd= new GridData();
-		gd.verticalAlignment= GridData.FILL;
-		gd.horizontalAlignment= GridData.FILL;
-		gd.grabExcessHorizontalSpace= true;
-		gd.grabExcessVerticalSpace= true;
-		fHunkViewer.setLayoutData(gd);
-		
-		// register listeners
-		
-		fTree.addSelectionListener(
-			new SelectionAdapter() {
-				public void widgetSelected(SelectionEvent e) {
-					TreeItem ti= (TreeItem) e.item;
-					Object data= e.item.getData();
-					if (e.detail == SWT.CHECK) {
-						boolean checked= ti.getChecked();
-						if (data instanceof Hunk) {
-							Hunk hunk= (Hunk) data;
-							checked= checked && hunk.fMatches;
-							//hunk.setEnabled(checked);
-							ti.setChecked(checked);
-							updateGrayedState(ti);
-						} else if (data instanceof Diff) {
-							updateCheckedState(ti);
-						}
-					} else {
-						if (data instanceof Hunk)
-							PreviewPatchPage.this.fHunkViewer.setInput(createInput((Hunk)data));
-						else
-							PreviewPatchPage.this.fHunkViewer.setInput(null);
-					}
-				}
-			}
-		);
-		
-		// creating tree's content
-		buildTree();
-		Dialog.applyDialogFont(composite);		
-	}
-	
-	/**
-	 *	Create the group for setting various patch options
-	 */
-	private void buildPatchOptionsGroup(Composite parent) {
-		
-		GridLayout gl;
-		GridData gd;
-		Label l;
-				
-		final Patcher patcher= fPatchWizard.getPatcher();
-		
-		Group group= new Group(parent, SWT.NONE);
-		group.setText(PatchMessages.getString("PreviewPatchPage.PatchOptions.title")); //$NON-NLS-1$
-		gl= new GridLayout(); gl.numColumns= 4; gl.marginHeight= 0;
-		group.setLayout(gl);
-		group.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL));
-	
-		// 1st row
-		
-		Composite pair= new Composite(group, SWT.NONE);
-		gl= new GridLayout(); gl.numColumns= 2; gl.marginHeight= gl.marginWidth= 0;
-		pair.setLayout(gl);
-		gd= new GridData(GridData.HORIZONTAL_ALIGN_FILL);
-		pair.setLayoutData(gd);
-		
-			l= new Label(pair, SWT.NONE);
-			l.setText(PatchMessages.getString("PreviewPatchPage.IgnoreSegments.text")); //$NON-NLS-1$
-			gd= new GridData(GridData.VERTICAL_ALIGN_CENTER | GridData.HORIZONTAL_ALIGN_BEGINNING | GridData.GRAB_HORIZONTAL);
-			l.setLayoutData(gd);
-
-			fStripPrefixSegments= new Combo(pair, SWT.DROP_DOWN | SWT.READ_ONLY | SWT.SIMPLE);
-			int prefixCnt= patcher.getStripPrefixSegments();
-			String prefix= Integer.toString(prefixCnt);
-			fStripPrefixSegments.add(prefix);
-			fStripPrefixSegments.setText(prefix);
-			gd= new GridData(GridData.VERTICAL_ALIGN_CENTER | GridData.HORIZONTAL_ALIGN_END);
-			fStripPrefixSegments.setLayoutData(gd);
-		
-		addSpacer(group);
-		
-		fReversePatchButton= new Button(group, SWT.CHECK);
-		fReversePatchButton.setText(PatchMessages.getString("PreviewPatchPage.ReversePatch.text")); //$NON-NLS-1$
-		
-		addSpacer(group);
-		
-		// 2nd row
-		pair= new Composite(group, SWT.NONE);
-		gl= new GridLayout(); gl.numColumns= 3; gl.marginHeight= gl.marginWidth= 0;
-		pair.setLayout(gl);
-		gd= new GridData(GridData.HORIZONTAL_ALIGN_FILL);
-		pair.setLayoutData(gd);
-	
-			l= new Label(pair, SWT.NONE);
-			l.setText(PatchMessages.getString("PreviewPatchPage.FuzzFactor.text")); //$NON-NLS-1$
-			l.setToolTipText(PatchMessages.getString("PreviewPatchPage.FuzzFactor.tooltip")); //$NON-NLS-1$
-			gd= new GridData(GridData.VERTICAL_ALIGN_CENTER | GridData.HORIZONTAL_ALIGN_BEGINNING | GridData.GRAB_HORIZONTAL);
-			l.setLayoutData(gd);
-						
-			fFuzzField= new Text(pair, SWT.BORDER);
-			fFuzzField.setText("2"); //$NON-NLS-1$
-			gd= new GridData(GridData.VERTICAL_ALIGN_CENTER | GridData.HORIZONTAL_ALIGN_END); gd.widthHint= 30;
-			fFuzzField.setLayoutData(gd);
-	
-			Button b= new Button(pair, SWT.PUSH);
-			b.setText(PatchMessages.getString("PreviewPatchPage.GuessFuzz.text"));	//$NON-NLS-1$
-			b.addSelectionListener(
-				new SelectionAdapter() {
-					public void widgetSelected(SelectionEvent e) {
-						int fuzz= guessFuzzFactor(patcher);
-						if (fuzz >= 0)
-							fFuzzField.setText(Integer.toString(fuzz));
-					}
-				}
-			);
-			gd= new GridData(GridData.VERTICAL_ALIGN_CENTER);
-			b.setLayoutData(gd);
-		
-		addSpacer(group);
-		
-		fIgnoreWhitespaceButton= new Button(group, SWT.CHECK);
-		fIgnoreWhitespaceButton.setText(PatchMessages.getString("PreviewPatchPage.IgnoreWhitespace.text")); //$NON-NLS-1$
-		
-		addSpacer(group);
-				
-		// register listeners
-			
-		if (fStripPrefixSegments != null) 
-			fStripPrefixSegments.addSelectionListener(
-				new SelectionAdapter() {
-					public void widgetSelected(SelectionEvent e) {
-						if (patcher.setStripPrefixSegments(getStripPrefixSegments()))
-							updateTree();
-					}
-				}
-			);
-		fReversePatchButton.addSelectionListener(
-			new SelectionAdapter() {
-				public void widgetSelected(SelectionEvent e) {
-					if (patcher.setReversed(fReversePatchButton.getSelection()))
-						updateTree();
-				}
-			}
-		);
-		fIgnoreWhitespaceButton.addSelectionListener(
-			new SelectionAdapter() {
-				public void widgetSelected(SelectionEvent e) {
-					if (patcher.setIgnoreWhitespace(fIgnoreWhitespaceButton.getSelection()))
-						updateTree();
-				}
-			}
-		);
-		
-		fFuzzField.addModifyListener(
-			new ModifyListener() {
-				public void modifyText(ModifyEvent e) {
-					if (patcher.setFuzz(getFuzzFactor()))
-						updateTree();
-				}
-			}
-		);
-	}
-	
-	private int guessFuzzFactor(final Patcher patcher) {
-		final int strip= getStripPrefixSegments();
-		final int[] result= new int[1];
-		try {
-			TimeoutContext.run(true, GUESS_TIMEOUT, getControl().getShell(),
-				new IRunnableWithProgress() {
-					public void run(IProgressMonitor monitor) throws InterruptedException, InvocationTargetException {
-						result[0]= guess(patcher, monitor, strip);
-					}
-				}
-			);
-			return result[0];
-		} catch (InvocationTargetException ex) {
-		} catch (InterruptedException ex) {
-		}
-		return -1;
-	}
-	
-	private int guess(Patcher patcher, IProgressMonitor pm, int strip) {
-		
-		Diff[] diffs= patcher.getDiffs();
-		if (diffs == null || diffs.length <= 0)
-			return -1;
-		
-		// now collect files and determine "work"
-		IFile[] files= new IFile[diffs.length];
-		int work= 0;
-		for (int i= 0; i < diffs.length; i++) {
-			Diff diff= diffs[i];
-			if (diff == null)
-				continue;
-			if (diff.getType() != Differencer.ADDITION) {
-				IPath p= diff.fOldPath;
-				if (strip > 0 && strip < p.segmentCount())
-					p= p.removeFirstSegments(strip);
-				IFile file= existsInSelection(p);
-				if (file != null) {
-					files[i]= file;
-					work+= diff.fHunks.size();
-				}
-			}	
-		}
-		
-		// do the "work"
-		int[] fuzzRef= new int[1];
-		String format= PatchMessages.getString("PreviewPatchPage.GuessFuzzProgress.format");	//$NON-NLS-1$
-		pm.beginTask(PatchMessages.getString("PreviewPatchPage.GuessFuzzProgress.text"), work);	//$NON-NLS-1$
-		try {
-			int fuzz= 0;
-			for (int i= 0; i < diffs.length; i++) {
-				Diff d= diffs[i];
-				IFile file= files[i];
-				if (d != null && file != null) {
-					List lines= patcher.load(file, false);
-					String name= d.getPath().lastSegment();
-					Iterator iter= d.fHunks.iterator();
-					int shift= 0;
-					for (int hcnt= 1; iter.hasNext(); hcnt++) {
-						pm.subTask(MessageFormat.format(format, new String[] { name, Integer.toString(hcnt) } ));
-						Hunk h= (Hunk) iter.next();
-						shift= patcher.calculateFuzz(h, lines, shift, pm, fuzzRef);
-						int f= fuzzRef[0];
-						if (f == -1)	// cancel
-							return -1;
-						if (f > fuzz)
-							fuzz= f;
-						pm.worked(1);
-					}
-				}
-			}
-			return fuzz;
-		} finally {
-			pm.done();
-		}
-	}
-	
-	ICompareInput createInput(Hunk hunk) {
-		
-		String[] lines= hunk.fLines;
-		StringBuffer left= new StringBuffer();
-		StringBuffer right= new StringBuffer();
-		
-		for (int i= 0; i < lines.length; i++) {
-			String line= lines[i];
-			String rest= line.substring(1);
-			switch (line.charAt(0)) {
-			case ' ':
-				left.append(rest);
-				right.append(rest);
-				break;
-			case '-':
-				left.append(rest);
-				break;
-			case '+':
-				right.append(rest);
-				break;
-			}
-		}
-		
-		Diff diff= hunk.fParent;
-		IPath path= diff.getPath();
-		String type= path.getFileExtension();
-		
-		return new DiffNode(new HunkInput(type, left.toString()), new HunkInput(type, right.toString()));
-	}		
-	
-	/**
-	 * Builds a tree from list of Diffs.
-	 * As a side effect it calculates the maximum number of segments
-	 * in all paths.
-	 */
-	private void buildTree() {
-		setPageComplete(true);
-		if (fTree != null && !fTree.isDisposed()) {
-			fTree.removeAll();
-			fHunkViewer.setInput(null);
-			
-			int length= 99;
-			
-			Diff[] diffs= fPatchWizard.getPatcher().getDiffs();			
-			if (diffs != null) {
-				for (int i= 0; i < diffs.length; i++) {
-					Diff diff= diffs[i];
-					TreeItem d= new TreeItem(fTree, SWT.NULL);
-					d.setData(diff);
-					d.setImage(getImage(diff));
-					
-					if (diff.fOldPath != null)
-						length= Math.min(length, diff.fOldPath.segmentCount());
-					if (diff.fNewPath != null)
-						length= Math.min(length, diff.fNewPath.segmentCount());
-					
-					java.util.List hunks= diff.fHunks;
-					java.util.Iterator iter= hunks.iterator();
-					while (iter.hasNext()) {
-						Hunk hunk= (Hunk) iter.next();
-						TreeItem h= new TreeItem(d, SWT.NULL);
-						h.setData(hunk);
-						h.setText(hunk.getDescription());
-					}
-				}
-			}
-			if (fStripPrefixSegments != null && length != 99)
-				for (int i= 1; i < length; i++)
-					fStripPrefixSegments.add(Integer.toString(i));
-		}
-		
-		updateTree();
-	}
-	
-	private IFile existsInSelection(IPath path) {
-		IResource target= fPatchWizard.getTarget();
-		if (target instanceof IFile) {	// special case
-			IFile file= (IFile) target;
-			if (matches(file.getFullPath(), path))
-				return file;
-		} else if (target instanceof IContainer) {
-			IContainer c= (IContainer) target;
-			if (c.exists(path))
-				return c.getFile(path);
-		}
-		return null;
-	}
-	
-	/**
-	 * Returns true if path completely matches the end of fullpath
-	 */
-	private boolean matches(IPath fullpath, IPath path) {
-		
-		for (IPath p= fullpath; path.segmentCount() <= p.segmentCount();
-												p= p.removeFirstSegments(1)) {
-			if (p.equals(path))
-				return true;
-		}
-		return false;
-	}
-	
-	/**
-	 * Updates label and checked state of tree items.
-	 */
-	private void updateTree() {
-		if (fTree == null || fTree.isDisposed())
-			return;
-		int strip= getStripPrefixSegments();
-		TreeItem[] children= fTree.getItems();
-		for (int i= 0; i < children.length; i++) {
-			TreeItem item= children[i];
-			Diff diff= (Diff) item.getData();
-			diff.fMatches= false;
-			String error= null;
-			
-			boolean create= false;	
-			IFile file= null;
-			if (diff.getType() == Differencer.ADDITION) {
-				IPath p= diff.fNewPath;
-				if (strip > 0 && strip < p.segmentCount())
-					p= p.removeFirstSegments(strip);
-				file= existsInSelection(p);
-				if (file == null) {
-					diff.fMatches= true;
-				} else {
-					// file already exists
-					error= PatchMessages.getString("PreviewPatchPage.FileExists.error"); //$NON-NLS-1$
-				}
-				create= true;
-			} else {
-				IPath p= diff.fOldPath;
-				if (strip > 0 && strip < p.segmentCount())
-					p= p.removeFirstSegments(strip);
-				file= existsInSelection(p);
-				diff.fMatches= false;
-				if (file != null) {
-					if (file.isReadOnly()) {
-						// file is readonly
-						error= PatchMessages.getString("PreviewPatchPage.FileIsReadOnly.error"); //$NON-NLS-1$
-						file= null;
-					} else {
-						diff.fMatches= true;
-					}
-				} else {
-					// file doesn't exist
-					error= PatchMessages.getString("PreviewPatchPage.FileDoesNotExist.error"); //$NON-NLS-1$
-				}
-			}
-			
-			ArrayList failedHunks= new ArrayList();
-			Patcher patcher= fPatchWizard.getPatcher();
-			patcher.setFuzz(getFuzzFactor());
-			patcher.apply(diff, file, create, failedHunks);
-
-			if (failedHunks.size() > 0)
-				diff.fRejected= fPatchWizard.getPatcher().getRejected(failedHunks);
-			
-			int checkedSubs= 0;	// counts checked hunk items
-			TreeItem[] hunkItems= item.getItems();
-			for (int h= 0; h < hunkItems.length; h++) {
-				Hunk hunk= (Hunk) hunkItems[h].getData();
-				boolean failed= failedHunks.contains(hunk);
-				String hunkError= null;
-				if (failed)
-					hunkError= PatchMessages.getString("PreviewPatchPage.NoMatch.error"); //$NON-NLS-1$
-
-				boolean check= !failed;
-				hunkItems[h].setChecked(check);
-				if (check)
-					checkedSubs++;
-
-				String hunkLabel= hunk.getDescription();
-				if (hunkError != null)
-					hunkLabel+= "   " + hunkError; //$NON-NLS-1$
-				hunkItems[h].setText(hunkLabel);
-				hunkItems[h].setImage(getImage(hunk));
-			}
-			
-			String label= diff.getDescription(strip);
-			if (error != null)
-				label+= "    " + error; //$NON-NLS-1$
-			item.setText(label);
-			item.setImage(getImage(diff));
-			item.setChecked(checkedSubs > 0);
-			boolean gray= (checkedSubs > 0 &&  checkedSubs < hunkItems.length);
-			item.setGrayed(gray);
-			item.setExpanded(gray);
-		}
-		setPageComplete(updateModel());
-	}
-	
-	/**
-	 * Updates the gray state of the given diff and the checked state of its children.
-	 */
-	private void updateCheckedState(TreeItem diffItem) {
-		boolean checked= diffItem.getChecked();
-		// check whether we can enable all hunks
-		TreeItem[] hunks= diffItem.getItems();
-		int checkedCount= 0;
-		for (int i= 0; i < hunks.length; i++) {
-			Hunk hunk= (Hunk) hunks[i].getData();
-			if (checked) {
-				if (hunk.fMatches) {
-					hunks[i].setChecked(true);
-					checkedCount++;
-				}
-			} else {
-				hunks[i].setChecked(false);
-			}
-		}
-		diffItem.setGrayed(checkedCount > 0 && checkedCount < hunks.length);
-		diffItem.setChecked(checkedCount > 0);
-		
-		setPageComplete(updateModel());
-	}
-	
-	/**
-	 * Updates the gray state of the given items parent.
-	 */
-	private void updateGrayedState(TreeItem hunk) {
-		TreeItem diff= hunk.getParentItem();
-		TreeItem[] hunks= diff.getItems();
-		int checked= 0;
-		for (int i= 0; i < hunks.length; i++)
-			if (hunks[i].getChecked())
-				checked++;
-		diff.setChecked(checked > 0);
-		diff.setGrayed(checked > 0 && checked < hunks.length);
-		
-		setPageComplete(updateModel());
-	}
-	
-	private void addSpacer(Composite parent) {
-		Label label= new Label(parent, SWT.NONE);
-		GridData gd= new GridData(GridData.FILL_HORIZONTAL);
-		gd.widthHint= 20;
-		label.setLayoutData(gd);
-	}
-	
-	private int getStripPrefixSegments() {
-		int stripPrefixSegments= 0;
-		if (fStripPrefixSegments != null) {
-			String s= fStripPrefixSegments.getText();
-			try {
-				stripPrefixSegments= Integer.parseInt(s);
-			} catch(NumberFormatException ex) {
-			}
-		}
-		return stripPrefixSegments;
-	}
-	
-	private int getFuzzFactor() {
-		int fuzzFactor= 0;
-		if (fFuzzField != null) {
-			String s= fFuzzField.getText();
-			try {
-				fuzzFactor= Integer.parseInt(s);
-			} catch(NumberFormatException ex) {
-			}
-		}
-		return fuzzFactor;
-	}
-	
-	public boolean updateModel() {
-		boolean atLeastOneIsEnabled= false;
-		if (fTree != null && !fTree.isDisposed()) {
-			TreeItem [] diffItems= fTree.getItems();
-			for (int i= 0; i < diffItems.length; i++) {
-				TreeItem diffItem= diffItems[i];
-				Object data= diffItem.getData();
-				if (data instanceof Diff) {
-					Diff diff= (Diff) data;
-					boolean b= diffItem.getChecked();
-					diff.setEnabled(b);
-					if (b) {
-						TreeItem [] hunkItems= diffItem.getItems();
-						for (int j= 0; j < hunkItems.length; j++) {
-							TreeItem hunkItem= hunkItems[j];
-							data= hunkItem.getData();
-							if (data instanceof Hunk) {
-								Hunk hunk= (Hunk) data;
-								b= hunkItem.getChecked();
-								hunk.setEnabled(b);
-								if (b) {
-									atLeastOneIsEnabled= true;
-								}
-							}
-						}
-					}
-				}
-			}
-		}
-		return atLeastOneIsEnabled;
-	}
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/package.html b/bundles/org.eclipse.compare/compare/org/eclipse/compare/package.html
deleted file mode 100644
index 1963dd4..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/package.html
+++ /dev/null
@@ -1,99 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="Author" content="IBM">
-   <meta name="GENERATOR" content="Mozilla/4.75 [en] (WinNT; U) [Netscape]">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-Provides support for performing structural and textual
-compare operations on arbitrary data and displaying the results.
-<h2>
-Package Specification</h2>
-
-The class <b>CompareUI</b> defines the entry point to initiate a configurable
-compare operation on arbitrary resources. The result of the compare is
-opened into a compare editor where the details can be browsed and edited
-in dynamically selected structure and content viewers.
-<p>
-
-A compare operation must be implemented as a subclass of <b>CompareEditorInput</b>.
-A <b>CompareEditorInput</b> runs a (potentially lengthy) compare operation
-under progress monitor control, creates a UI for drilling-down into the
-compare results, tracks the dirty state of the result in case of merge,
-and saves any changes that occured during a merge.
-<p>
-
-The <b>NavigationAction</b> is used to navigate (step) through the individual
-differences of a <b>CompareEditorInput</b>.
-<p>
-
-An instance of <b>CompareConfiguration</b> configures various UI aspects
-of compare/merge viewers like title labels and images, or whether a side
-of a merge viewer is editable. It is passed to the <b>CompareEditorInput</b>
-on creation.
-<p>
-
-When implementing a hierarchical compare operation as a subclass of
-<b>CompareEditorInput</b> clients have to provide a tree of objects where each
-node implements the interface
-<b>org.eclipse.compare.structuremergeviewer.IStructureComparator</b>.
-This interface is used by the hierarchical differencing engine
-(<b>org.eclipse.compare.structuremergeviewer.Differencer</b>) to walk the tree.
-<br>
-In addition every leaf of the tree must implement the <b>IStreamContentAccessor</b>
-interface in order to give the differencing engine access to its stream content.
-<p>
-
-The abstract class <b>BufferedContent</b> provides a default implementation
-for the <b>IStreamContentAccessor</b> and <b>IContentChangeNotifier</b> interfaces.
-Its subclass <b>ResourceNode</b> adds an implementation for the
-<b>IStructureComparator</b> and <b>ITypedElement</b> interfaces
-based on Eclipse workbench resources (org.eclipse.core.resources.IResource). 
-It can be used without modification as the input to the differencing engine.
-<p>
-
-The <b>ZipFileStructureCreator</b> is an implementation of the
-<b>org.eclipse.compare.structuremergeviewer.IStructureCreator</b> interface
-and makes the contents of a zip archive available as a
-hierarchical structure of <b>IStructureComparator</b>s which can be easily compared
-by the differencing engine (<b>org.eclipse.compare.structuremergeviewer.Differencer</b>).
-It is a good example for how to make structured files available to the hierarchical 
-compare functionality of the Compare plugin.
-<p>
-
-The <b>EditionSelectionDialog</b> is a simple selection dialog where
-one input element can be compared against a list of historic variants (<i>editions</i>)
-of the same input element. The dialog can be used to implement functions
-like <i>"Replace with Version"</i> or <i>"Replace with Edition"</i> on workbench resources.
-<p>
-
-In addition it is possible to specify a subsection of the input element
-(e.g. a method in a Java source file) by means of a <i>path</i>. In this
-case the dialog compares only the subsection (as specified by the path)
-with the corresponding subsection in the list of editions. This functionality
-can be used to implement <i>"Replace with Method Edition"</i> for the Java
-language.
-<p>
-
-The <b>EditionSelectionDialog</b> requires that the editions implement
-the <b>IStreamContentAccessor</b> and <b>IModificationDate</b> interfaces.
-The <b>HistoryItem</b> is a convenience class that implements these interfaces
-for <b>IFileState</b> objects.
-<p>
-
-
-The <b>CompareViewerPane</b> is a convenience class which provides
-a label and local toolbar for a compare viewer (or any other subclass of a 
-JFace <b>Viewer</b>).
-<br>
-Its abstract subclass <b>CompareViewerSwitchingPane</b> supports <i>dynamic
-viewer switching</i>, that is the viewer installed in the pane is dynamically 
-determined by the pane's input object.
-Both classes are useful if you want to use compare viewers outside the context of
-a compare editor, for example in a dialog or wizard.
-
-
-</body>
-</html>
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/rangedifferencer/DifferencesIterator.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/rangedifferencer/DifferencesIterator.java
deleted file mode 100644
index bab4342..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/rangedifferencer/DifferencesIterator.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.rangedifferencer;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * A custom iterator to iterate over a List of <code>RangeDifferences</code>.
- * It is used internally by the <code>RangeDifferencer</code>.
- */
-/* package */ class DifferencesIterator {
-
-	List fRange;
-	int fIndex;
-	RangeDifference[] fArray;	
-	RangeDifference fDifference;
-	
-	/**
-	 * Creates a differences iterator on an array of <code>RangeDifference</code>s.
-	 */
-	DifferencesIterator(RangeDifference[] differenceRanges) {
-		
-		fArray= differenceRanges;
-		fIndex= 0;
-		fRange= new ArrayList();
-		if (fIndex < fArray.length)
-			fDifference= fArray[fIndex++];
-		else
-			fDifference= null;
-	}
-
-	/**
-	  * Returns the number of RangeDifferences
-	  */
-	int getCount() {
-		return fRange.size();
-	}
-
-	/**
-	 * Appends the edit to its list and moves to the next <code>RangeDifference</code>.
-	 */
-	void next() {
-		fRange.add(fDifference);
-		if (fDifference != null) {
-			if (fIndex < fArray.length)
-				fDifference= fArray[fIndex++];
-			else
-				fDifference= null;
-		}
-	}
-
-	/**
-	 * Difference iterators are used in pairs.
-	 * This method returns the other iterator.
-	 */
-	DifferencesIterator other(DifferencesIterator right, DifferencesIterator left) {
-		if (this == right)
-			return left;
-		return right;
-	}
-
-	/**
-	  * Removes all <code>RangeDifference</code>s
-	  */
-	void removeAll() {
-		fRange.clear();
-	}
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/rangedifferencer/IRangeComparator.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/rangedifferencer/IRangeComparator.java
deleted file mode 100644
index e4f87ad..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/rangedifferencer/IRangeComparator.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.rangedifferencer;
-
-/**
- * For breaking an object to compare into a sequence of comparable entities.
- * <p>
- * It is used by <code>RangeDifferencer</code> to find longest sequences of
- * matching and non-matching ranges.
- * <p>
- * For example, to compare two text documents and find longest common sequences
- * of matching and non-matching lines, the implementation must break the document
- * into lines. <code>getRangeCount</code> would return the number of lines in the 
- * document, and <code>rangesEqual</code> would compare a specified line given 
- * with one in another <code>IRangeComparator</code>.
- * </p>
- * <p>
- * Clients should implement this interface; there is no standard implementation.
- * </p>
- */
-public interface IRangeComparator {
-
-	/**
-	 * Returns the number of comparable entities.
-	 *
-	 * @return the number of comparable entities 
-	 */
-	int getRangeCount();
-
-	/**
-	 * Returns whether the comparable entity given by the first index
-	 * matches an entity specified by the other <code>IRangeComparator</code> and index.
-	 *
-	 * @param thisIndex the index of the comparable entity within this <code>IRangeComparator</code>
-	 * @param other the IRangeComparator to compare this with
-	 * @param otherIndex the index of the comparable entity within the other <code>IRangeComparator</code>
-	 * @return <code>true</code> if the comparable entities are equal
-	 */
-	boolean rangesEqual(int thisIndex, IRangeComparator other, int otherIndex);
-
-	/**
-	 * Returns whether a comparison should be skipped because it would be too costly (or lengthy).
-	 * 
-	 * @param length a number on which to base the decision whether to return
-	 * 	<code>true</code> or <code>false</code>
-	 * @param maxLength another number on which to base the decision whether to return
-	 *	<code>true</code> or <code>false</code>
-	 * @param other the other <code>IRangeComparator</code> to compare with
-	 * @return <code>true</code> to avoid a too lengthy range comparison
-	 */
-	boolean skipRangeComparison(int length, int maxLength, IRangeComparator other);
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/rangedifferencer/LinkedRangeDifference.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/rangedifferencer/LinkedRangeDifference.java
deleted file mode 100644
index 468888f..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/rangedifferencer/LinkedRangeDifference.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.rangedifferencer;
-
-/* package */ class LinkedRangeDifference extends RangeDifference {
-
-	static final int INSERT= 0;
-	static final int DELETE= 1;
-
-	LinkedRangeDifference fNext;
-
-	/**
-	 * Creates a LinkedRangeDifference an initializes it to the error state
-	 */
-	LinkedRangeDifference() {
-		super(ERROR);
-		fNext= null;
-	}
-
-	/**
-	 * Constructs and links a LinkeRangeDifference to another LinkedRangeDifference
-	 */
-	LinkedRangeDifference(LinkedRangeDifference next, int operation) {
-		super(operation);
-		fNext= next;
-	}
-
-	/**
-	 * Follows the next link
-	 */
-	LinkedRangeDifference getNext() {
-		return fNext;
-	}
-
-	boolean isDelete() {
-		return kind() == DELETE;
-	}
-
-	boolean isInsert() {
-		return kind() == INSERT;
-	}
-
-	/**
-	 * Sets the next link of this LinkedRangeDifference
-	 */
-	void setNext(LinkedRangeDifference next) {
-		fNext= next;
-	}
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/rangedifferencer/RangeDifference.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/rangedifferencer/RangeDifference.java
deleted file mode 100644
index 296cb96..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/rangedifferencer/RangeDifference.java
+++ /dev/null
@@ -1,208 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.rangedifferencer;
-
-/**
- * Description of a change between two or three ranges of comparable entities.
- * <p>
- * <code>RangeDifference</code> objects are the elements of a compare result returned from
- * the <code>RangeDifferencer</code> <code>find* </code> methods.
- * Clients use these objects as they are returned from the differencer.
- * This class is not intended to be instantiated or subclassed.
- * <p>
- * Note: A range in the <code>RangeDifference</code> object is given as a start index
- * and length in terms of comparable entities. However, these entity indices and counts
- * are not necessarily character positions. For example, if an entity represents a line
- * in a document, the start index would be a line number and the count would be in lines.
- * </p>
- *
- * @see RangeDifferencer
- */
-public class RangeDifference {
-
-	/** Two-way change constant indicating no change. */
-	public final static int NOCHANGE= 0;
-	/** Two-way change constant indicating two-way change (same as <code>RIGHT</code>) */
-	public final static int CHANGE= 2;
-
-	/** Three-way change constant indicating a change in both right and left. */
-	public final static int CONFLICT= 1;
-	/** Three-way change constant indicating a change in right. */
-	public final static int RIGHT= 2;
-	/** Three-way change constant indicating a change in left. */
-	public final static int LEFT= 3;
-	/**
-	 * Three-way change constant indicating the same change in both right and left,
-	 * that is only the ancestor is different.
-	 */
-	public final static int ANCESTOR= 4;
-	
-	/** Constant indicating an unknown change kind. */
-	public final static int ERROR= 5;
-
-	/** the kind of change: NOCHANGE, CHANGE, LEFT, RIGHT, ANCESTOR, CONFLICT, ERROR */
-	int fKind;
-
-	int fLeftStart;
-	int fLeftLength;
-	int fRightStart;
-	int fRightLength;
-	int lAncestorStart;
-	int lAncestorLength;
-	
-	/**
-	 * Creates a new range difference with the given change kind.
-	 *
-	 * @param changeKind the kind of change
-	 */
-	/* package */ RangeDifference(int changeKind) {
-		fKind= changeKind;
-	}
-
-	/**
-	 * Creates a new <code>RangeDifference</code> with the given change kind
-	 * and left and right ranges.
-	 *
-	 * @param changeKind the kind of change
-	 * @param rightStart start index of entity on right side
-	 * @param rightLength number of entities on right side
-	 * @param leftStart start index of entity on left side
-	 * @param leftLength number of entities on left side
-	 */
-	/* package */ RangeDifference(int kind, int rightStart, int rightLength, int leftStart, int leftLength) {
-		fKind= kind;
-		fRightStart= rightStart;
-		fRightLength= rightLength;
-		fLeftStart= leftStart;
-		fLeftLength= leftLength;
-	}
-
-	/**
-	 * Creates a new <code>RangeDifference</code> with the given change kind
-	 * and left, right, and ancestor ranges.
-	 *
-	 * @param changeKind the kind of change
-	 * @param rightStart start index of entity on right side
-	 * @param rightLength number of entities on right side
-	 * @param leftStart start index of entity on left side
-	 * @param leftLength number of entities on left side
-	 * @param ancestorStart start index of entity on ancestor side
-	 * @param ancestorLength number of entities on ancestor side
-	 */
-	/* package */ RangeDifference(int kind, int rightStart, int rightLength, int leftStart, int leftLength,
-									int ancestorStart, int ancestorLength) {
-		this(kind, rightStart, rightLength, leftStart, leftLength);
-		lAncestorStart= ancestorStart;
-		lAncestorLength= ancestorLength;
-	}
-
-	/**
-	 * Returns the kind of difference.
-	 *
-	 * @return the kind of difference, one of
-	 * <code>NOCHANGE</code>, <code>CHANGE</code>, <code>LEFT</code>, <code>RIGHT</code>,
-	 * <code>ANCESTOR</code>, <code>CONFLICT</code>, <code>ERROR</code>
-	 */
-	public int kind() {
-		return fKind;
-	}
-
-	/**
-	 * Returns the start index of the entity range on the ancestor side.
-	 *
-	 * @return the start index of the entity range on the ancestor side
-	 */
-	public int ancestorStart() {
-		return lAncestorStart;
-	}
-
-	/**
-	 * Returns the number of entities on the ancestor side.
-	 *
-	 * @return the number of entities on the ancestor side
-	 */
-	public int ancestorLength() {
-		return lAncestorLength;
-	}
-
-	/**
-	 * Returns the end index of the entity range on the ancestor side.
-	 *
-	 * @return the end index of the entity range on the ancestor side
-	 */
-	public int ancestorEnd() {
-		return lAncestorStart + lAncestorLength;
-	}
-
-	/**
-	 * Returns the start index of the entity range on the right side.
-	 *
-	 * @return the start index of the entity range on the right side
-	 */
-	public int rightStart() {
-		return fRightStart;
-	}
-
-	/**
-	 * Returns the number of entities on the right side.
-	 *
-	 * @return the number of entities on the right side
-	 */
-	public int rightLength() {
-		return fRightLength;
-	}
-
-	/**
-	 * Returns the end index of the entity range on the right side.
-	 *
-	 * @return the end index of the entity range on the right side
-	 */
-	public int rightEnd() {
-		return fRightStart + fRightLength;
-	}
-
-	/**
-	 * Returns the start index of the entity range on the left side.
-	 *
-	 * @return the start index of the entity range on the left side
-	 */
-	public int leftStart() {
-		return fLeftStart;
-	}
-
-	/**
-	 * Returns the number of entities on the left side.
-	 *
-	 * @return the number of entities on the left side
-	 */
-	public int leftLength() {
-		return fLeftLength;
-	}
-
-	/**
-	 * Returns the end index of the entity range on the left side.
-	 *
-	 * @return the end index of the entity range on the left side
-	 */
-	public int leftEnd() {
-		return fLeftStart + fLeftLength;
-	}
-
-	/**
-	 * Returns the maximum number of entities in the left, right, and ancestor sides of this range.
-	 *
-	 * @return the maximum number of entities in the left, right, and ancestor sides of this range
-	 */
-	public int maxLength() {
-		return Math.max(fRightLength, Math.max(fLeftLength, lAncestorLength));
-	}
-}
-
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/rangedifferencer/RangeDifferencer.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/rangedifferencer/RangeDifferencer.java
deleted file mode 100644
index 9d5eb18..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/rangedifferencer/RangeDifferencer.java
+++ /dev/null
@@ -1,542 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.rangedifferencer;
-
-import java.util.*;
-
-import org.eclipse.jface.util.Assert;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-
-/**
- * A <code>RangeDifferencer</code> finds the differences between two or three <code>IRangeComparator</code>s.
- * <p>
- * To use the differencer, clients provide an <code>IRangeComparator</code>
- * that breaks their input data into a sequence of comparable entities. The differencer
- * returns the differences among these sequences as an array of <code>RangeDifference</code> objects
- * (<code>findDifferences</code> methods).
- * Every <code>RangeDifference</code> represents a single kind of difference
- * and the corresponding ranges of the underlying comparable entities in the
- * left, right, and optionally ancestor sides.
- * <p>
- * Alternatively, the <code>findRanges</code> methods not only return objects for
- * the differing ranges but for non-differing ranges too.
- * <p>
- * The algorithm used is an objectified version of one described in:
- * <it>A File Comparison Program,</it> by Webb Miller and Eugene W. Myers, 
- * Software Practice and Experience, Vol. 15, Nov. 1985.
- *
- * @see IRangeComparator
- * @see RangeDifference
- */
-public final class RangeDifferencer {
-	
-	private static final RangeDifference[] EMPTY_RESULT= new RangeDifference[0];
-	
-	/* (non Javadoc)
-	 * Non instantiatiable!
-	 */
-	private RangeDifferencer() { 
-	}
-	
-	/**
-	 * Finds the differences between two <code>IRangeComparator</code>s.
-	 * The differences are returned as an array of <code>RangeDifference</code>s.
-	 * If no differences are detected an empty array is returned.
-	 * 
-	 * @param left the left range comparator
-	 * @param right the right range comparator
-	 * @return an array of range differences, or an empty array if no differences were found
-	 */
-	public static RangeDifference[] findDifferences(IRangeComparator left, IRangeComparator right) {
-		return findDifferences((IProgressMonitor)null, left, right);
-	}
-	
-	/**
-	 * Finds the differences between two <code>IRangeComparator</code>s.
-	 * The differences are returned as an array of <code>RangeDifference</code>s.
-	 * If no differences are detected an empty array is returned.
-	 * 
-	 * @param pm if not <code>null</code> used to report progress
-	 * @param left the left range comparator
-	 * @param right the right range comparator
-	 * @return an array of range differences, or an empty array if no differences were found
-	 * @since 2.0
-	 */
-	public static RangeDifference[] findDifferences(IProgressMonitor pm, IRangeComparator left, IRangeComparator right) {
-
-		// assert that both IRangeComparators are of the same class
-		Assert.isTrue(right.getClass().equals(left.getClass()));
-
-		int rightSize= right.getRangeCount();
-		int leftSize= left.getRangeCount();
-		//
-		// Differences matrix:
-		// only the last d of each diagonal is stored, i.e., lastDiagonal[k] = row of d    
-		//
-		int diagLen= 2 * Math.max(rightSize, leftSize); // bound on the size of edit script
-		int maxDiagonal= diagLen;
-		int lastDiagonal[]= new int[diagLen + 1]; // the row containing the last d
-		// on diagonal k (lastDiagonal[k] = row)
-		int origin= diagLen / 2; // origin of diagonal 0
-
-		// script corresponding to d[k] 
-		LinkedRangeDifference script[]= new LinkedRangeDifference[diagLen + 1];
-		int row, col;
-
-		// find common prefix
-		for (row= 0; row < rightSize && row < leftSize && rangesEqual(right, row, left, row) == true; ++row)
-			;
-
-		lastDiagonal[origin]= row;
-		script[origin]= null;
-		int lower= (row == rightSize) ? origin + 1 : origin - 1;
-		int upper= (row == leftSize) ? origin - 1 : origin + 1;
-
-		if (lower > upper)
-			return EMPTY_RESULT;
-			
-		//System.out.println("findDifferences: " + maxDiagonal + " " + lower + " " + upper);
-		
-		// for each value of the edit distance
-		for (int d= 1; d <= maxDiagonal; ++d) { // d is the current edit distance
-			
-			if (pm != null)
-				pm.worked(1);
-
-			if (right.skipRangeComparison(d, maxDiagonal, left))
-				return EMPTY_RESULT; // should be something we already found
-
-			// for each relevant diagonal (-d, -d+2 ..., d-2, d)
-			for (int k= lower; k <= upper; k += 2) { // k is the current diagonal
-				LinkedRangeDifference edit;
-
-				if (pm != null && pm.isCanceled())
-					return EMPTY_RESULT;
-
-				if (k == origin - d || k != origin + d && lastDiagonal[k + 1] >= lastDiagonal[k - 1]) {
-					//
-					// move down
-					//
-					row= lastDiagonal[k + 1] + 1;
-					edit= new LinkedRangeDifference(script[k + 1], LinkedRangeDifference.DELETE);
-				} else {
-					//
-					// move right
-					//
-					row= lastDiagonal[k - 1];
-					edit= new LinkedRangeDifference(script[k - 1], LinkedRangeDifference.INSERT);
-				}
-				col= row + k - origin;
-				edit.fRightStart= row;
-				edit.fLeftStart= col;
-				Assert.isTrue(k >= 0 && k <= maxDiagonal);
-				script[k]= edit;
-
-				// slide down the diagonal as far as possible 
-				while (row < rightSize && col < leftSize && rangesEqual(right, row, left, col) == true) {
-					++row;
-					++col;
-				}
-
-				Assert.isTrue(k >= 0 && k <= maxDiagonal); // Unreasonable value for diagonal index
-				lastDiagonal[k]= row;
-
-				if (row == rightSize && col == leftSize) {
-					//showScript(script[k], right, left);
-					return createDifferencesRanges(script[k]);
-				}
-				if (row == rightSize)
-					lower= k + 2;
-				if (col == leftSize)
-					upper= k - 2;
-			}
-			--lower;
-			++upper;
-		}
-		// too many differences
-		Assert.isTrue(false);
-		return null;
-	}
-
-	/**
-	 * Finds the differences among three <code>IRangeComparator</code>s.
-	 * The differences are returned as a list of <code>RangeDifference</code>s.
-	 * If no differences are detected an empty list is returned.
-	 * If the ancestor range comparator is <code>null</code>, a two-way
-	 * comparison is performed.
-	 * 
-	 * @param ancestor the ancestor range comparator or <code>null</code>
-	 * @param left the left range comparator
-	 * @param right the right range comparator
-	 * @return an array of range differences, or an empty array if no differences were found
-	 */
-	public static RangeDifference[] findDifferences(IRangeComparator ancestor, IRangeComparator left, IRangeComparator right) {
-		return findDifferences(null, ancestor, left, right);
-	}
-	
-	/**
-	 * Finds the differences among three <code>IRangeComparator</code>s.
-	 * The differences are returned as a list of <code>RangeDifference</code>s.
-	 * If no differences are detected an empty list is returned.
-	 * If the ancestor range comparator is <code>null</code>, a two-way
-	 * comparison is performed.
-	 * 
-	 * @param pm if not <code>null</code> used to report progress
-	 * @param ancestor the ancestor range comparator or <code>null</code>
-	 * @param left the left range comparator
-	 * @param right the right range comparator
-	 * @return an array of range differences, or an empty array if no differences were found
-	 * @since 2.0
-	 */
-	public static RangeDifference[] findDifferences(IProgressMonitor pm, IRangeComparator ancestor, IRangeComparator left, IRangeComparator right) {
-
-		if (ancestor == null)
-			return findDifferences(pm, left, right);
-
-		RangeDifference[] leftAncestorScript= null;
-		RangeDifference[] rightAncestorScript= findDifferences(pm, ancestor, right);
-		if (rightAncestorScript != null)
-			leftAncestorScript= findDifferences(pm, ancestor, left);
-		if (rightAncestorScript == null || leftAncestorScript == null)
-			return null;
-
-		DifferencesIterator myIter= new DifferencesIterator(rightAncestorScript);
-		DifferencesIterator yourIter= new DifferencesIterator(leftAncestorScript);
-
-		List diff3= new ArrayList();
-		diff3.add(new RangeDifference(RangeDifference.ERROR)); // add a sentinel
-
-		int changeRangeStart= 0;
-		int changeRangeEnd= 0;
-		//
-		// Combine the two two-way edit scripts into one
-		//
-		while (myIter.fDifference != null || yourIter.fDifference != null) {
-
-			DifferencesIterator startThread;
-			myIter.removeAll();
-			yourIter.removeAll();
-			//
-			// take the next diff that is closer to the start
-			//
-			if (myIter.fDifference == null)
-				startThread= yourIter;
-			else if (yourIter.fDifference == null)
-				startThread= myIter;
-			else { // not at end of both scripts take the lowest range
-				if (myIter.fDifference.fLeftStart <= yourIter.fDifference.fLeftStart) // 2 -> common (Ancestor) change range
-					startThread= myIter;
-				else
-					startThread= yourIter;
-			}
-			changeRangeStart= startThread.fDifference.fLeftStart;
-			changeRangeEnd= startThread.fDifference.leftEnd();
-
-			startThread.next();
-			//
-			// check for overlapping changes with other thread
-			// merge overlapping changes with this range
-			//
-			DifferencesIterator other= startThread.other(myIter, yourIter);
-			while (other.fDifference != null && other.fDifference.fLeftStart <= changeRangeEnd) {
-				int newMax= other.fDifference.leftEnd();
-				other.next();
-				if (newMax >= changeRangeEnd) {
-					changeRangeEnd= newMax;
-					other= other.other(myIter, yourIter);
-				}
-			}
-			diff3.add(createRangeDifference3(myIter, yourIter, diff3, right, left, changeRangeStart, changeRangeEnd));
-		}
-
-		// remove sentinel
-		diff3.remove(0);
-		return (RangeDifference[]) diff3.toArray(EMPTY_RESULT);
-	}
-
-	/**
-	 * Finds the differences among two <code>IRangeComparator</code>s.
-	 * In contrast to <code>findDifferences</code>, the result
-	 * contains <code>RangeDifference</code> elements for non-differing ranges too.
-	 * 
-	 * @param left the left range comparator
-	 * @param right the right range comparator
-	 * @return an array of range differences
-	 */
-	public static RangeDifference[] findRanges(IRangeComparator left, IRangeComparator right) {
-		return findRanges((IProgressMonitor)null, left, right);
-	}
-	
-	/**
-	 * Finds the differences among two <code>IRangeComparator</code>s.
-	 * In contrast to <code>findDifferences</code>, the result
-	 * contains <code>RangeDifference</code> elements for non-differing ranges too.
-	 * 
-	 * @param pm if not <code>null</code> used to report progress
-	 * @param left the left range comparator
-	 * @param right the right range comparator
-	 * @return an array of range differences
-	 * @since 2.0
-	 */
-	public static RangeDifference[] findRanges(IProgressMonitor pm, IRangeComparator left, IRangeComparator right) {
-		RangeDifference[] in= findDifferences(pm, left, right);
-		List out= new ArrayList();
-
-		RangeDifference rd;
-
-		int mstart= 0;
-		int ystart= 0;
-
-		for (int i= 0; i < in.length; i++) {
-			RangeDifference es= in[i];
-
-			rd= new RangeDifference(RangeDifference.NOCHANGE, mstart, es.rightStart() - mstart, ystart, es.leftStart() - ystart);
-			if (rd.maxLength() != 0)
-				out.add(rd);
-
-			out.add(es);
-
-			mstart= es.rightEnd();
-			ystart= es.leftEnd();
-		}
-		rd= new RangeDifference(RangeDifference.NOCHANGE, mstart, right.getRangeCount() - mstart, ystart, left.getRangeCount() - ystart);
-		if (rd.maxLength() > 0)
-			out.add(rd);
-
-		return (RangeDifference[]) out.toArray(EMPTY_RESULT);
-	}
-
-	/**
-	 * Finds the differences among three <code>IRangeComparator</code>s.
-	 * In contrast to <code>findDifferences</code>, the result
-	 * contains <code>RangeDifference</code> elements for non-differing ranges too.
-	 * If the ancestor range comparator is <code>null</code>, a two-way
-	 * comparison is performed.
-	 * 
-	 * @param pm if not <code>null</code> used to report progress
-	 * @param ancestor the ancestor range comparator or <code>null</code>
-	 * @param left the left range comparator
-	 * @param right the right range comparator
-	 * @return an array of range differences
-	 */
-	public static RangeDifference[] findRanges(IRangeComparator ancestor, IRangeComparator left, IRangeComparator right) {
-		return findRanges(null, ancestor, left, right);
-	}
-	
-	/**
-	 * Finds the differences among three <code>IRangeComparator</code>s.
-	 * In contrast to <code>findDifferences</code>, the result
-	 * contains <code>RangeDifference</code> elements for non-differing ranges too.
-	 * If the ancestor range comparator is <code>null</code>, a two-way
-	 * comparison is performed.
-	 * 
-	 * @param pm if not <code>null</code> used to report progress
-	 * @param ancestor the ancestor range comparator or <code>null</code>
-	 * @param left the left range comparator
-	 * @param right the right range comparator
-	 * @return an array of range differences
-	 * @since 2.0
-	 */
-	public static RangeDifference[] findRanges(IProgressMonitor pm, IRangeComparator ancestor, IRangeComparator left, IRangeComparator right) {
-
-		if (ancestor == null)
-			return findRanges(pm, left, right);
-
-		RangeDifference[] in= findDifferences(pm, ancestor, left, right);
-		List out= new ArrayList();
-
-		RangeDifference rd;
-
-		int mstart= 0;
-		int ystart= 0;
-		int astart= 0;
-
-		for (int i= 0; i < in.length; i++) {
-			RangeDifference es= (RangeDifference) in[i];
-
-			rd= new RangeDifference(RangeDifference.NOCHANGE, mstart, es.rightStart() - mstart, ystart, es.leftStart() - ystart, astart, es.ancestorStart() - astart);
-			if (rd.maxLength() > 0)
-				out.add(rd);
-
-			out.add(es);
-
-			mstart= es.rightEnd();
-			ystart= es.leftEnd();
-			astart= es.ancestorEnd();
-		}
-		rd= new RangeDifference(RangeDifference.NOCHANGE, mstart, right.getRangeCount() - mstart, ystart, left.getRangeCount() - ystart, astart, ancestor.getRangeCount() - astart);
-		if (rd.maxLength() > 0)
-			out.add(rd);
-
-		return (RangeDifference[]) out.toArray(EMPTY_RESULT);
-	}
-
-	//---- private methods
-
-	/**
-	 * Creates a Vector of DifferencesRanges out of the LinkedRangeDifference.
-	 * It coalesces adjacent changes.
-	 * In addition, indices are changed such that the ranges are 1) open, i.e,
-	 * the end of the range is not included, and 2) are zero based.
-	 */
-	private static RangeDifference[] createDifferencesRanges(LinkedRangeDifference start) {
-
-		LinkedRangeDifference ep= reverseDifferences(start);
-		ArrayList result= new ArrayList();
-		RangeDifference es= null;
-
-		while (ep != null) {
-			es= new RangeDifference(RangeDifference.CHANGE);
-
-			if (ep.isInsert()) {
-				es.fRightStart= ep.fRightStart + 1;
-				es.fLeftStart= ep.fLeftStart;
-				RangeDifference b= ep;
-				do {
-					ep= ep.getNext();
-					es.fLeftLength++;
-				} while (ep != null && ep.isInsert() && ep.fRightStart == b.fRightStart);
-			} else {
-				es.fRightStart= ep.fRightStart;
-				es.fLeftStart= ep.fLeftStart;
-
-				RangeDifference a= ep;
-				//
-				// deleted lines
-				//
-				do {
-					a= ep;
-					ep= ep.getNext();
-					es.fRightLength++;
-				} while (ep != null && ep.isDelete() && ep.fRightStart == a.fRightStart + 1);
-
-				boolean change= (ep != null && ep.isInsert() && ep.fRightStart == a.fRightStart);
-
-				if (change) {
-					RangeDifference b= ep;
-					//
-					// replacement lines
-					//
-					do {
-						ep= ep.getNext();
-						es.fLeftLength++;
-					} while (ep != null && ep.isInsert() && ep.fRightStart == b.fRightStart);
-				} else {
-					es.fLeftLength= 0;
-				}
-				es.fLeftStart++; // meaning of range changes from "insert after", to "replace with"
-
-			}
-			//
-			// the script commands are 1 based, subtract one to make them zero based
-			//
-			es.fRightStart--;
-			es.fLeftStart--;
-			result.add(es);
-		}
-		return (RangeDifference[]) result.toArray(EMPTY_RESULT);
-	}
-
-	/**
-	 * Creates a <code>RangeDifference3</code> given the
-	 * state of two DifferenceIterators.
-	 */
-	private static RangeDifference createRangeDifference3(
-		DifferencesIterator myIter, 
-		DifferencesIterator yourIter, 
-		List diff3, 
-		IRangeComparator right, 
-		IRangeComparator left, 
-		int changeRangeStart, 
-		int changeRangeEnd) {
-
-		int rightStart, rightEnd;
-		int leftStart, leftEnd;
-		int kind= RangeDifference.ERROR;
-		RangeDifference last= (RangeDifference) diff3.get(diff3.size() - 1);
-
-		Assert.isTrue((myIter.getCount() != 0 || yourIter.getCount() != 0));	// At least one range array must be non-empty
-		//
-		// find corresponding lines to fChangeRangeStart/End in right and left
-		//
-		if (myIter.getCount() == 0) { // only left changed
-			rightStart= changeRangeStart - last.ancestorEnd() + last.rightEnd();
-			rightEnd= changeRangeEnd - last.ancestorEnd() + last.rightEnd();
-			kind= RangeDifference.LEFT;
-		} else {
-			RangeDifference f= (RangeDifference) myIter.fRange.get(0);
-			RangeDifference l= (RangeDifference) myIter.fRange.get(myIter.fRange.size() - 1);
-			rightStart= changeRangeStart - f.fLeftStart + f.fRightStart;
-			rightEnd= changeRangeEnd - l.leftEnd() + l.rightEnd();
-		}
-
-		if (yourIter.getCount() == 0) { // only right changed
-			leftStart= changeRangeStart - last.ancestorEnd() + last.leftEnd();
-			leftEnd= changeRangeEnd - last.ancestorEnd() + last.leftEnd();
-			kind= RangeDifference.RIGHT;
-		} else {
-			RangeDifference f= (RangeDifference) yourIter.fRange.get(0);
-			RangeDifference l= (RangeDifference) yourIter.fRange.get(yourIter.fRange.size() - 1);
-			leftStart= changeRangeStart - f.fLeftStart + f.fRightStart;
-			leftEnd= changeRangeEnd - l.leftEnd() + l.rightEnd();
-		}
-
-		if (kind == RangeDifference.ERROR) { // overlapping change (conflict) -> compare the changed ranges
-			if (rangeSpansEqual(right, rightStart, rightEnd - rightStart, left, leftStart, leftEnd - leftStart))
-				kind= RangeDifference.ANCESTOR;
-			else
-				kind= RangeDifference.CONFLICT;
-		}
-		return new RangeDifference(kind, rightStart, rightEnd - rightStart, leftStart, leftEnd - leftStart, changeRangeStart, changeRangeEnd - changeRangeStart);
-	}
-
-	/**
-	 * Tests if two ranges are equal
-	 */
-	private static boolean rangesEqual(IRangeComparator a, int ai, IRangeComparator b, int bi) {
-		return a.rangesEqual(ai, b, bi);
-	}
-
-	/**
-	 * Tests whether <code>right</code> and <code>left</left> changed in the same way
-	 */
-	private static boolean rangeSpansEqual(IRangeComparator right, int rightStart, int rightLen, IRangeComparator left, int leftStart, int leftLen) {
-		if (rightLen == leftLen) {
-			int i= 0;
-			for (i= 0; i < rightLen; i++) {
-				if (!rangesEqual(right, rightStart + i, left, leftStart + i))
-					break;
-			}
-			if (i == rightLen)
-				return true;
-		}
-		return false;
-	}
-
-	/**
-	 * Reverses the range differences
-	 */
-	private static LinkedRangeDifference reverseDifferences(LinkedRangeDifference start) {
-		LinkedRangeDifference ep, behind, ahead;
-
-		ahead= start;
-		ep= null;
-		while (ahead != null) {
-			behind= ep;
-			ep= ahead;
-			ahead= ahead.getNext();
-			ep.setNext(behind);
-		}
-		return ep;
-	}
-}
-
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/rangedifferencer/package.html b/bundles/org.eclipse.compare/compare/org/eclipse/compare/rangedifferencer/package.html
deleted file mode 100644
index 368068b..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/rangedifferencer/package.html
+++ /dev/null
@@ -1,44 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="Author" content="IBM">
-   <meta name="GENERATOR" content="Mozilla/4.75 [en] (WinNT; U) [Netscape]">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-Provides support for finding the differences between
-two or three sequences of comparable entities.
-<h2>
-Package Specification</h2>
-
-The class <b>RangeDifferencer</b> finds longest sequences of matching and
-non-matching comparable entities. Its implementation is based on
-an objectified version of the algorithm described in:
-<i>A File Comparison Program,</i> by Webb Miller and Eugene W. Myers,
-Software Practice and Experience, Vol. 15, Nov. 1985.
-<p>
-
-Clients must supply the input to the differencer as an implementation
-of the <b>IRangeComparator</b> interface.
-An <b>IRangeComparator</b> breaks the input data into a sequence
-of entities and provides a method for comparing
-one entity with the entity in another <b>IRangeComparator</b>.
-<p>
-
-For example, to compare two text documents and find longest common
-sequences of matching and non-matching lines,
-the implementation of <b>IRangeComparator</b> 
-must break the document into lines and provide a method for testing
-whether two lines are considered equal.
-See <b>org.eclipse.compare.internal.DocLineComparator</b> for how this can be done.
-<p>
-
-The differencer returns the differences among these sequences as an
-array of <b>RangeDifference</b> objects.
-Every single <b>RangeDifference</b> describes the kind of difference
-(no change, change, addition, deletion) and the corresponding ranges
-of the underlying comparable entities in the two or three inputs.
-
-</body>
-</html>
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DiffContainer.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DiffContainer.java
deleted file mode 100644
index 0d01398..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DiffContainer.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.structuremergeviewer;
-
-import java.util.ArrayList;
-
-/**
- * The standard implementation of a diff container element.
- * <p>
- * This class may be instantiated, or further subclassed.
- * </p>
- */
-public abstract class DiffContainer extends DiffElement implements IDiffContainer {
-
-	private static IDiffElement[] fgEmptyArray= new IDiffElement[0];
-	private ArrayList fChildren;
-	
-	/**
-	 * Creates a new container with the specified kind under the given parent. 
-	 *
-	 * @param parent under which the new container is added as a child or <code>null</code>.
-	 * @param name of the container
-	 * @param kind of difference (defined in <code>Differencer</code>).
-	 */
-	public DiffContainer(IDiffContainer parent, int kind) {
-		super(parent, kind);
-	}
-	
-	/**
-	 * Tries to find the child with the given name.
-	 * Returns <code>null</code> if no such child exists.
-	 * 
-	 * @param name of the child to find
-	 * @return the first element with a matching name
-	 */
-	public IDiffElement findChild(String name) {
-		Object[] children= getChildren();
-		for (int i= 0; i < children.length; i++) {
-			IDiffElement child= (IDiffElement) children[i];
-			if (name.equals(child.getName()))
-				return child;
-		}
-		return null;
-	}
-
-	/* (non Javadoc)
-	 * see IDiffContainer.add
-	 */
-	public void add(IDiffElement diff) {
-		if (fChildren == null)
-			fChildren= new ArrayList();
-		fChildren.add(diff);
-		diff.setParent(this);
-	}
-
-	/**
-	 * Removes the given child from this container.
-	 * If the container becomes empty it is removed from its container.
-	 */
-	/* (non Javadoc)
-	 * see IDiffContainer.removeToRoot
-	 */
-	public void removeToRoot(IDiffElement child) {
-		if (fChildren != null) {
-			fChildren.remove(child);
-			child.setParent(null);
-			if (fChildren.size() == 0) {
-				IDiffContainer p= getParent();
-				if (p != null)
-					p.removeToRoot(this);
-			}
-		}
-	}
-
-	/**
-	 * Removes the given child (non-recursively) from this container.
-	 *
-	 * @param child to remove
-	 */
-	public void remove(IDiffElement child) {
-		if (fChildren != null) {
-			fChildren.remove(child);
-			child.setParent(null);
-		}
-	}
-	
-	/* (non Javadoc)
-	 * see IDiffContainer.hasChildren
-	 */
-	public boolean hasChildren() {
-		return fChildren != null && fChildren.size() > 0;
-	}
-
-	/* (non Javadoc)
-	 * see IDiffContainer.getChildren
-	 */
-	public IDiffElement[] getChildren() {
-		if (fChildren != null)
-			return (IDiffElement[]) fChildren.toArray(fgEmptyArray);
-		return fgEmptyArray;
-	}
-}
-
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DiffElement.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DiffElement.java
deleted file mode 100644
index 2630ac5..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DiffElement.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.structuremergeviewer;
-
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.compare.ITypedElement;
-
-/**
- * An abstract base implementation of the <code>IDiffElement</code> interface.
- * <p>
- * Subclasses may add behavior and state, and may override <code>getImage</code>
- * and <code>getType</code> to suit.
- * </p>
- */
-public abstract class DiffElement implements IDiffElement {
-
-	private int fKind;
-	private IDiffContainer fParent;
-
-	/**
-	 * Creates a new <code>DiffElement</code> as a child of the given parent.
-	 * If parent is not <code>null</code> the new element is added to the parent.
-	 *
-	 * @param parent the parent of this child; if not <code>null</code> this element is automatically added as a child
-	 * @param kind the kind of change
-	 */
-	public DiffElement(IDiffContainer parent, int kind) {
-		fParent= parent;
-		fKind= kind;
-		if (parent != null)
-			parent.add(this);
-	}
-
-	/**
-	 * The <code>DiffElement</code> implementation of this <code>ITypedInput</code>
-	 * method returns <code>null</code>. Subclasses may re-implement to provide
-	 * an image for this element.
-	 */
-	public Image getImage() {
-		return null;
-	}
-
-	/**
-	 * The <code>DiffElement</code> implementation of this <code>ITypedElement</code>
-	 * method returns <code>ITypedElement.UNKNOWN_TYPE</code>. Subclasses may
-	 * re-implement to provide a type for this element.
-	 */
-	public String getType() {
-		return ITypedElement.UNKNOWN_TYPE;
-	}
-
-	/**
-	 * Sets the kind of difference for this element.
-	 *
-	 * @param kind set the kind of difference this element represents
-	 * @see Differencer
-	 */
-	public void setKind(int kind) {
-		fKind= kind;
-	}
-
-	/* (non Javadoc)
-	 * see IDiffElement.getKind
-	 */
-	public int getKind() {
-		return fKind;
-	}
-
-	/* (non Javadoc)
-	 * see IDiffElement.getParent
-	 */
-	public IDiffContainer getParent() {
-		return fParent;
-	}
-
-	/* (non Javadoc)
-	 * see IDiffElement.setParent
-	 */
-	public void setParent(IDiffContainer parent) {
-		fParent= parent;
-	}
-}
-
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DiffNode.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DiffNode.java
deleted file mode 100644
index 9d86242..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DiffNode.java
+++ /dev/null
@@ -1,357 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.structuremergeviewer;
-
-import java.text.MessageFormat;
-
-import org.eclipse.swt.graphics.Image;
-
-import org.eclipse.jface.util.ListenerList;
-
-import org.eclipse.compare.*;
-import org.eclipse.compare.internal.Utilities;
-
-/**
- * Diff node are used as the compare result of the differencing engine.
- * Since it implements the <code>ITypedElement</code> and <code>ICompareInput</code>
- * interfaces it can be used directly to display the
- * compare result in a <code>DiffTreeViewer</code> and as the input to any other
- * compare/merge viewer.
- * <p>
- * <code>DiffNode</code>s are typically created as the result of performing
- * a compare with the <code>Differencer</code>.
- * <p>
- * Clients typically use this class as is, but may subclass if required.
- * 
- * @see DiffTreeViewer
- * @see Differencer
- */
-public class DiffNode extends DiffContainer implements ITypedElement, ICompareInput {
-
-	private ITypedElement fAncestor;
-	private ITypedElement fLeft;
-	private ITypedElement fRight;
-	private boolean fDontExpand;
-	private ListenerList fListener;
-	private boolean fSwapSides;
-
-	
-	/**
-	 * Creates a new <code>DiffNode</code> and initializes with the given values.
-	 *
-	 * @param parent under which the new container is added as a child or <code>null</code>
-	 * @param kind of difference (defined in <code>Differencer</code>)
-	 * @param ancestor the common ancestor input to a compare
-	 * @param left the left input to a compare
-	 * @param right the right input to a compare
-	 */
-	public DiffNode(IDiffContainer parent, int kind, ITypedElement ancestor, ITypedElement left, ITypedElement right) {
-		this(parent, kind);
-		fAncestor= ancestor;
-		fLeft= left;
-		fRight= right;
-	}
-
-	/**
-	 * Creates a new <code>DiffNode</code> with diff kind <code>Differencer.CHANGE</code>
-	 * and initializes with the given values.
-	 *
-	 * @param left the left input to a compare
-	 * @param right the right input to a compare
-	 */
-	public DiffNode(ITypedElement left, ITypedElement right) {
-		this(null, Differencer.CHANGE, null, left, right);
-	}
-
-	/**
-	 * Creates a new <code>DiffNode</code> and initializes with the given values.
-	 *
-	 * @param kind of difference (defined in <code>Differencer</code>)
-	 * @param ancestor the common ancestor input to a compare
-	 * @param left the left input to a compare
-	 * @param right the right input to a compare
-	 */
-	public DiffNode(int kind, ITypedElement ancestor, ITypedElement left, ITypedElement right) {
-		this(null, kind, ancestor, left, right);
-	}
-
-	/**
-	 * Creates a new <code>DiffNode</code> with the given diff kind.
-	 *
-	 * @param kind of difference (defined in <code>Differencer</code>)
-	 */
-	public DiffNode(int kind) {
-		super(null, kind);
-	}
-
-	/**
-	 * Creates a new <code>DiffNode</code> and initializes with the given values.
-	 *
-	 * @param parent under which the new container is added as a child or <code>null</code>
-	 * @param kind of difference (defined in <code>Differencer</code>)
-	 */
-	public DiffNode(IDiffContainer parent, int kind) {
-		super(parent, kind);
-	}
-
-	/**
-	 * Registers a listener for changes of this <code>ICompareInput</code>.
-	 * Has no effect if an identical listener is already registered.
-	 *
-	 * @param listener the listener to add
-	 */
-	public void addCompareInputChangeListener(ICompareInputChangeListener listener) {
-		if (fListener == null)
-			fListener= new ListenerList();
-		fListener.add(listener);
-	}
-	
-	/**
-	 * Unregisters a <code>ICompareInput</code> listener.
-	 * Has no effect if listener is not registered.
-	 *
-	 * @param listener the listener to remove
-	 */
-	public void removeCompareInputChangeListener(ICompareInputChangeListener listener) {
-		if (fListener != null) {
-			fListener.remove(listener);
-			if (fListener.isEmpty())
-				fListener= null;
-		}
-	}
-	
-	/**
-	 * Sends out notification that a change has occured on the <code>ICompareInput</code>.
-	 */
-	protected void fireChange() {
-		if (fListener != null) {
-			Object[] listeners= fListener.getListeners();
-			for (int i= 0; i < listeners.length; i++)
-				((ICompareInputChangeListener) listeners[i]).compareInputChanged(this);
-		}
-	}
-
-	//---- getters & setters
-
-	/**
-	 * Returns <code>true</code> if this node shouldn't automatically be expanded in
-	 * a </code>DiffTreeViewer</code>.
-	 *
-	 * @return <code>true</code> if node shouldn't automatically be expanded
-	 */
-	public boolean dontExpand() {
-		return fDontExpand;
-	}
-
-	/**
-	 * Controls whether this node is not automatically expanded when displayed in
-	 * a </code>DiffTreeViewer</code>.
-	 *
-	 * @param dontExpand if <code>true</code> this node is not automatically expanded in </code>DiffTreeViewer</code>
-	 */
-	public void setDontExpand(boolean dontExpand) {
-		fDontExpand= dontExpand;
-	}
-
-	/**
-	 * Returns the first not-<code>null</code> input of this node.
-	 * Method checks the three inputs in the order: ancestor, right, left.
-	 *
-	 * @return the first not-<code>null</code> input of this node
-	 */
-	public ITypedElement getId() {
-		if (fAncestor != null)
-			return fAncestor;
-		if (fRight != null)
-			return fRight;
-		return fLeft;
-	}
-
-	/**
-	 * Returns the (non-<code>null</code>) name of the left or right side if they are identical.
-	 * Otherwise both names are concatenated (separated with a slash ('/')).
-	 * <p>
-	 * Subclasses may re-implement to provide a different name for this node.
-	 */
-	/* (non Javadoc)
-	 * see ITypedElement.getName
-	 */
-	public String getName() {
-		String right= null;
-		if (fRight != null)
-			right= fRight.getName();
-
-		String left= null;
-		if (fLeft != null)
-			left= fLeft.getName();
-
-		if (right == null && left == null) {
-			if (fAncestor != null)
-				return fAncestor.getName();
-			return Utilities.getString("DiffNode.noName"); //$NON-NLS-1$
-		}
-
-		if (right == null)
-			return left;
-		if (left == null)
-			return right;
-
-		if (right.equals(left))
-			return right;
-			
-		String s1;
-		String s2;
-		
-		if (fSwapSides) {
-			s1= left;
-			s2= right;
-		} else {
-			s1= right;
-			s2= left;
-		}
-		
-		String fmt= Utilities.getString("DiffNode.nameFormat"); //$NON-NLS-1$
-		return MessageFormat.format(fmt, new String[] { s1, s2 });
-	}
-	
-	void swapSides(boolean swap) {
-		fSwapSides= swap;
-	}
-		
-	/* (non Javadoc)
-	 * see ITypedElement.getImage
-	 */
-	public Image getImage() {
-		ITypedElement id= getId();
-		if (id != null)
-			return id.getImage();
-		return null;
-	}
-
-	/* (non Javadoc)
-	 * see ITypedElement.getType
-	 */
-	public String getType() {
-		ITypedElement id= getId();
-		if (id != null)
-			return id.getType();
-		return ITypedElement.UNKNOWN_TYPE;
-	}
-
-	/* (non Javadoc)
-	 * see ICompareInput.getAncestor
-	 */
-	public ITypedElement getAncestor() {
-		return fAncestor;
-	}
-	
-	/**
-	 * Sets the left input to the given value.
-	 *
-	 * @param left the new value for the left input
-	 */
-	public void setLeft(ITypedElement left) {
-		fLeft= left;
-	}
-	
-	/* (non Javadoc)
-	 * see ICompareInput.getLeft
-	 */
-	public ITypedElement getLeft() {
-		return fLeft;
-	}
-
-	/**
-	 * Sets the right input to the given value.
-	 *
-	 * @param right the new value for the right input
-	 */
-	public void setRight(ITypedElement right) {
-		fRight= right;
-	}
-	
-	/* (non Javadoc)
-	 * see ICompareInput.getRight
-	 */
-	public ITypedElement getRight() {
-		return fRight;
-	}
-
-	/* (non Javadoc)
-	 * see ICompareInput.copy
-	 */
-	public void copy(boolean leftToRight) {
-		//System.out.println("DiffNode.copy: " + leftToRight);
-		
-		IDiffContainer pa= getParent();
-		if (pa instanceof ICompareInput) {
-			ICompareInput parent= (ICompareInput) pa;
-			Object dstParent= leftToRight ? parent.getRight() : parent.getLeft();
-			
-			if (dstParent instanceof IEditableContent) {
-				ITypedElement dst= leftToRight ? getRight() : getLeft();
-				ITypedElement src= leftToRight ? getLeft() : getRight();
-				dst= ((IEditableContent)dstParent).replace(dst, src);
-				if (leftToRight)
-					setRight(dst);
-				else
-					setLeft(dst);
-				
-				//setKind(Differencer.NO_CHANGE);
-				
-				fireChange();
-			}
-		}
-	}
-	
-	/* (non Javadoc)
-	 * see Object.hashCode
-	 */
-	public int hashCode() {
-		String[] path= getPath(this, 0);
-		int hashCode= 1;
-		for (int i= 0; i < path.length; i++) {
-	    	String s= path[i];
-	   	 	hashCode= (31*hashCode) + (s != null ? s.hashCode() : 0);
-		}
-		return hashCode;
-	}
-	
-	/* (non Javadoc)
-	 * see Object.equals
-	 */
-	public boolean equals(Object other) {
-		if (other != null && getClass() == other.getClass()) {
-			String[] path1= getPath(this, 0);
-			String[] path2= getPath((DiffNode) other, 0);
-			if (path1.length != path2.length)
-				return false;
-			for (int i= 0; i < path1.length; i++)
-				if (! path1[i].equals(path2[i]))
-					return false;
-			return true;
-		}
-		return super.equals(other);
-	}
-	
-	private static String[] getPath(ITypedElement el, int level) {
-		String[] path= null;
-		if (el instanceof IDiffContainer) {
-			IDiffContainer parent= ((IDiffContainer)el).getParent();
-			if (parent instanceof ITypedElement)
-				path= getPath((ITypedElement)parent, level+1);
-		}
-		if (path == null)
-			path= new String[level+1];
-		path[(path.length-1)-level]= el.getName();
-		return path;
-	}
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DiffTreeViewer.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DiffTreeViewer.java
deleted file mode 100644
index 94d0cd6..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DiffTreeViewer.java
+++ /dev/null
@@ -1,719 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.structuremergeviewer;
-
-import java.util.Iterator;
-import java.util.ResourceBundle;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.*;
-
-import org.eclipse.jface.util.*;
-import org.eclipse.jface.action.*;
-import org.eclipse.jface.viewers.*;
-
-import org.eclipse.compare.internal.*;
-import org.eclipse.compare.*;
-
-/**
- * A tree viewer that works on objects implementing
- * the <code>IDiffContainer</code> and <code>IDiffElement</code> interfaces.
- * <p>
- * This class may be instantiated; it is not intended to be subclassed outside
- * this package.
- * </p>
- *
- * @see IDiffContainer
- * @see IDiffElement
- */
-public class DiffTreeViewer extends TreeViewer {
-	
-	static class DiffViewerSorter extends ViewerSorter {
-	
-		public boolean isSorterProperty(Object element, Object property) {
-			return false;
-		}
-	
-		public int category(Object node) {
-			if (node instanceof DiffNode) {
-				Object o= ((DiffNode) node).getId();
-				if (o instanceof DocumentRangeNode)
-					return ((DocumentRangeNode) o).getTypeCode();
-			}
-			return 0;
-		}
-	}	
-
-	class DiffViewerContentProvider implements ITreeContentProvider {
-			
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-		}
-	
-		public boolean isDeleted(Object element) {
-			return false;
-		}
-			
-		public void dispose() {
-			inputChanged(DiffTreeViewer.this, getInput(), null);
-		}
-			
-		public Object getParent(Object element) {
-			if (element instanceof IDiffElement) 
-				return ((IDiffElement)element).getParent();
-			return null;
-		}
-		
-		public final boolean hasChildren(Object element) {
-			if (element instanceof IDiffContainer) 
-				return ((IDiffContainer)element).hasChildren();
-			return false;
-		}
-		
-		public final Object[] getChildren(Object element) {
-			if (element instanceof IDiffContainer)
-				return ((IDiffContainer)element).getChildren();
-			return new Object[0];
-		}
-		
-		public Object[] getElements(Object element) {
-			return getChildren(element);
-		}				
-	}
-	
-	/*
-	 * Takes care of swapping left and right if fLeftIsLocal
-	 * is true.
-	 */
-	class DiffViewerLabelProvider extends LabelProvider {
-		
-		public String getText(Object element) {
-			
-			if (element instanceof IDiffElement)
-				return ((IDiffElement)element).getName();
-						
-			return Utilities.getString(fBundle, "defaultLabel"); //$NON-NLS-1$
-		}
-	
-		public Image getImage(Object element) {
-			if (element instanceof IDiffElement) {
-				IDiffElement input= (IDiffElement) element;
-				
-				int kind= input.getKind();
-				if (fLeftIsLocal) {
-					switch (kind & Differencer.DIRECTION_MASK) {
-					case Differencer.LEFT:
-						kind= (kind &~ Differencer.LEFT) | Differencer.RIGHT;
-						break;
-					case Differencer.RIGHT:
-						kind= (kind &~ Differencer.RIGHT) | Differencer.LEFT;
-						break;
-					}
-				}
-				
-				return fCompareConfiguration.getImage(input.getImage(), kind);
-			}
-			return null;
-		}
-	}
-
-	static class FilterSame extends ViewerFilter {
-		public boolean select(Viewer viewer, Object parentElement, Object element) {
-			if (element instanceof IDiffElement)
-				return (((IDiffElement)element).getKind() & Differencer.PSEUDO_CONFLICT) == 0;
-			return true;
-		}
-		public boolean isFilterProperty(Object element, Object property) {
-			return false;
-		}
-	}
-	
-	private ResourceBundle fBundle;
-	private CompareConfiguration fCompareConfiguration;
-	/* package */ boolean fLeftIsLocal;
-	private IPropertyChangeListener fPropertyChangeListener;
-
-	private Action fCopyLeftToRightAction;
-	private Action fCopyRightToLeftAction;
-	private Action fEmptyMenuAction;
-	private Action fExpandAllAction;
-		
-	/**
-	 * Creates a new viewer for the given SWT tree control with the specified configuration.
-	 *
-	 * @param tree the tree control
-	 * @param configuration the configuration for this viewer
-	 */
-	public DiffTreeViewer(Tree tree, CompareConfiguration configuration) {
-		super(tree);
-		initialize(configuration);
-	}
-	
-	/**
-	 * Creates a new viewer under the given SWT parent and with the specified configuration.
-	 *
-	 * @param parent the SWT control under which to create the viewer
-	 * @param configuration the configuration for this viewer
-	 */
-	public DiffTreeViewer(Composite parent, CompareConfiguration configuration) {
-		super(new Tree(parent, SWT.MULTI));
-		initialize(configuration);
-	}
-	
-	private void initialize(CompareConfiguration configuration) {
-		
-		Control tree= getControl();
-		
-		INavigatable nav= new INavigatable() {
-			public boolean gotoDifference(boolean next) {
-				// Fix for http://dev.eclipse.org/bugs/show_bug.cgi?id=20106
-				return internalNavigate(next, true);
-			}
-		};
-		tree.setData(INavigatable.NAVIGATOR_PROPERTY, nav);
-		
-		// Fix for http://dev.eclipse.org/bugs/show_bug.cgi?id=20106
-		IOpenable openable= new IOpenable() {
-			public void openSelected() {
-				internalOpen();
-			}
-		};
-		tree.setData(IOpenable.OPENABLE_PROPERTY, openable);
-		
-		fLeftIsLocal= Utilities.getBoolean(configuration, "LEFT_IS_LOCAL", false); //$NON-NLS-1$
-
-		tree.setData(CompareUI.COMPARE_VIEWER_TITLE, getTitle());
-
-		Composite parent= tree.getParent();
-		
-		fBundle= ResourceBundle.getBundle("org.eclipse.compare.structuremergeviewer.DiffTreeViewerResources"); //$NON-NLS-1$
-		
-		// register for notification with the CompareConfiguration 
-		fCompareConfiguration= configuration;
-		if (fCompareConfiguration != null) {
-			fPropertyChangeListener= new IPropertyChangeListener() {
-				public void propertyChange(PropertyChangeEvent event) {
-					DiffTreeViewer.this.propertyChange(event);
-				}
-			};
-			fCompareConfiguration.addPropertyChangeListener(fPropertyChangeListener);
-		}				
-	
-		setContentProvider(new DiffViewerContentProvider());
-		setLabelProvider(new DiffViewerLabelProvider());
-		
-		addSelectionChangedListener(
-			new ISelectionChangedListener() {
-				public void selectionChanged(SelectionChangedEvent se) {
-					updateActions();
-				}
-			}
-		);
-										
-		setSorter(new DiffViewerSorter());
-		
-		ToolBarManager tbm= CompareViewerSwitchingPane.getToolBarManager(parent);
-		if (tbm != null) {
-			tbm.removeAll();
-			
-			tbm.add(new Separator("merge")); //$NON-NLS-1$
-			tbm.add(new Separator("modes")); //$NON-NLS-1$
-			tbm.add(new Separator("navigation")); //$NON-NLS-1$
-			
-			createToolItems(tbm);
-			updateActions();
-			
-			tbm.update(true);
-		}
-		
-		MenuManager mm= new MenuManager();
-		mm.setRemoveAllWhenShown(true);
-		mm.addMenuListener(
-			new IMenuListener() {
-				public void menuAboutToShow(IMenuManager mm2) {
-					fillContextMenu(mm2);
-					if (mm2.isEmpty()) {
-						if (fEmptyMenuAction == null) {
-							fEmptyMenuAction=
-								new Action(Utilities.getString(fBundle, "emptyMenuItem")) {};	//$NON-NLS-1$
-							fEmptyMenuAction.setEnabled(false);
-						}
-						mm2.add(fEmptyMenuAction);
-					}
-				}
-			}
-		);
-		tree.setMenu(mm.createContextMenu(tree));
-	}
-			
-	/**
-	 * Returns the viewer's name.
-	 *
-	 * @return the viewer's name
-	 */
-	public String getTitle() {
-		String title= Utilities.getString(fBundle, "title", null); //$NON-NLS-1$
-		if (title == null)
-			title= Utilities.getString("DiffTreeViewer.title"); //$NON-NLS-1$
-		return title;
-	}
-	
-	/**
-	 * Returns the resource bundle.
-	 *
-	 * @return the viewer's resource bundle
-	 */
-	protected ResourceBundle getBundle() {
-		return fBundle;
-	}
-
-	/**
-	 * Returns the compare configuration of this viewer.
-	 *
-	 * @return the compare configuration of this viewer
-	 */
-	public CompareConfiguration getCompareConfiguration() {
-		return fCompareConfiguration;
-	}
-			
-	/**
-	 * Called on the viewer disposal.
-	 * Unregisters from the compare configuration.
-	 * Clients may extend if they have to do additional cleanup.
-	 */
-	protected void handleDispose(DisposeEvent event) {
-		
-		if (fCompareConfiguration != null) {
-			if (fPropertyChangeListener != null)
-				fCompareConfiguration.removePropertyChangeListener(fPropertyChangeListener);
-			fCompareConfiguration= null;
-		}
-		fPropertyChangeListener= null;
-		
-		super.handleDispose(event);
-	}
-	
-	/**
-	 * Tracks property changes of the configuration object.
-	 * Clients may extend to track their own property changes.
-	 */
-	protected void propertyChange(PropertyChangeEvent event) {
-	}
-	
-	protected void inputChanged(Object in, Object oldInput) {
-		super.inputChanged(in, oldInput);
-		
-		if (in != oldInput) {
-			initialSelection();
-			updateActions();
-		}
-	}
-	
-	/**
-	 * This hook method is called from within <code>inputChanged</code>
-	 * after a new input has been set but before any controls are updated.
-	 * This default implementation calls <code>navigate(true)</code>
-	 * to select and expand the first leaf node.
-	 * Clients can override this method and are free to decide whether
-	 * they want to call the inherited method.
-	 * 
-	 * @since 2.0
-	 */
-	protected void initialSelection() {
-		navigate(true);
-	}
-
-	/**
-	 * Overridden to avoid expanding <code>DiffNode</code>s that shouldn't expand.
-	 */
-	protected void internalExpandToLevel(Widget node, int level) {
-				
-		Object data= node.getData();
-		
-		if (dontExpand(data))
-			return;
-		
-		super.internalExpandToLevel(node, level);
-	}
-	
-	/**
-	 * This hook method is called from within <code>internalExpandToLevel</code>
-	 * to control whether a given model node should be expanded or not.
-	 * This default implementation checks whether the object is a <code>DiffNode</code> and
-	 * calls <code>dontExpand()</code> on it.
-	 * Clients can override this method and are free to decide whether
-	 * they want to call the inherited method.
-	 * 
-	 * @param o the model object to be expanded
-	 * @return <code>false</code> if a node should be expanded, <code>true</code> to prevent expanding
-	 * @since 2.0
-	 */
-	protected boolean dontExpand(Object o) {
-		return o instanceof DiffNode && ((DiffNode)o).dontExpand();
-	}
-	
-	//---- merge action support
-
-	/**
-	 * This factory method is called after the viewer's controls have been created.
-	 * It installs four actions in the given <code>ToolBarManager</code>. Two actions
-	 * allow for copying one side of a <code>DiffNode</code> to the other side.
-	 * Two other actions are for navigating from one node to the next (previous).
-	 * <p>
-	 * Clients can override this method and are free to decide whether they want to call
-	 * the inherited method.
-	 *
-	 * @param toolbarManager the toolbar manager for which to add the actions
-	 */
-	protected void createToolItems(ToolBarManager toolbarManager) {
-		
-//		fCopyLeftToRightAction= new Action() {
-//			public void run() {
-//				copySelected(true);
-//			}
-//		};
-//		Utilities.initAction(fCopyLeftToRightAction, fBundle, "action.TakeLeft.");
-//		toolbarManager.appendToGroup("merge", fCopyLeftToRightAction);
-
-//		fCopyRightToLeftAction= new Action() {
-//			public void run() {
-//				copySelected(false);
-//			}
-//		};
-//		Utilities.initAction(fCopyRightToLeftAction, fBundle, "action.TakeRight.");
-//		toolbarManager.appendToGroup("merge", fCopyRightToLeftAction);
-		
-//		fNextAction= new Action() {
-//			public void run() {
-//				navigate(true);
-//			}
-//		};
-//		Utilities.initAction(fNextAction, fBundle, "action.NextDiff."); //$NON-NLS-1$
-//		toolbarManager.appendToGroup("navigation", fNextAction); //$NON-NLS-1$
-
-//		fPreviousAction= new Action() {
-//			public void run() {
-//				navigate(false);
-//			}
-//		};
-//		Utilities.initAction(fPreviousAction, fBundle, "action.PrevDiff."); //$NON-NLS-1$
-//		toolbarManager.appendToGroup("navigation", fPreviousAction); //$NON-NLS-1$
-	}
-	
-	/**
-	 * This method is called to add actions to the viewer's context menu.
-	 * It installs actions for expanding tree nodes, copying one side of a <code>DiffNode</code> to the other side.
-	 * Clients can override this method and are free to decide whether they want to call
-	 * the inherited method.
-	 *
-	 * @param manager the menu manager for which to add the actions
-	 */
-	protected void fillContextMenu(IMenuManager manager) {
-		if (fExpandAllAction == null) {
-			fExpandAllAction= new Action() {
-				public void run() {
-					expandSelection();
-				}
-			};
-			Utilities.initAction(fExpandAllAction, fBundle, "action.ExpandAll."); //$NON-NLS-1$
-		}
-		
-		boolean enable= false;
-		ISelection selection= getSelection();
-		if (selection instanceof IStructuredSelection) {
-			Iterator elements= ((IStructuredSelection)selection).iterator();
-			while (elements.hasNext()) {
-				Object element= elements.next();
-				if (element instanceof IDiffContainer) {
-					if (((IDiffContainer)element).hasChildren()) {
-						enable= true;
-						break;
-					}
-				}
-			}
-		}
-		fExpandAllAction.setEnabled(enable);
-
-		manager.add(fExpandAllAction);
-		
-		if (fCopyLeftToRightAction != null)
-			manager.add(fCopyLeftToRightAction);
-		if (fCopyRightToLeftAction != null)
-			manager.add(fCopyRightToLeftAction);
-	}
-
-	/**
-	 * Expands to infinity all items in the selection.
-	 * 
-	 * @since 2.0
-	 */
-	protected void expandSelection() {
-		ISelection selection= getSelection();
-		if (selection instanceof IStructuredSelection) {
-			Iterator elements= ((IStructuredSelection)selection).iterator();
-			while (elements.hasNext()) {
-				Object next= elements.next();
-				expandToLevel(next, ALL_LEVELS);
-			}
-		}
-	}
-
-	/**
-	 * Copies one side of all <code>DiffNode</code>s in the current selection to the other side.
-	 * Called from the (internal) actions for copying the sides of a <code>DiffNode</code>.
-	 * Clients may override. 
-	 * 
-	 * @param leftToRight if <code>true</code> the left side is copied to the right side.
-	 * If <code>false</code> the right side is copied to the left side
-	 */
-	protected void copySelected(boolean leftToRight) {
-		ISelection selection= getSelection();
-		if (selection instanceof IStructuredSelection) {
-			Iterator e= ((IStructuredSelection) selection).iterator();
-			while (e.hasNext()) {
-				Object element= e.next();
-				if (element instanceof ICompareInput)
-					copyOne((ICompareInput) element, leftToRight);
-			}
-		}
-	}
-	
-	/**
-	 * Called to copy one side of the given node to the other.
-	 * This default implementation delegates the call to <code>ICompareInput.copy(...)</code>.
-	 * Clients may override. 
-	 * 
-	 * @param leftToRight if <code>true</code> the left side is copied to the right side.
-	 * If <code>false</code> the right side is copied to the left side
-	 */
-	protected void copyOne(ICompareInput node, boolean leftToRight) {
-		
-		node.copy(leftToRight);
-		
-		// update node's image
-		update(new Object[] { node }, null);
-	}
-	
-	/**
-	 * Selects the next (or previous) node of the current selection.
-	 * If there is no current selection the first (last) node in the tree is selected.
-	 * Wraps around at end or beginning.
-	 * Clients may override. 
-	 *
-	 * @param next if <code>true</code> the next node is selected, otherwise the previous node
-	 */
-	protected void navigate(boolean next) {	
-		// Fix for http://dev.eclipse.org/bugs/show_bug.cgi?id=20106
-		internalNavigate(next, false);
-	}
-	
-	//---- private
-	
-	/**
-	 * Selects the next (or previous) node of the current selection.
-	 * If there is no current selection the first (last) node in the tree is selected.
-	 * Wraps around at end or beginning.
-	 * Clients may override. 
-	 *
-	 * @param next if <code>true</code> the next node is selected, otherwise the previous node
-	 * @return <code>true</code> if at end (or beginning)
-	 */
-	private boolean internalNavigate(boolean next, boolean fireOpen) {
-		
-		Control c= getControl();
-		if (!(c instanceof Tree))
-			return false;
-			
-		Tree tree= (Tree) c;
-		TreeItem item= null;
-		TreeItem children[]= tree.getSelection();
-		if (children != null && children.length > 0)
-			item= children[0];
-		if (item == null) {
-			children= tree.getItems();
-			if (children != null && children.length > 0) {
-				item= children[0];
-				if (item != null && item.getItemCount() <= 0) {
-					internalSetSelection(item, fireOpen);				// Fix for http://dev.eclipse.org/bugs/show_bug.cgi?id=20106
-					return false;
-				}
-			}
-		}
-			
-		while (true) {
-			item= findNextPrev(item, next);
-			if (item == null)
-				break;
-			if (item.getItemCount() <= 0)
-				break;
-		}
-		
-		if (item != null) {
-			internalSetSelection(item, fireOpen);	// Fix for http://dev.eclipse.org/bugs/show_bug.cgi?id=20106
-			return false;
-		}
-		return true;
-	}
-
-	private TreeItem findNextPrev(TreeItem item, boolean next) {
-		
-		if (item == null)
-			return null;
-		
-		TreeItem children[]= null;
-
-		if (!next) {
-		
-			TreeItem parent= item.getParentItem();
-			if (parent != null)
-				children= parent.getItems();
-			else
-				children= item.getParent().getItems();
-			
-			if (children != null && children.length > 0) {
-				// goto previous child
-				int index= 0;
-				for (; index < children.length; index++)
-					if (children[index] == item)
-						break;
-				
-				if (index > 0) {
-					
-					item= children[index-1];
-					
-					while (true) {
-						createChildren(item);
-						int n= item.getItemCount();
-						if (n <= 0)
-							break;
-							
-						item.setExpanded(true);
-						item= item.getItems()[n-1];
-					}
-
-					// previous
-					return item;
-				}
-			}
-			
-			// go up
-			return parent;
-					
-		} else {
-			item.setExpanded(true);
-			createChildren(item);
-			
-			if (item.getItemCount() > 0) {
-				// has children: go down
-				children= item.getItems();
-				return children[0];
-			}
-			
-			while (item != null) {
-				children= null;
-				TreeItem parent= item.getParentItem();
-				if (parent != null)
-					children= parent.getItems();
-				else
-					children= item.getParent().getItems();
-				
-				if (children != null && children.length > 0) {
-					// goto next child
-					int index= 0;
-					for (; index < children.length; index++)
-						if (children[index] == item)
-							break;
-					
-					if (index < children.length-1) {
-						// next
-						return children[index+1];
-					}
-				}
-				
-				// go up
-				item= parent;
-			}
-		}
-				
-		return item;
-	}
-	
-	private void internalSetSelection(TreeItem ti, boolean fireOpen) {
-		if (ti != null) {
-			Object data= ti.getData();
-			if (data != null) {
-				// Fix for http://dev.eclipse.org/bugs/show_bug.cgi?id=20106
-				ISelection selection= new StructuredSelection(data);
-				setSelection(selection, true);
-				ISelection currentSelection= getSelection();
-				if (fireOpen && currentSelection != null && selection.equals(currentSelection)) {
-					fireOpen(new OpenEvent(this, selection));
-				}
-			}
-		}
-	}
-			
-	private final boolean isEditable(Object element, boolean left) {
-		if (element instanceof ICompareInput) {
-			ICompareInput diff= (ICompareInput) element;
-			Object side= left ? diff.getLeft() : diff.getRight();
-			if (side == null && diff instanceof IDiffElement) {
-				IDiffContainer container= ((IDiffElement)diff).getParent();
-				if (container instanceof ICompareInput) {
-					ICompareInput parent= (ICompareInput) container;
-					side= left ? parent.getLeft() : parent.getRight();
-				}
-			}
-			if (side instanceof IEditableContent)
-				return ((IEditableContent) side).isEditable();
-		}
-		return false;
-	}
-		
-	private void updateActions() {
-		int leftToRight= 0;
-		int rightToLeft= 0;
-		ISelection selection= getSelection();
-		if (selection instanceof IStructuredSelection) {
-			IStructuredSelection ss= (IStructuredSelection) selection;
-			Iterator e= ss.iterator();
-			while (e.hasNext()) {
-				Object element= e.next();
-				if (element instanceof ICompareInput) {
-					if (isEditable(element, false))
-						leftToRight++;
-					if (isEditable(element, true))
-						rightToLeft++;
-					if (leftToRight > 0 && rightToLeft > 0)
-						break;
-				}
-			}
-			if (fExpandAllAction != null)
-				fExpandAllAction.setEnabled(selection.isEmpty());
-		}
-		if (fCopyLeftToRightAction != null)
-			fCopyLeftToRightAction.setEnabled(leftToRight > 0);
-		if (fCopyRightToLeftAction != null)
-			fCopyRightToLeftAction.setEnabled(rightToLeft > 0);
-	}
-	
-	/*
-	 * Fix for http://dev.eclipse.org/bugs/show_bug.cgi?id=20106
-	 */ 
-	private void internalOpen()  {
-		ISelection selection= getSelection();
-		if (selection != null && !selection.isEmpty()) {
-			fireOpen(new OpenEvent(this, selection));
-		}
-	}
-}
-
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DiffTreeViewerResources.properties b/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DiffTreeViewerResources.properties
deleted file mode 100644
index 1691840..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DiffTreeViewerResources.properties
+++ /dev/null
@@ -1,53 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-# @(#)DiffTreeViewerResources.properties
-#
-# Resource strings for DiffTreeViewer.java
-
-title= Structure Compare
-defaultLabel= <no name>
-
-#####################################################
-# Dummy menu item for empty context menu
-#####################################################
-
-emptyMenuItem= <Empty Menu>
-
-#####################################################
-# Actions
-#####################################################
-
-action.Smart.label=Smart
-action.Smart.tooltip=Guess Similar Elements
-action.Smart.image=smartmode_co.gif
-
-action.ExpandAll.label=Expand All
-action.ExpandAll.tooltip=Expand All Nodes
-
-action.CompareContents.label= Show Content Comparison
-action.CompareContents.tooltip= Show content comparison
-
-action.NextDiff.label=Next
-action.NextDiff.tooltip=Select Next Change
-action.NextDiff.image=next_nav.gif
-
-action.PrevDiff.label=Previous
-action.PrevDiff.tooltip=Select Previous Change
-action.PrevDiff.image=prev_nav.gif
-
-action.TakeLeft.label=Copy Left to Right
-action.TakeLeft.tooltip=Copy Selected Nodes from Left to Right
-action.TakeLeft.image=copycont_r_co.gif
-
-action.TakeRight.label=Copy Right to Left
-action.TakeRight.tooltip=Copy Selected Nodes from Right to Left
-action.TakeRight.image=copycont_l_co.gif
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/Differencer.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/Differencer.java
deleted file mode 100644
index e71152b..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/Differencer.java
+++ /dev/null
@@ -1,522 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.structuremergeviewer;
-
-import java.io.*;
-import java.util.*;
-import java.text.MessageFormat;
-
-import org.eclipse.jface.util.Assert;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.OperationCanceledException;
-
-import org.eclipse.compare.*;
-import org.eclipse.compare.internal.Utilities;
-
-
-/**
- * A generic two-way or three-way differencing engine.
- * <p>
- * The engine is used by calling one of the <code>findDifferences</code> methods and passing
- * in the objects to compare.
- * The engine calls the following methods on the input objects to perform the compare:
- * <UL>
- * <LI><code>getChildren</code>: for enumerating the children of an object (if any),
- * <LI><code>contentsEqual</code>: for comparing the content of leaf objects, that is, objects without children,
- * <LI><code>visit</code>: for every pair of compared object the compare result is passed in.
- * </UL>
- * Clients may use as is, or subclass to provide a custom implementation for the three hooks. 
- * However the default implementation already deals with the typical case:
- * <UL>
- * <LI><code>getChildren</code>: tries to apply the <code>IStructureComparator</code>
- * 	interface to enumerate the children,
- * <LI><code>contentsEqual</code>: tries to apply the <code>IStreamContentAccessor</code> interface
- *	to perform a byte-wise content comparison,
- * <LI><code>visit</code>: creates a <code>DiffNode</code> for any detected difference between the compared objects and
- *	links it under a parent node effectively creating a tree of differences.
- * </UL>
- * The different kind of changes detected by the engine are decoded as follows:
- * In the two-way case only NO_CHANGE, ADDITION, DELETION, and CHANGE are used.
- * In the three-way case these constants are bitwise ORed with one of directional constants
- * LEFT, RIGHT, and CONFLICTING.
- */
-public class Differencer {
-	
-	// The kind of differences.
-	/**
-	 * Difference constant (value 0) indicating no difference.
-	 */
-	public static final int NO_CHANGE= 0;
-	/**
-	 * Difference constant (value 1) indicating one side was added.
-	 */
-	public static final int ADDITION= 1;
-	/**
-	 * Difference constant (value 2) indicating one side was removed.
-	 */
-	public static final int DELETION= 2;
-	/**
-	 * Difference constant (value 3) indicating side changed.
-	 */
-	public static final int CHANGE= 3;
-
-	/**
-	 * Bit mask (value 3) for extracting the kind of difference.
-	 */
-	public static final int CHANGE_TYPE_MASK= 3;
-
-	// The direction of a three-way change.
-	/**
-	 * Three-way change constant (value 4) indicating a change on left side.
-	 */
-	public static final int LEFT= 4;
-	
-	/**
-	 * Three-way change constant (value 8) indicating a change on right side.
-	 */
-	public static final int RIGHT= 8;
-	
-	/**
-	 * Three-way change constant (value 12) indicating a change on left and
-	 * right sides.
-	 */
-	public static final int CONFLICTING= 12;
-
-	/**
-	 * Bit mask (value 12) for extracting the direction of a three-way change.
-	 */
-	public static final int DIRECTION_MASK= 12;
-
-	/**
-	 * Constant (value 16) indicating a change on left and 
-	 * right side (with respect to ancestor) but left and right are identical.
-	 */
-	public static final int PSEUDO_CONFLICT= 16;
-
-	
-	static class Node {
-		List fChildren;
-		int fCode;
-		Object fAncestor;
-		Object fLeft;
-		Object fRight;
-		
-		Node() {
-		}
-		Node(Node parent, Object ancestor, Object left, Object right) {
-			parent.add(this);
-			fAncestor= ancestor;
-			fLeft= left;
-			fRight= right;
-		}
-		void add(Node child) {
-			if (fChildren == null)
-				fChildren= new ArrayList();
-			fChildren.add(child);
-		}
-		Object visit(Differencer d, Object parent, int level) {
-			if (fCode == NO_CHANGE)
-				return null;
-			//dump(level);
-			Object data= d.visit(parent, fCode, fAncestor, fLeft, fRight);
-			if (fChildren != null) {
-				Iterator i= fChildren.iterator();
-				while (i.hasNext()) {
-					Node n= (Node) i.next();
-					n.visit(d, data, level+1);
-				}
-			}
-			return data;
-		}
-//		private void dump(int level) {
-//			String name= null;
-//			if (fAncestor instanceof ITypedElement)
-//				name= ((ITypedElement)fAncestor).getName();
-//			if (name == null && fLeft instanceof ITypedElement)
-//				name= ((ITypedElement)fLeft).getName();
-//			if (name == null && fRight instanceof ITypedElement)
-//				name= ((ITypedElement)fRight).getName();
-//			if (name == null)
-//				name= "???"; //$NON-NLS-1$
-//			
-//			for (int i= 0; i < level; i++)
-//				System.out.print("  "); //$NON-NLS-1$
-//			
-//			System.out.println(getDiffType(fCode) + name);
-//		}
-
-//		private String getDiffType(int code) {
-//			String dir= " "; //$NON-NLS-1$
-//			switch (code & DIRECTION_MASK) {
-//			case LEFT:
-//				dir= ">"; //$NON-NLS-1$
-//				break;
-//			case RIGHT:
-//				dir= "<"; //$NON-NLS-1$
-//				break;
-//			case CONFLICTING:
-//				dir= "!"; //$NON-NLS-1$
-//				break;
-//			}
-//			String change= "="; //$NON-NLS-1$
-//			switch (code & CHANGE_TYPE_MASK) {
-//			case ADDITION:
-//				change= "+"; //$NON-NLS-1$
-//				break;
-//			case DELETION:
-//				change= "-"; //$NON-NLS-1$
-//				break;
-//			case CHANGE:
-//				change= "#"; //$NON-NLS-1$
-//				break;
-//			}
-//			return dir + change + " "; //$NON-NLS-1$
-//		}
-	} 
-	
-	/**
-	 * Creates a new differencing engine.
-	 */
-	public Differencer() {
-	}
-	
-	/**
-	 * Starts the differencing engine on the three input objects. If threeWay is <code>true</code> a 
-	 * three-way comparison is performed, otherwise a two-way compare (in the latter case the ancestor argument is ignored).
-	 * The progress monitor is passed to the method <code>updateProgress</code> which is called for every node or
-	 * leaf compare. The method returns the object that was returned from the top-most call to method <code>visit</code>.
-	 * At most two of the ancestor, left, and right parameters are allowed to be <code>null</code>.
-	 *
-	 * @param threeWay if <code>true</code> a three-way comparison is performed, otherwise a two-way compare
-	 * @param pm a progress monitor which is passed to method <code>updateProgress</code>
-	 * @param data a client data that is passed to the top-level call to <code>visit</code>
-	 * @param ancestor the ancestor object of the compare (may be <code>null</code>)
-	 * @param left the left object of the compare 
-	 * @param right the right object of the compare
-	 * @return the object returned from the top most call to method <code>visit</code>,
-	 *   possibly <code>null</code>
-	 */
-	public Object findDifferences(boolean threeWay, IProgressMonitor pm, Object data, Object ancestor, Object left, Object right) {
-		
-		Node root= new Node();
-		
-		int code= traverse(threeWay, root, pm, threeWay ? ancestor : null, left, right);
-				
-		if (code != NO_CHANGE) {
-			List l= root.fChildren;
-			if (l.size() > 0) {
-				Node first= (Node)l.get(0);
-				return first.visit(this, data, 0);
-			}
-		}
-		return null;
-	}
-	
-	/**
-	 * Traverse tree in postorder.
-	 */
-	private int traverse(boolean threeWay, Node parent, IProgressMonitor pm, Object ancestor, Object left, Object right) {
-				
-		Object[] ancestorChildren= getChildren(ancestor);
-		Object[] rightChildren= getChildren(right);
-		Object[] leftChildren= getChildren(left);
-		
-		int code= NO_CHANGE;
-		
-		Node node= new Node(parent, ancestor, left, right);
-			
-		boolean content= true;	// we reset this if we have at least one child
-		
-		if (((threeWay && ancestorChildren != null) || !threeWay)
-					 && rightChildren != null && leftChildren != null) {
-			// we only recurse down if no leg is null
-			// a node
-			
-			Set allSet= new HashSet(20);
-			Map ancestorSet= null;
-			Map rightSet= null;
-			Map leftSet= null;
-						
-			if (ancestorChildren != null) {
-				ancestorSet= new HashMap(10);
-				for (int i= 0; i < ancestorChildren.length; i++) {
-					Object ancestorChild= ancestorChildren[i];
-					ancestorSet.put(ancestorChild, ancestorChild);
-					allSet.add(ancestorChild);
-				}
-			}
-
-			if (rightChildren != null) {
-				rightSet= new HashMap(10);
-				for (int i= 0; i < rightChildren.length; i++) {
-					Object rightChild= rightChildren[i];
-					rightSet.put(rightChild, rightChild);
-					allSet.add(rightChild);
-				}
-			}
-
-			if (leftChildren != null) {
-				leftSet= new HashMap(10);
-				for (int i= 0; i < leftChildren.length; i++) {
-					Object leftChild= leftChildren[i];
-					leftSet.put(leftChild, leftChild);
-					allSet.add(leftChild);
-				}
-			}
-						
-			Iterator e= allSet.iterator();
-			while (e.hasNext()) {
-				Object keyChild= e.next();
-				
-				content= false;
-				
-				if (pm != null) {
-					
-					if (pm.isCanceled())
-						throw new OperationCanceledException();
-						
-					updateProgress(pm, keyChild);
-				}
-				
-				Object ancestorChild= ancestorSet != null ? ancestorSet.get(keyChild) : null;
-				Object leftChild= leftSet != null ? leftSet.get(keyChild) : null;
-				Object rightChild= rightSet != null ? rightSet.get(keyChild) : null;
-				
-				int c= traverse(threeWay, node, pm, ancestorChild, leftChild, rightChild);
-			
-				if ((c & CHANGE_TYPE_MASK) != NO_CHANGE) {
-					code|= CHANGE;	// deletions and additions of child result in a change of the container
-					code|= (c & DIRECTION_MASK);	// incoming & outgoing are just ored
-				}
-			}
-		}
-
-		if (content)			// a leaf
-			code= compare(threeWay, ancestor, left, right);
-								
-		node.fCode= code;
-							
-		return code;
-	}
-	
-	/**
-	 * Called for every node or leaf comparison.
-	 * The differencing engine passes in the input objects of the compare and the result of the compare.
-	 * The data object is the value returned from a call to the <code>visit</code> method on the parent input.
-	 * It can be considered the "parent" reference and is useful when building a tree.
-	 * <p>
-	 * The <code>Differencer</code> implementation returns a new
-	 * <code>DiffNode</code> which is initialized with the corresponding values.
-	 * Subclasses may override.
-	 *
-	 * @param data object returned from parent call to <code>visit</code>,
-	 *   possibly <code>null</code>
-	 * @param result the result of the compare operation performed on the three inputs
-	 * @param ancestor the compare ancestor of the left and right inputs
-	 * @param left the left input to the compare
-	 * @param right the right input to the compare
-	 * @return the result, possibly <code>null</code>
-	 */
-	protected Object visit(Object data, int result, Object ancestor, Object left, Object right) {
-		return new DiffNode((IDiffContainer) data, result, (ITypedElement)ancestor, (ITypedElement)left, (ITypedElement)right);
-	}
-	
-	/**
-	 * Performs a 2-way or 3-way compare of the given leaf elements and returns an integer
-	 * describing the kind of difference.
-	 */
-	private int compare(boolean threeway, Object ancestor, Object left, Object right) {
-		
-		int description= NO_CHANGE;
-		
-		if (threeway) {
-			if (ancestor == null) {
-				if (left == null) {
-					if (right == null) {
-						Assert.isTrue(false);
-						// shouldn't happen
-					} else {
-						description= RIGHT | ADDITION;
-					}
-				} else {
-					if (right == null) {
-						description= LEFT | ADDITION;
-					} else {
-						description= CONFLICTING | ADDITION;
-						if (contentsEqual(left, right))
-							description|= PSEUDO_CONFLICT;
-					}
-				}
-			} else {
-				if (left == null) {
-					if (right == null) {
-						description= CONFLICTING | DELETION | PSEUDO_CONFLICT;
-					} else {
-						if (contentsEqual(ancestor, right))		
-							description= LEFT | DELETION;
-						else
-							description= CONFLICTING | CHANGE;	
-					}
-				} else {
-					if (right == null) {
-						if (contentsEqual(ancestor, left))	
-							description= RIGHT | DELETION;
-						else
-							description= CONFLICTING | CHANGE;	
-					} else {
-						boolean ay= contentsEqual(ancestor, left);
-						boolean am= contentsEqual(ancestor, right);
-						
-						if (ay && am)
-							;
-						else if (ay && !am) {
-							description= RIGHT | CHANGE;
-						} else if (!ay && am) {
-							description= LEFT | CHANGE;
-						} else {
-							description= CONFLICTING | CHANGE;
-							if (contentsEqual(left, right))
-								description|= PSEUDO_CONFLICT;
-						}
-					}
-				}
-			}
-		} else {	// two way compare ignores ancestor
-			if (left == null) {
-				if (right == null) {
-					Assert.isTrue(false);
-					// shouldn't happen
-				} else {
-					description= ADDITION;
-				}
-			} else {
-				if (right == null) {
-					description= DELETION;
-				} else {
-					if (! contentsEqual(left, right))
-						description= CHANGE;
-				}
-			}
-		}
-							
-		return description;
-	}
-		
-	/**
-	 * Performs a content compare on the two given inputs.
-	 * <p>
-	 * The <code>Differencer</code> implementation
-	 * returns <code>true</code> if both inputs implement <code>IStreamContentAccessor</code>
-	 * and their byte contents is identical. Subclasses may override to implement 
-	 * a different content compare on the given inputs.
-	 * </p>
-	 *
-	 * @param input1 first input to contents compare
-	 * @param input2 second input to contents compare
-	 * @return <code>true</code> if content is equal
-	 */
-	protected boolean contentsEqual(Object input1, Object input2) {
-		
-		if (input1 == input2)
-			return true;
-			
-		InputStream is1= getStream(input1);
-		InputStream is2= getStream(input2);
-		
-		if (is1 == null && is2 == null)	// no byte contents
-			return true;
-		
-		try {
-			if (is1 == null || is2 == null)	// only one has contents
-				return false;
-			
-			while (true) {
-				int c1= is1.read();
-				int c2= is2.read();
-				if (c1 == -1 && c2 == -1)
-					return true;
-				if (c1 != c2)
-					break;
-				
-			}
-		} catch (IOException ex) {
-		} finally {
-			if (is1 != null) {
-				try {
-					is1.close();
-				} catch(IOException ex) {
-				}
-			}
-			if (is2 != null) {
-				try {
-					is2.close();
-				} catch(IOException ex) {
-				}
-			}
-		}
-		return false;
-	}
-	
-	/**
-	 * Tries to return an InputStream for the given object.
-	 * Returns <code>null</code> if the object not an IStreamContentAccessor
-	 * or an error occured.
-	 */
-	private InputStream getStream(Object o) {
-		if (o instanceof IStreamContentAccessor) {
-			try {
-				return ((IStreamContentAccessor)o).getContents();
-			} catch(CoreException ex) {
-			}
-		}
-		return null;
-	}
-	
-	/**
-	 * Returns the children of the given input or <code>null</code> if there are no children.
-	 * <p>
-	 * The <code>Differencer</code> implementation checks whether the input 
-	 * implements the <code>IStructureComparator</code> interface. If yes it is used
-	 * to return an array containing all children. Otherwise <code>null</code> is returned.
-	 * Subclasses may override to implement a different strategy to enumerate children.
-	 * </p>
-	 *
-	 * @param input the object for which to return children
-	 */
-	protected Object[] getChildren(Object input) {
-		if (input instanceof IStructureComparator)
-			return ((IStructureComparator)input).getChildren();
-		return null;
-	}
-	
-	/**
-	 * Called for every leaf or node compare to update progress information.
-	 * <p>
-	 * The <code>Differencer</code> implementation shows the name of the input object
-	 * as a subtask. Subclasses may override.
-	 * </p>
-	 *
-	 * @param progressMonitor the progress monitor for reporting progress
-	 * @param node the currently processed non-<code>null</code> node
-	 */
-	protected void updateProgress(IProgressMonitor progressMonitor, Object node) {
-		if (node instanceof ITypedElement) {
-			String name= ((ITypedElement)node).getName();
-			String fmt= Utilities.getString("Differencer.progressFormat"); //$NON-NLS-1$
-			String msg= MessageFormat.format(fmt, new String[] { name });
-			progressMonitor.subTask(msg);
-			//progressMonitor.worked(1);
-		}
-	}
-}
-
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DocumentRangeNode.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DocumentRangeNode.java
deleted file mode 100644
index 20044c7..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DocumentRangeNode.java
+++ /dev/null
@@ -1,342 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.structuremergeviewer;
-
-import java.io.ByteArrayInputStream;
-import java.io.InputStream;
-import java.util.ArrayList;
-
-import org.eclipse.jface.text.*;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.compare.*;
-import org.eclipse.compare.internal.Utilities;
-import org.eclipse.compare.contentmergeviewer.IDocumentRange;
-
-
-/**
- * A document range node represents a structural element
- * when performing a structure compare of documents.
- * <code>DocumentRangeNodes</code> are created while parsing the document and represent
- * a semantic entity (e.g. a Java class or method).
- * As a consequence of the parsing a <code>DocumentRangeNode</code> maps to a range
- * of characters in the document.
- * <p>
- * Since a <code>DocumentRangeNode</code> implements the <code>IStructureComparator</code>
- * and <code>IStreamContentAccessor</code> interfaces it can be used as input to the
- * differencing engine. This makes it possible to perform
- * a structural diff on a document and have the nodes and leaves of the compare easily map
- * to character ranges within the document.
- * <p>
- * Subclasses may add additional state collected while parsing the document.
- * </p> 
- * @see Differencer
- */
-public class DocumentRangeNode
-		implements IDocumentRange, IStructureComparator, IEditableContent, IStreamContentAccessor {
-
-	private static final boolean POS_UPDATE= true;
-		
-	private IDocument fBaseDocument;
-	private Position fRange; // the range in the base document
-	private int fTypeCode;
-	private String fID;
-	private Position fAppendPosition; // a position where to insert a child textually
-	private ArrayList fChildren;
-
-	/**
-	 * Creates a new <code>DocumentRangeNode</code> for the given range within the specified
-	 * document. The <code>typeCode</code> is uninterpreted client data. The ID is used when comparing
-	 * two nodes with each other: i.e. the differencing engine performs a content compare 
-	 * on two nodes if their IDs are equal.
-	 *
-	 * @param typeCode a type code for this node
-	 * @param id an identifier for this node
-	 * @param document document on which this node is based on
-	 * @param start start position of range within document
-	 * @param length length of range
-	 */
-	public DocumentRangeNode(int typeCode, String id, IDocument document, int start, int length) {
-		
-		fTypeCode= typeCode;
-		fID= id;
-		
-		fBaseDocument= document;
-		fBaseDocument.addPositionCategory(RANGE_CATEGORY);
-		fRange= new Position(start, length);
-		
-		if (POS_UPDATE) {
-			try {
-				document.addPosition(RANGE_CATEGORY, fRange);
-			} catch (BadPositionCategoryException ex) {
-			} catch (BadLocationException ex) {
-			}
-		}
-	}
-
-	/* (non Javadoc)
-	 * see IDocumentRange.getDocument
-	 */
-	public IDocument getDocument() {
-		return fBaseDocument;
-	}
-	
-	/* (non Javadoc)
-	 * see IDocumentRange.getRange
-	 */
-	public Position getRange() {
-		return fRange;
-	}
-	
-	/**
-	 * Returns the type code of this node.
-	 * The type code is uninterpreted client data which can be set in the constructor.
-	 *
-	 * @return the type code of this node
-	 */
-	public int getTypeCode() {
-		return fTypeCode;
-	}
-	
-	/**
-	 * Returns this node's id.
-	 * It is used in <code>equals</code> and <code>hashcode</code>.
-	 *
-	 * @return the node's id
-	 */
-	public String getId() {
-		return fID;
-	}
-
-	/**
-	 * Sets this node's id.
-	 * It is used in <code>equals</code> and <code>hashcode</code>.
-	 *
-	 * @param id the new id for this node
-	 */
-	public void setId(String id) {
-		fID= id;
-	}
-
-	/**
-	 * Adds the given node as a child.
-	 *
-	 * @param node the node to add as a child
-	 */
-	public void addChild(DocumentRangeNode node) {
-		if (fChildren == null)
-			fChildren= new ArrayList();
-		fChildren.add(node);
-	}
-
-	/* (non Javadoc)
-	 * see IStructureComparator.getChildren
-	 */
-	public Object[] getChildren() {
-		if (fChildren != null)
-			return fChildren.toArray(); 
-		return new Object[0];
-	}
-
-	/**
-	 * Sets the length of the range of this node.
-	 *
-	 * @param length the length of the range
-	 */
-	public void setLength(int length) {
-		getRange().setLength(length);
-	}
-
-	/**
-	 * Sets a position within the document range that can be used to (legally) insert
-	 * text without breaking the syntax of the document.
-	 * <p>
-	 * E.g. when parsing a Java document the "append position" of a <code>DocumentRangeNode</code>
-	 * representating a Java class could be the character position just before the closing bracket.
-	 * Inserting the text of a new method there would not disturb the syntax of the class.
-	 *
-	 * @param pos the character position within the underlying document where text can be legally inserted
-	 */
-	public void setAppendPosition(int pos) {
-		if (POS_UPDATE) {
-			fBaseDocument.removePosition(fAppendPosition);
-			try {
-				Position p= new Position(pos);
-				fBaseDocument.addPosition(RANGE_CATEGORY, p);
-				fAppendPosition= p;
-			} catch (BadPositionCategoryException ex) {
-			} catch (BadLocationException ex) {
-				// ignore
-			}
-		} else {
-			fAppendPosition= new Position(pos);
-		}
-	}
-
-	/**
-	 * Returns the position that has been set with <code>setAppendPosition</code>.
-	 * If <code>setAppendPosition</code> hasn't been called, the position after the last character
-	 * of this range is returned.
-	 *
-	 * @return a position where text can be legally inserted
-	 */
-	public Position getAppendPosition() {
-		if (fAppendPosition == null) {
-			if (POS_UPDATE) {
-				try {
-					Position p= new Position(fBaseDocument.getLength());
-					fBaseDocument.addPosition(RANGE_CATEGORY, p);
-					fAppendPosition= p;
-				} catch (BadPositionCategoryException ex) {
-				} catch (BadLocationException ex) {
-					// ignore
-				}
-			} else {
-				fAppendPosition= new Position(fBaseDocument.getLength());
-			}
-		}
-		return fAppendPosition;
-	}
-
-	/**
-	 * Implementation based on <code>getID</code>.
-	 */
-	public boolean equals(Object other) {
-		if (other != null && other.getClass() == getClass()) {
-			DocumentRangeNode tn= (DocumentRangeNode) other;
-			return fTypeCode == tn.fTypeCode && fID.equals(tn.fID);
-		}
-		return super.equals(other);
-	}
-
-	/**
-	 * Implementation based on <code>getID</code>.
-	 */
-	public int hashCode() {
-		return fID.hashCode();
-	}
-
-	/**
-	 * Find corresponding position
-	 */
-	private Position findCorrespondingPosition(DocumentRangeNode otherParent, DocumentRangeNode child) {
-
-		// we try to find a predecessor of left Node which exists on the right side
-
-		if (child != null && fChildren != null) {
-			int ix= otherParent.fChildren.indexOf(child);
-			if (ix >= 0) {
-
-				for (int i= ix - 1; i >= 0; i--) {
-					DocumentRangeNode c1= (DocumentRangeNode) otherParent.fChildren.get(i);
-					int i2= fChildren.indexOf(c1);
-					if (i2 >= 0) {
-						DocumentRangeNode c= (DocumentRangeNode) fChildren.get(i2);
-						//System.out.println("  found corresponding: " + i2 + " " + c);
-						Position p= c.fRange;
-
-						//try {
-						Position po= new Position(p.getOffset() + p.getLength() + 1, 0);
-						//c.fBaseDocument.addPosition(RANGE_CATEGORY, po);
-						return po;
-						//} catch (BadLocationException ex) {
-						//}
-						//break;
-					}
-				}
-
-				for (int i= ix; i < otherParent.fChildren.size(); i++) {
-					DocumentRangeNode c1= (DocumentRangeNode) otherParent.fChildren.get(i);
-					int i2= fChildren.indexOf(c1);
-					if (i2 >= 0) {
-						DocumentRangeNode c= (DocumentRangeNode) fChildren.get(i2);
-						//System.out.println("  found corresponding: " + i2 + " " + c);
-						Position p= c.fRange;
-						//try {
-						Position po= new Position(p.getOffset(), 0);
-						//c.fBaseDocument.addPosition(RANGE_CATEGORY, po);
-						return po;
-						//} catch (BadLocationException ex) {
-						//}
-						//break;
-					}
-				}
-
-			}
-		}
-		return getAppendPosition();
-	}
-
-	private void add(String s, DocumentRangeNode parent, DocumentRangeNode child) {
-
-		Position p= findCorrespondingPosition(parent, child);
-		if (p != null) {
-			try {
-				fBaseDocument.replace(p.getOffset(), p.getLength(), s);
-			} catch (BadLocationException ex) {
-				// ignore
-			}
-		}
-	}
-	
-	/* (non Javadoc)
-	 * see IStreamContentAccessor.getContents
-	 */
-	public InputStream getContents() {
-		String s;
-		try {
-			s= fBaseDocument.get(fRange.getOffset(), fRange.getLength());
-		} catch (BadLocationException ex) {
-			s= ""; //$NON-NLS-1$
-		}
-		return new ByteArrayInputStream(Utilities.getBytes(s));
-	}
-
-	/* (non Javadoc)
-	 * see IEditableContent.isEditable
-	 */
-	public boolean isEditable() {
-		return true;
-	}
-		
-	/* (non Javadoc)
-	 * see IEditableContent.replace
-	 */
-	public ITypedElement replace(ITypedElement child, ITypedElement other) {
-
-		DocumentRangeNode src= null;
-		String srcContents= ""; //$NON-NLS-1$
-		
-		if (other != null) {
-			src= (DocumentRangeNode) child;
-			
-			if (other instanceof IStreamContentAccessor) {
-				try {
-					InputStream is= ((IStreamContentAccessor)other).getContents();
-					srcContents= Utilities.readString(is);
-				} catch(CoreException ex) {
-				}
-			}
-		}
-
-		if (child == null) // no destination: we have to add the contents into the parent
-			add(srcContents, null, src);
-
-		return child;
-	}
-	
-	/* (non Javadoc)
-	 * see IEditableContent.setContent
-	 */
-	public void setContent(byte[] content) {
-	}
-}
-
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/ICompareInput.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/ICompareInput.java
deleted file mode 100644
index 3994770..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/ICompareInput.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.structuremergeviewer;
-
-import org.eclipse.compare.ITypedElement;
-import org.eclipse.swt.graphics.Image;
-
-/**
- * Interface for objects used as input to a two-way or three-way compare viewer.
- * It defines API for accessing the three sides for the compare,
- * and a name and image which is used when displaying the three way input
- * in the UI, for example, in a title bar.
- * <p>
- * Note: at most two sides of an <code>ICompareInput</code> can be <code>null</code>,
- * (as it is normal for additions or deletions) but not all three.
- * <p>
- * <code>ICompareInput</code> provides methods for registering
- * <code>ICompareInputChangeListener</code>s
- * that get informed if one (or more)
- * of the three sides of an <code>ICompareInput</code> object changes its value.
- * <p>
- * For example when accepting an incoming addition
- * the (non-<code>null</code>) left side of an <code>ICompareInput</code>
- * is copied to the right side by means of method <code>copy</code>.
- * This should trigger a call to <code>compareInputChanged</code> of registered
- * <code>ICompareInputChangeListener</code>s. 
- * <p>
- * Clients can implement this interface, or use the convenience implementation 
- * <code>DiffNode</code>.
- * </p>
- * 
- * @see StructureDiffViewer
- * @see org.eclipse.compare.contentmergeviewer.ContentMergeViewer
- * @see DiffNode
- */
-public interface ICompareInput {
-
-	/**
-	 * Returns name of input.
-	 * This name is displayed when this input is shown in a viewer.
-	 * In many cases this name is the name of one of the non-<code>null</code> sides or a combination
-	 * thereof.
-	 *
-	 * @return name of input
-	 */
-	String getName();
-	
-	/**
-	 * Returns an image representing this input.
-	 * This image is typically displayed when this input is shown in a viewer.
-	 * In many cases this image is the image of one of the non-<code>null</code> sides.
-	 *
-	 * @return image representing this input, or <code>null</code> if no icon should be shown
-	 */
-	Image getImage();
-
-	/**
-	 * Returns the kind of difference between the
-	 * three sides ancestor, left and right.
-	 * This field is only meaningful if the <code>ICompareInput</code>
-	 * is the result of another compare. In this case it is used
-	 * together with <code>getImage</code> to compose a icon
-	 * which reflects the kind of difference between the two or three elements.
-	 *
-	 * @return kind of difference (see <code>Differencer</code>)
-	 */
-	int getKind();
-	
-	/**
-	 * Returns the ancestor side of this input.
-	 * Returns <code>null</code> if this input has no ancestor
-	 * or in the two-way compare case.
-	 *
-	 * @return the ancestor of this input, or <code>null</code>
-	 */
-	ITypedElement getAncestor();
-	
-	/**
-	 * Returns the left side of this input.
-	 * Returns <code>null</code> if there is no left side (deletion or addition).
-	 *
-	 * @return the left side of this input, or <code>null</code>
-	 */
-	ITypedElement getLeft();
-	
-	/**
-	 * Returns the right side of this input.
-	 * Returns <code>null</code> if there is no right side (deletion or addition).
-	 *
-	 * @return the right side of this input, or <code>null</code>
-	 */
-	ITypedElement getRight();
-	
-	/**
-	 * Registers the given listener for notification.
-	 * If the identical listener is already registered the method has no effect.
-	 *
-	 * @param listener the listener to register for changes of this input
-	 */
-	void addCompareInputChangeListener(ICompareInputChangeListener listener);
-	
-	/**
-	 * Unregisters the given listener.
-	 * If the identical listener is not registered the method has no effect.
-	 *
-	 * @param listener the listener to unregister
-	 */
-	void removeCompareInputChangeListener(ICompareInputChangeListener listener);
-	
-	/**
-	 * Copy one side (source) to the other side (destination) depending on the 
-	 * value of <code>leftToRight</code>. This method is called from
-	 * a merge viewer if a corresponding action ("take left" or "take right")
-	 * has been pressed.
-	 * <p>
-	 * The implementation should handle the following cases:
-	 * <UL>
-	 * <LI>
-	 * if the source side is <code>null</code> the destination must be deleted,
-	 * <LI>
-	 * if the destination is <code>null</code> the destination must be created
-	 * and filled with the contents from the source,
-	 * <LI>
-	 * if both sides are non-<code>null</code> the contents of source must be copied to destination.
-	 * </UL>
-	 * In addition the implementation should send out notification to the registered
-	 * <code>ICompareInputChangeListener</code>.
-	 * 
-	 * @param leftToRight if <code>true</code> the left side is copied to the right side.
-	 * If <code>false</code> the right side is copied to the left side
-	 */
-	void copy(boolean leftToRight);
-}
-
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/ICompareInputChangeListener.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/ICompareInputChangeListener.java
deleted file mode 100644
index 4cb79df..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/ICompareInputChangeListener.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.structuremergeviewer;
-
-/**
- * Listener that gets informed if one (or more)
- * of the three sides of an <code>ICompareInput</code> object changes its value.
- * <p>
- * For example when accepting an incoming addition
- * the (non-null) left side of an <code>ICompareInput</code>
- * is copied to the right side (which was <code>null</code>).
- * This triggers a call to <code>compareInputChanged</code> of registered
- * <code>ICompareInputChangeListener</code>. 
- * <p>
- * Note however, that listener are not informed if the content of one of the sides changes.
- * <p>
- * Clients may implement this interface. It is also implemented by viewers that take 
- * an <code>ICompareInput</code> as input.
- * </p>
- */
-public interface ICompareInputChangeListener {
-	
-	/**
-	 * Called whenever the value (not the content) of one or more of the three sides 
- 	 * of a <code>ICompareInput</code> has changed.
-	 *
-	 * @param source the <code>ICompareInput</code> that has changed
-	 */
-	void compareInputChanged(ICompareInput source);
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/IDiffContainer.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/IDiffContainer.java
deleted file mode 100644
index bda0662..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/IDiffContainer.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.structuremergeviewer;
-
-/**
- * <code>IDiffContainer</code> is a <code>IDiffElement</code> with children.
- * <p>
- * <code>IDiffContainer</code> are the inner nodes displayed
- * by the <code>DiffTreeViewer</code>.
- * <code>IDiffContainer</code> are typically created as the result of performing
- * a compare with the <code>Differencer</code>.
- * <p>
- * Clients may implement this interface, or use one of the standard implementations,
- * <code>DiffContainer</code> or <code>DiffNode</code>.
- *
- * @see Differencer
- * @see DiffTreeViewer
- */
-public interface IDiffContainer extends IDiffElement {
-
-	/**
-	 * Returns whether this container has at least one child.
-	 * In some cases this methods avoids having to call the
-	 * potential more costly <code>getChildren</code> method.
-	 * 
-	 * @return <code>true</code> if this container has at least one child 
-	 */
-	boolean hasChildren();
-
-	/**
-	 * Returns the children of this container.
-	 * If this container has no children an empty array is returned (not <code>null</code>).
-	 * 
-	 * @return the children of this container as an array
-	 */
-	IDiffElement[] getChildren();
-
-	/**
-	 * Adds the given child to this container.
-	 * If the child is already contained in this container, this method has no effect.
-	 *
-	 * @param child the child to be added to this container
-	 */
-	void add(IDiffElement child);
-	
-	/**
-	 * Removes the given child from this container.
-	 * If the container becomes empty it is removed from its container.
-	 * If the child is not contained in this container, this method has no effect.
-	 *
-	 * @param child the child to be removed from this container
-	 */
-	void removeToRoot(IDiffElement child);
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/IDiffElement.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/IDiffElement.java
deleted file mode 100644
index f70b7eb..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/IDiffElement.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.structuremergeviewer;
-
-import org.eclipse.compare.ITypedElement;
-
-/**
- * An <code>IDiffElement</code> is used in the <code>DiffTreeViewer</code>
- * to display the kind of change detected as the result of a two-way or three-way compare.
- * <p>
- * The base interface <code>ITypedElement</code> provides a name, a type, and an image.
- * <code>IDiffElement</code> adds API for maintaining a parent relationship.
- * <p>
- * <code>DiffTreeViewer</code> works on a tree of <code>IDiffElements</code>.
- * Leaf elements must implement the
- * <code>IDiffElement</code> interface, inner nodes the <code>IDiffContainer</code> interface.
- * <p>
- * <code>IDiffElement</code>s are typically created as the result of performing
- * a compare with the <code>Differencer</code>.
- * <p>
- * Clients may implement this interface, or use one of the standard implementations,
- * <code>DiffElement</code>, <code>DiffContainer</code>, or <code>DiffNode</code>.
- *
- * @see DiffTreeViewer
- * @see DiffElement
- * @see DiffContainer
- * @see DiffNode
- */
-public interface IDiffElement extends ITypedElement {
-	
-	/**
-	 * Returns the kind of difference as defined in <code>Differencer</code>.
-	 *
-	 * @return the kind of difference as defined in <code>Differencer</code>
-	 */
-	int getKind();
-
-	/**
-	 * Returns the parent of this element.
-	 * If the object is the root of a hierarchy <code>null</code> is returned.
-	 *
-	 * @return the parent of this element, or <code>null</code> if the element has no parent
-	 */
-	IDiffContainer getParent();
-
-	/**
-	 * Sets the parent of this element.
-	 *
-	 * @param parent the new parent of this element, or <code>null</code> if this
-	 *   element is to have no parent
-	 */
-	void setParent(IDiffContainer parent);
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/IStructureComparator.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/IStructureComparator.java
deleted file mode 100644
index 4a07c3f..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/IStructureComparator.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.structuremergeviewer;
-
-/**
- * Interface used to compare hierarchical structures.
- * It is used by the differencing engine.
- * <p>
- * Clients typically implement this interface in an adaptor class which 
- * wrappers the objects to be compared.
- *
- * @see org.eclipse.compare.ResourceNode
- * @see Differencer
- */
-public interface IStructureComparator {
-
-	/**
-	 * Returns an iterator for all children of this object or <code>null</code>
-	 * if there are no children.
-	 *
-	 * @return an array with all children of this object, or an empty array if there are no children
-	 */
-	Object[] getChildren();
-
-	/**
-	 * Returns whether some other object is "equal to" this one
-	 * with respect to a structural comparison. For example, when comparing
-	 * Java class methods, <code>equals</code> would return <code>true</code>
-	 * if two methods have the same signature (the argument names and the 
-	 * method body might differ).
-	 *
-	 * @param other the reference object with which to compare
-	 * @return <code>true</code> if this object is the same as the other argument; <code>false</code> otherwise
-	 * @see java.lang.Object#equals
-	 */
-	boolean equals(Object other);
-}
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/IStructureCreator.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/IStructureCreator.java
deleted file mode 100644
index e75dec7..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/IStructureCreator.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.structuremergeviewer;
-
-/**
- * Interface used to create a hierarchical structure of
- * <code>IStructureComparator</code>s for a given input object.
- * In addition, it provides methods for locating a path in the hierarchical structure
- * and to map a node of this structure back to the corresponding input object.
- * <p>
- * Structure creators are used in the following contexts:
- * <ul>
- * <li>
- * the <code>StructureDiffViewer</code> uses an <code>IStructureCreator</code> to
- * build two (or three) tree structures of its input elements (method <code>getStructure</code>).
- * These trees are then compared with each other by means of the differencing engine and displayed
- * with the <code>DiffTreeViewer</code>,
- * </li>
- * <li>
- * the <code>ReplaceWithEditionDialog</code> uses an <code>IStructureCreator</code>
- * to map a path back to a range of characters in the textual representation.
- * </li>
- * </ul>
- * A <code>IStructureCreator</code> provides methods for rewriting the tree produced by the differencing
- * engine to support "smart" structural differencing. E.g. certain patterns of pairs of "addition"
- * and "deletion" nodes can be detected as renames and merged into a single node.
- * </p>
- * <p>
- * Clients may implement this interface; there is no standard implementation.
- * </p>
- *
- * @see StructureDiffViewer
- * @see org.eclipse.compare.EditionSelectionDialog
- * @see Differencer
- */
-public interface IStructureCreator {
-
-	/**
-	 * Returns a descriptive name which can be used in the UI of the <code>StructureDiffViewer</code>.
-	 *
-	 * @return a descriptive name for this <code>IStructureCreator</code>
-	 */
-	String getName();
-
-	/**
-	 * Creates a tree structure consisting of <code>IStructureComparator</code>s
-	 * from the given object and returns its root object.
-	 * Implementing this method typically involves parsing the input object.
-	 * In case of an error (e.g. a parsing error) the value <code>null</code> is returned.
-	 *
-	 * @param input the object from which to create the tree of <code>IStructureComparator</code>
-	 * @return the root node of the structure or <code>null</code> in case of error
-	 */
-	IStructureComparator getStructure(Object input);
-
-	/**
-	 * Creates the single node specified by path from the given input object.
-	 * In case of an error (e.g. a parsing error) the value <code>null</code> is returned.
-	 * This method is similar to <code>getStructure</code> but in
-	 * contrast to <code>getStructure</code> only a single node without any children must be returned.
-	 * This method is used in the <code>ReplaceWithEditionDialog</code> to locate a sub element
-	 * (e.g. a method) within an input object (e.g. a file containing source code).
-	 * <p>
-	 * One (not optimized) approach to implement this method is calling <code>getStructure(input)</code>
-	 * to build the full tree, and then finding that node within the tree that is specified
-	 * by <code>path</code>.
-	 * <p>
-	 * The syntax of <code>path</code> is not specified, because it is treated by the compare subsystem
-	 * as an opaque entity and is not further interpreted. Clients using this functionality
-	 * will pass a value of <code>path</code> to the <code>selectEdition</code>
-	 * method of <code>ReplaceWithEditionDialog</code> and will receive this value unchanged
-	 * as an argument to <code>locate</code>.
-	 *
-	 * @param path specifies a sub object within the input object
-	 * @param input the object from which to create the <code>IStructureComparator</code>
-	 * @return the single node specified by <code>path</code> or <code>null</code>
-	 *
-	 * @see org.eclipse.compare.EditionSelectionDialog#selectEdition
-	 */
-	IStructureComparator locate(Object path, Object input);
-
-	/**
-	 * Returns the contents of the given node as a string for the purpose
-	 * of performing a content comparison only (that is the string will not be visible in the UI).
-	 * If <code>ignoreWhitespace</code> is <code>true</code> all character sequences considered
-	 * whitespace should be removed from the returned string.
-	 *
-	 * @param node the node for which to return a string representation
-	 * @param ignoreWhitespace if <code>true</code> the returned string should not contain whitespace
-	 * @return the string contents of the given node
-	 */
-	String getContents(Object node, boolean ignoreWhitespace);
-
-	/**
-	 * Called whenever a copy operation has been performed on a tree node.
-	 *
-	 * @param node the node for which to save the new content
-	 * @param input the object from which the structure tree was created in <code>getStructure</code>
-	 */
-	void save(IStructureComparator node, Object input);
-}
-
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/StructureDiffViewer.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/StructureDiffViewer.java
deleted file mode 100644
index df04b03..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/StructureDiffViewer.java
+++ /dev/null
@@ -1,370 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.structuremergeviewer;
-
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.jface.util.PropertyChangeEvent;
-
-import org.eclipse.compare.*;
-import org.eclipse.compare.internal.*;
-
-
-/**
- * A diff tree viewer that can be configured with a <code>IStructureCreator</code>
- * to retrieve a hierarchical structure from the input object (an <code>ICompareInput</code>)
- * and perform a two-way or three-way compare on it.
- * <p>
- * This class may be instantiated; it is not intended to be subclassed outside
- * this package.
- * </p>
- *
- * @see IStructureCreator
- * @see ICompareInput
- */
-public class StructureDiffViewer extends DiffTreeViewer {
-		
-	private Differencer fDifferencer;
-	private boolean fThreeWay= false;
-	
-	private ITypedElement fAncestorInput;
-	private ITypedElement fLeftInput;
-	private ITypedElement fRightInput;
-	
-	private IStructureComparator fAncestorStructure;
-	private IStructureComparator fLeftStructure;
-	private IStructureComparator fRightStructure;
-	
-	private IStructureCreator fStructureCreator;
-	private IDiffContainer fRoot;
-	private IContentChangeListener fContentChangedListener;
-	private CompareViewerSwitchingPane fParent;
-		
-	/**
-	 * Creates a new viewer for the given SWT tree control with the specified configuration.
-	 *
-	 * @param tree the tree control
-	 * @param configuration the configuration for this viewer
-	 */
-	public StructureDiffViewer(Tree tree, CompareConfiguration configuration) {
-		super(tree, configuration);
-		Composite c= tree.getParent();
-		if (c instanceof CompareViewerSwitchingPane)
-			fParent= (CompareViewerSwitchingPane) c;
-		initialize();
-	}
-	
-	/**
-	 * Creates a new viewer under the given SWT parent with the specified configuration.
-	 *
-	 * @param parent the SWT control under which to create the viewer
-	 * @param configuration the configuration for this viewer
-	 */
-	public StructureDiffViewer(Composite parent, CompareConfiguration configuration) {
-		super(parent, configuration);
-		if (parent instanceof CompareViewerSwitchingPane)
-			fParent= (CompareViewerSwitchingPane) parent;
-		initialize();
-	}
-	
-	private void initialize() {
-		
-		setAutoExpandLevel(3);
-		
-		fContentChangedListener= new IContentChangeListener() {
-			public void contentChanged(IContentChangeNotifier changed) {
-				StructureDiffViewer.this.contentChanged(changed);
-			}
-		};
-		new ICompareInputChangeListener() {
-			public void compareInputChanged(ICompareInput input) {
-				StructureDiffViewer.this.compareInputChanged(input);
-			}
-		};
-	}
-	
-	/**
-	 * Configures the <code>StructureDiffViewer</code> with a structure creator.
-	 * The structure creator is used to create a hierarchical structure
-	 * for each side of the viewer's input element of type <code>ICompareInput</code>.
-	 *
-	 * @param structureCreator the new structure creator
-	 */
-	public void setStructureCreator(IStructureCreator structureCreator) {
-		if (fStructureCreator != structureCreator) {
-			fStructureCreator= structureCreator;
-			Control tree= getControl();
-			if (tree != null && !tree.isDisposed())
-				tree.setData(CompareUI.COMPARE_VIEWER_TITLE, getTitle());
-		}
-	}
-	
-	/**
-	 * Returns the structure creator or <code>null</code> if no
-	 * structure creator has been set with <code>setStructureCreator</code>.
-	 *
-	 * @return the structure creator or <code>null</code>
-	 */
-	public IStructureCreator getStructureCreator() {
-		return fStructureCreator;
-	}
-	
-	/**
-	 * Reimplemented to get the descriptive title for this viewer from the <code>IStructureCreator</code>.
-	 */
-	public String getTitle() {
-		if (fStructureCreator != null)
-			return fStructureCreator.getName();
-		return super.getTitle();
-	}
-	
-	/**
-	 * Overridden because the input of this viewer is not identical to the root of the tree.
-	 * The tree's root is a IDiffContainer that was returned from the method <code>diff</code>.
-	 * 
-	 * @return the root of the diff tree produced by method <code>diff</code>
-	 */
-	protected Object getRoot() {
-		return fRoot;
-	}
-	
-	/**
-	 * Overridden to create the comparable structures from the input object
-	 * and to feed them through the differencing engine. Note: for this viewer
-	 * the value from <code>getInput</code> is not identical to <code>getRoot</code>.
-	 */
-	protected void inputChanged(Object input, Object oldInput) {
-		if (input instanceof ICompareInput) {
-			compareInputChanged((ICompareInput) input);
-			if (input != oldInput)
-				initialSelection();
-		}
-	}
-	
-	protected void initialSelection() {
-		expandToLevel(2);
-	}
-
-	/* (non Javadoc)
-	 * Overridden to unregister all listeners.
-	 */
-	protected void handleDispose(DisposeEvent event) {
-		
-		compareInputChanged(null);
-		
-		fContentChangedListener= null;
-				
-		super.handleDispose(event);
-	}
-	
-	/**
-	 * Recreates the comparable structures for the input sides.
-	 */
-	protected void compareInputChanged(ICompareInput input) {
-		ITypedElement t= null;
-		boolean changed= false;
-		
-		if (input != null)
-			t= input.getAncestor();
-			
-		fThreeWay= (t != null);
-		
-		if (t != fAncestorInput) {
-			if (fAncestorInput instanceof IContentChangeNotifier)
-				((IContentChangeNotifier)fAncestorInput).removeContentChangeListener(fContentChangedListener);
-			fAncestorInput= t;
-			if (fAncestorInput != null) {
-				fAncestorStructure= fStructureCreator.getStructure(fAncestorInput);
-				changed= true;
-			} else
-				fAncestorStructure= null;
-			if (fAncestorInput instanceof IContentChangeNotifier)
-				((IContentChangeNotifier)fAncestorInput).addContentChangeListener(fContentChangedListener);
-		}
-		
-		if (input != null)
-			t= input.getLeft();
-		if (t != fLeftInput) {
-			if (fLeftInput instanceof IContentChangeNotifier)
-				((IContentChangeNotifier)fLeftInput).removeContentChangeListener(fContentChangedListener);
-			fLeftInput= t;
-			if (fLeftInput != null) {
-				fLeftStructure= fStructureCreator.getStructure(fLeftInput);
-				changed= true;
-			} else
-				fLeftStructure= null;
-			if (fLeftInput instanceof IContentChangeNotifier)
-				((IContentChangeNotifier)fLeftInput).addContentChangeListener(fContentChangedListener);
-		}
-		
-		if (input != null)
-			t= input.getRight();
-		if (t != fRightInput) {
-			if (fRightInput instanceof IContentChangeNotifier)
-				((IContentChangeNotifier)fRightInput).removeContentChangeListener(fContentChangedListener);
-			fRightInput= t;
-			if (fRightInput != null) {
-				fRightStructure= fStructureCreator.getStructure(fRightInput);
-				changed= true;
-			} else
-				fRightStructure= null;
-			if (fRightInput instanceof IContentChangeNotifier)
-				((IContentChangeNotifier)fRightInput).addContentChangeListener(fContentChangedListener);
-		}
-		
-		if (changed)
-			diff();
-	}
-	
-	/**
-	 * Calls <code>diff</code> whenever the byte contents changes.
-	 */
-	protected void contentChanged(IContentChangeNotifier changed) {
-		
-		if (fStructureCreator == null)
-			return;
-			
-		if (changed != null) {
-			if (changed == fAncestorInput) {
-				fAncestorStructure= fStructureCreator.getStructure(fAncestorInput);
-			} else if (changed == fLeftInput) {
-				fLeftStructure= fStructureCreator.getStructure(fLeftInput);
-			} else if (changed == fRightInput) {
-				fRightStructure= fStructureCreator.getStructure(fRightInput);
-			} else
-				return;
-		} else {
-			fAncestorStructure= fStructureCreator.getStructure(fAncestorInput);
-			fLeftStructure= fStructureCreator.getStructure(fLeftInput);
-			fRightStructure= fStructureCreator.getStructure(fRightInput);
-		}
-		
-		diff();
-	}
-
-	/**
-	 * This method is called from within <code>diff()</code> before the difference
-	 * tree is being built.
-	 * Clients may override this method to perform their own pre-processing.
-	 * This default implementation does nothing.
-	 * @param ancestor the ancestor input to the differencing operation
-	 * @param left the left input to the differencing operation
-	 * @param right the right input to the differencing operation
-	 * @since 2.0
-	 */
-	protected void preDiffHook(IStructureComparator ancestor, IStructureComparator left, IStructureComparator right) {
-		// we do nothing here
-	}
-	
-	/**
-	 * Runs the difference engine and refreshes the tree.
-	 */
-	protected void diff() {
-		
-		preDiffHook(fAncestorStructure, fLeftStructure, fRightStructure);
-							
-		String message= null;
-		
-		if ((fThreeWay && fAncestorStructure == null) || fLeftStructure == null || fRightStructure == null) {
-			// could not get structure of one (or more) of the legs
-			fRoot= null;
-			message= CompareMessages.getString("StructureDiffViewer.StructureError");	//$NON-NLS-1$
-			
-		} else {	// calculate difference of the two (or three) structures
-
-			if (fDifferencer == null)
-				fDifferencer= new Differencer() {
-					protected boolean contentsEqual(Object o1, Object o2) {
-						return StructureDiffViewer.this.contentsEqual(o1, o2);
-					}
-					protected Object visit(Object data, int result, Object ancestor, Object left, Object right) {
-						Object o= super.visit(data, result, ancestor, left, right);
-						if (fLeftIsLocal && o instanceof DiffNode)
-							((DiffNode)o).swapSides(fLeftIsLocal);
-						return o;
-					}
-				};
-			
-			fRoot= (IDiffContainer) fDifferencer.findDifferences(fThreeWay, null, null,
-					fAncestorStructure, fLeftStructure, fRightStructure);
-					
-			if (fRoot == null || fRoot.getChildren().length == 0) {
-				message= CompareMessages.getString("StructureDiffViewer.NoStructuralDifferences");	//$NON-NLS-1$
-			} else {
-				postDiffHook(fDifferencer, fRoot);
-			}
-		}
-		if (fParent != null)
-			fParent.setTitleArgument(message);
-			
-		refresh(getRoot());
-	}
-	
-	/**
-	 * This method is called from within <code>diff()</code> after the difference
-	 * tree has been built.
-	 * Clients may override this method to perform their own post-processing.
-	 * This default implementation does nothing.
-	 * @param differencer the differencer used to perform the differencing
-	 * @param root the non-<code>null</code> root node of the difference tree
-	 * @since 2.0
-	 */
-	protected void postDiffHook(Differencer differencer, IDiffContainer root) {
-		// we do nothing here
-	}
-	
-	/**
-	 * Performs a byte compare on the given objects.
-	 * Called from the difference engine.
-	 * Returns <code>null</code> if no structure creator has been set.
-	 */
-	private boolean contentsEqual(Object o1, Object o2) {
-		if (fStructureCreator != null) {
-			boolean ignoreWhiteSpace= Utilities.getBoolean(getCompareConfiguration(), CompareConfiguration.IGNORE_WHITESPACE, false);		
-			String s1= fStructureCreator.getContents(o1, ignoreWhiteSpace);
-			String s2= fStructureCreator.getContents(o2, ignoreWhiteSpace);
-			if (s1 == null || s2 == null)
-				return false;
-			return s1.equals(s2);
-		}
-		return false;
-	}
-	
-	/**
-	 * Tracks property changes of the configuration object.
-	 * Clients may override to track their own property changes.
-	 * In this case they must call the inherited method.
-	 */
-	protected void propertyChange(PropertyChangeEvent event) {
-		String key= event.getProperty();
-		if (key.equals(CompareConfiguration.IGNORE_WHITESPACE))
-			diff();
-		else
-			super.propertyChange(event);
-	}
-		
-	/**
-	 * Overridden to call the <code>save</code> method on the structure creator after
-	 * nodes have been copied from one side to the other side of an input object.
-	 *
-	 * @param leftToRight if <code>true</code> the left side is copied to the right side.
-	 * If <code>false</code> the right side is copied to the left side
-	 */
-	protected void copySelected(boolean leftToRight) {
-		super.copySelected(leftToRight);
-		
-		if (fStructureCreator != null)
-			fStructureCreator.save(
-							leftToRight ? fRightStructure : fLeftStructure,
-							leftToRight ? fRightInput : fLeftInput);
-	}
-}
-
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/package.html b/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/package.html
deleted file mode 100644
index 60257a4..0000000
--- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/package.html
+++ /dev/null
@@ -1,79 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="Author" content="IBM">
-   <meta name="GENERATOR" content="Mozilla/4.75 [en] (WinNT; U) [Netscape]">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-Provides support for finding and displaying the differences
-between hierarchically structured data.
-<h2>
-Package Specification</h2>
-
-The class <b>Differencer</b> is a differencing engine for hierarchically
-structured data. It takes two or three inputs and performs a two-way or
-three-way compare on them.
-<p>
-
-If the input elements to the differencing engine implement the <b>IStructureComparator</b>
-interface the engine recursively applies itself to the children of
-the input element. Leaf elements must implement the <b>org.eclipse.compare.IStreamContentAccessor</b>
-interface so that the differencer can perform a bytewise comparison on their contents.
-<p>
-
-One good example for this is <b>org.eclipse.compare.ResourceNode</b> which implements both interfaces
-(and more) for Eclipse workspace resources (org.eclipse.core.resources.IResource).
-<p>
-
-Another example is the <b>DocumentRangeNode</b> which can be used to compare hierarchical structures
-that are superimposed on a document, that is where nodes and leafs correspond to ranges in a document
-(<b>org.eclipse.compare.contentmergeviewer.IDocumentRange</b>).
-<br>
-Typically <b>DocumentRangeNode</b>s are created while parsing a document and they represent
-the semantic entities of the document (e.g. a Java class, method or field).
-The two subclasses <b>JavaNode</b> (in org.eclipse.jdt.internal.ui.compare)
-and <b>PropertyNode</b> (in org.eclipse.jdt.internal.ui.compare) are good examples for this.
-<p>
-
-By default the differencing engine returns the result of the compare operation
-as a tree of <b>DiffNode</b> objects. However, this can be changed by overriding
-a single method of the engine.
-<p>
-
-Every <b>DiffNode</b> describes the changes among the two or three inputs.
-<p>
-
-A tree of <b>DiffNodes</b> can be displayed in a <b>DiffTreeViewer</b>.
-The <b>DiffTreeViewer</b> requires that inner nodes of the tree implement
-the <b>IDiffContainer</b> interface and leafs the <b>IDiffElement</b> interface.
-<p>
-
-The typical steps to compare hierarchically structured data and to display
-the differences would be to:
-<ul>
-<li>
-map the input data into a tree of <b>IStructureComparator</b> and <b>IStreamContentAccessor</b>s,</li>
-
-<li>
-perform the compare operation by means of the <b>Differencer</b>, and</li>
-
-<li>
-feed the differencing result into the <b>DiffTreeViewer</b>.</li>
-
-</ul>
-
-The <b>StructureDiffViewer</b> is a specialized <b>DiffTreeViewer</b>
-that automates the three steps from above. It takes a single input object
-of type <b>ICompareInput</b> from which it retrieves the two or three
-input elements to compare. Then it uses a <b>IStructureCreator</b> to
-extract a tree of <b>IStructureComparator</b> and <b>IStreamContentAccessor</b>
-from them. These trees are then compared with the differencing engine and
-the result is displayed in the tree viewer.
-<p>
-
-
-
-</body>
-</html>
diff --git a/bundles/org.eclipse.compare/icons/full/clcl16/ancestorpane_co.gif b/bundles/org.eclipse.compare/icons/full/clcl16/ancestorpane_co.gif
deleted file mode 100644
index 0088c97..0000000
--- a/bundles/org.eclipse.compare/icons/full/clcl16/ancestorpane_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/icons/full/clcl16/copy_l_co.gif b/bundles/org.eclipse.compare/icons/full/clcl16/copy_l_co.gif
deleted file mode 100644
index 6c83c45..0000000
--- a/bundles/org.eclipse.compare/icons/full/clcl16/copy_l_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/icons/full/clcl16/copy_r_co.gif b/bundles/org.eclipse.compare/icons/full/clcl16/copy_r_co.gif
deleted file mode 100644
index a3a444a..0000000
--- a/bundles/org.eclipse.compare/icons/full/clcl16/copy_r_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/icons/full/clcl16/copycont_l_co.gif b/bundles/org.eclipse.compare/icons/full/clcl16/copycont_l_co.gif
deleted file mode 100644
index 706dc02..0000000
--- a/bundles/org.eclipse.compare/icons/full/clcl16/copycont_l_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/icons/full/clcl16/copycont_r_co.gif b/bundles/org.eclipse.compare/icons/full/clcl16/copycont_r_co.gif
deleted file mode 100644
index b95e26a..0000000
--- a/bundles/org.eclipse.compare/icons/full/clcl16/copycont_r_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/icons/full/clcl16/next_nav.gif b/bundles/org.eclipse.compare/icons/full/clcl16/next_nav.gif
deleted file mode 100644
index 8392f33..0000000
--- a/bundles/org.eclipse.compare/icons/full/clcl16/next_nav.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/icons/full/clcl16/prev_nav.gif b/bundles/org.eclipse.compare/icons/full/clcl16/prev_nav.gif
deleted file mode 100644
index 9b278e6..0000000
--- a/bundles/org.eclipse.compare/icons/full/clcl16/prev_nav.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/icons/full/clcl16/smartmode_co.gif b/bundles/org.eclipse.compare/icons/full/clcl16/smartmode_co.gif
deleted file mode 100644
index c2a47b6..0000000
--- a/bundles/org.eclipse.compare/icons/full/clcl16/smartmode_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/icons/full/clcl16/syncpane_co.gif b/bundles/org.eclipse.compare/icons/full/clcl16/syncpane_co.gif
deleted file mode 100644
index 3aabbce..0000000
--- a/bundles/org.eclipse.compare/icons/full/clcl16/syncpane_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/icons/full/clcl16/twowaycompare_co.gif b/bundles/org.eclipse.compare/icons/full/clcl16/twowaycompare_co.gif
deleted file mode 100644
index 2045dae..0000000
--- a/bundles/org.eclipse.compare/icons/full/clcl16/twowaycompare_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/icons/full/ctool16/conflict_edit.gif b/bundles/org.eclipse.compare/icons/full/ctool16/conflict_edit.gif
deleted file mode 100644
index ecde52e..0000000
--- a/bundles/org.eclipse.compare/icons/full/ctool16/conflict_edit.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/icons/full/ctool16/ignorews_edit.gif b/bundles/org.eclipse.compare/icons/full/ctool16/ignorews_edit.gif
deleted file mode 100644
index 097ecdd..0000000
--- a/bundles/org.eclipse.compare/icons/full/ctool16/ignorews_edit.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/icons/full/cview16/compare_view.gif b/bundles/org.eclipse.compare/icons/full/cview16/compare_view.gif
deleted file mode 100644
index 41800a0..0000000
--- a/bundles/org.eclipse.compare/icons/full/cview16/compare_view.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/icons/full/dlcl16/ancestorpane_co.gif b/bundles/org.eclipse.compare/icons/full/dlcl16/ancestorpane_co.gif
deleted file mode 100644
index 6e00dee..0000000
--- a/bundles/org.eclipse.compare/icons/full/dlcl16/ancestorpane_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/icons/full/dlcl16/copy_l_co.gif b/bundles/org.eclipse.compare/icons/full/dlcl16/copy_l_co.gif
deleted file mode 100644
index cb11ac9..0000000
--- a/bundles/org.eclipse.compare/icons/full/dlcl16/copy_l_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/icons/full/dlcl16/copy_r_co.gif b/bundles/org.eclipse.compare/icons/full/dlcl16/copy_r_co.gif
deleted file mode 100644
index 202b041..0000000
--- a/bundles/org.eclipse.compare/icons/full/dlcl16/copy_r_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/icons/full/dlcl16/copycont_l_co.gif b/bundles/org.eclipse.compare/icons/full/dlcl16/copycont_l_co.gif
deleted file mode 100644
index 4e9a3eb..0000000
--- a/bundles/org.eclipse.compare/icons/full/dlcl16/copycont_l_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/icons/full/dlcl16/copycont_r_co.gif b/bundles/org.eclipse.compare/icons/full/dlcl16/copycont_r_co.gif
deleted file mode 100644
index e84103f..0000000
--- a/bundles/org.eclipse.compare/icons/full/dlcl16/copycont_r_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/icons/full/dlcl16/next_nav.gif b/bundles/org.eclipse.compare/icons/full/dlcl16/next_nav.gif
deleted file mode 100644
index 6cbeced..0000000
--- a/bundles/org.eclipse.compare/icons/full/dlcl16/next_nav.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/icons/full/dlcl16/prev_nav.gif b/bundles/org.eclipse.compare/icons/full/dlcl16/prev_nav.gif
deleted file mode 100644
index a3441a0..0000000
--- a/bundles/org.eclipse.compare/icons/full/dlcl16/prev_nav.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/icons/full/dlcl16/smartmode_co.gif b/bundles/org.eclipse.compare/icons/full/dlcl16/smartmode_co.gif
deleted file mode 100644
index 6f55d90..0000000
--- a/bundles/org.eclipse.compare/icons/full/dlcl16/smartmode_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/icons/full/dlcl16/syncpane_co.gif b/bundles/org.eclipse.compare/icons/full/dlcl16/syncpane_co.gif
deleted file mode 100644
index 2a8541c..0000000
--- a/bundles/org.eclipse.compare/icons/full/dlcl16/syncpane_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/icons/full/dlcl16/twowaycompare_co.gif b/bundles/org.eclipse.compare/icons/full/dlcl16/twowaycompare_co.gif
deleted file mode 100644
index ecab864..0000000
--- a/bundles/org.eclipse.compare/icons/full/dlcl16/twowaycompare_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/icons/full/dtool16/conflict_edit.gif b/bundles/org.eclipse.compare/icons/full/dtool16/conflict_edit.gif
deleted file mode 100644
index c76fcc7..0000000
--- a/bundles/org.eclipse.compare/icons/full/dtool16/conflict_edit.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/icons/full/dtool16/ignorews_edit.gif b/bundles/org.eclipse.compare/icons/full/dtool16/ignorews_edit.gif
deleted file mode 100644
index 55147cc..0000000
--- a/bundles/org.eclipse.compare/icons/full/dtool16/ignorews_edit.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/icons/full/elcl16/ancestorpane_co.gif b/bundles/org.eclipse.compare/icons/full/elcl16/ancestorpane_co.gif
deleted file mode 100644
index 3ce77c8..0000000
--- a/bundles/org.eclipse.compare/icons/full/elcl16/ancestorpane_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/icons/full/elcl16/copy_l_co.gif b/bundles/org.eclipse.compare/icons/full/elcl16/copy_l_co.gif
deleted file mode 100644
index d9f5900..0000000
--- a/bundles/org.eclipse.compare/icons/full/elcl16/copy_l_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/icons/full/elcl16/copy_r_co.gif b/bundles/org.eclipse.compare/icons/full/elcl16/copy_r_co.gif
deleted file mode 100644
index 61289f1..0000000
--- a/bundles/org.eclipse.compare/icons/full/elcl16/copy_r_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/icons/full/elcl16/copycont_l_co.gif b/bundles/org.eclipse.compare/icons/full/elcl16/copycont_l_co.gif
deleted file mode 100644
index 4fdde61..0000000
--- a/bundles/org.eclipse.compare/icons/full/elcl16/copycont_l_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/icons/full/elcl16/copycont_r_co.gif b/bundles/org.eclipse.compare/icons/full/elcl16/copycont_r_co.gif
deleted file mode 100644
index feb14bf..0000000
--- a/bundles/org.eclipse.compare/icons/full/elcl16/copycont_r_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/icons/full/elcl16/next_nav.gif b/bundles/org.eclipse.compare/icons/full/elcl16/next_nav.gif
deleted file mode 100644
index 03b7af3..0000000
--- a/bundles/org.eclipse.compare/icons/full/elcl16/next_nav.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/icons/full/elcl16/prev_nav.gif b/bundles/org.eclipse.compare/icons/full/elcl16/prev_nav.gif
deleted file mode 100644
index dd65c52..0000000
--- a/bundles/org.eclipse.compare/icons/full/elcl16/prev_nav.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/icons/full/elcl16/smartmode_co.gif b/bundles/org.eclipse.compare/icons/full/elcl16/smartmode_co.gif
deleted file mode 100644
index e0a262e..0000000
--- a/bundles/org.eclipse.compare/icons/full/elcl16/smartmode_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/icons/full/elcl16/syncpane_co.gif b/bundles/org.eclipse.compare/icons/full/elcl16/syncpane_co.gif
deleted file mode 100644
index 3e45390..0000000
--- a/bundles/org.eclipse.compare/icons/full/elcl16/syncpane_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/icons/full/elcl16/twowaycompare_co.gif b/bundles/org.eclipse.compare/icons/full/elcl16/twowaycompare_co.gif
deleted file mode 100644
index 4c25322..0000000
--- a/bundles/org.eclipse.compare/icons/full/elcl16/twowaycompare_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/icons/full/etool16/conflict_edit.gif b/bundles/org.eclipse.compare/icons/full/etool16/conflict_edit.gif
deleted file mode 100644
index b4451ec..0000000
--- a/bundles/org.eclipse.compare/icons/full/etool16/conflict_edit.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/icons/full/etool16/ignorews_edit.gif b/bundles/org.eclipse.compare/icons/full/etool16/ignorews_edit.gif
deleted file mode 100644
index f816c9e..0000000
--- a/bundles/org.eclipse.compare/icons/full/etool16/ignorews_edit.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/icons/full/eview16/compare_view.gif b/bundles/org.eclipse.compare/icons/full/eview16/compare_view.gif
deleted file mode 100644
index 1030b6e..0000000
--- a/bundles/org.eclipse.compare/icons/full/eview16/compare_view.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/icons/full/obj16/day_obj.gif b/bundles/org.eclipse.compare/icons/full/obj16/day_obj.gif
deleted file mode 100644
index 96aae05..0000000
--- a/bundles/org.eclipse.compare/icons/full/obj16/day_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/icons/full/obj16/resource_obj.gif b/bundles/org.eclipse.compare/icons/full/obj16/resource_obj.gif
deleted file mode 100644
index d1e679e..0000000
--- a/bundles/org.eclipse.compare/icons/full/obj16/resource_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/icons/full/ovr16/add_ov.gif b/bundles/org.eclipse.compare/icons/full/ovr16/add_ov.gif
deleted file mode 100644
index 2a81156..0000000
--- a/bundles/org.eclipse.compare/icons/full/ovr16/add_ov.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/icons/full/ovr16/chg_ov.gif b/bundles/org.eclipse.compare/icons/full/ovr16/chg_ov.gif
deleted file mode 100644
index 67b25c4..0000000
--- a/bundles/org.eclipse.compare/icons/full/ovr16/chg_ov.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/icons/full/ovr16/confadd_ov.gif b/bundles/org.eclipse.compare/icons/full/ovr16/confadd_ov.gif
deleted file mode 100644
index e049755..0000000
--- a/bundles/org.eclipse.compare/icons/full/ovr16/confadd_ov.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/icons/full/ovr16/confchg_ov.gif b/bundles/org.eclipse.compare/icons/full/ovr16/confchg_ov.gif
deleted file mode 100644
index 020fc54..0000000
--- a/bundles/org.eclipse.compare/icons/full/ovr16/confchg_ov.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/icons/full/ovr16/confdel_ov.gif b/bundles/org.eclipse.compare/icons/full/ovr16/confdel_ov.gif
deleted file mode 100644
index 39ed511..0000000
--- a/bundles/org.eclipse.compare/icons/full/ovr16/confdel_ov.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/icons/full/ovr16/del_ov.gif b/bundles/org.eclipse.compare/icons/full/ovr16/del_ov.gif
deleted file mode 100644
index 675c20f..0000000
--- a/bundles/org.eclipse.compare/icons/full/ovr16/del_ov.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/icons/full/ovr16/error_ov.gif b/bundles/org.eclipse.compare/icons/full/ovr16/error_ov.gif
deleted file mode 100644
index 95e4db6..0000000
--- a/bundles/org.eclipse.compare/icons/full/ovr16/error_ov.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/icons/full/ovr16/inadd_ov.gif b/bundles/org.eclipse.compare/icons/full/ovr16/inadd_ov.gif
deleted file mode 100644
index 0dc3ea8..0000000
--- a/bundles/org.eclipse.compare/icons/full/ovr16/inadd_ov.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/icons/full/ovr16/inchg_ov.gif b/bundles/org.eclipse.compare/icons/full/ovr16/inchg_ov.gif
deleted file mode 100644
index f719405..0000000
--- a/bundles/org.eclipse.compare/icons/full/ovr16/inchg_ov.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/icons/full/ovr16/indel_ov.gif b/bundles/org.eclipse.compare/icons/full/ovr16/indel_ov.gif
deleted file mode 100644
index 3e107d2..0000000
--- a/bundles/org.eclipse.compare/icons/full/ovr16/indel_ov.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/icons/full/ovr16/outadd_ov.gif b/bundles/org.eclipse.compare/icons/full/ovr16/outadd_ov.gif
deleted file mode 100644
index 780da98..0000000
--- a/bundles/org.eclipse.compare/icons/full/ovr16/outadd_ov.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/icons/full/ovr16/outchg_ov.gif b/bundles/org.eclipse.compare/icons/full/ovr16/outchg_ov.gif
deleted file mode 100644
index 4f6a316..0000000
--- a/bundles/org.eclipse.compare/icons/full/ovr16/outchg_ov.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/icons/full/ovr16/outdel_ov.gif b/bundles/org.eclipse.compare/icons/full/ovr16/outdel_ov.gif
deleted file mode 100644
index ab48981..0000000
--- a/bundles/org.eclipse.compare/icons/full/ovr16/outdel_ov.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/icons/full/ovr16/r_inadd_ov.gif b/bundles/org.eclipse.compare/icons/full/ovr16/r_inadd_ov.gif
deleted file mode 100644
index 14ba011..0000000
--- a/bundles/org.eclipse.compare/icons/full/ovr16/r_inadd_ov.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/icons/full/ovr16/r_inchg_ov.gif b/bundles/org.eclipse.compare/icons/full/ovr16/r_inchg_ov.gif
deleted file mode 100644
index 0aca3c4..0000000
--- a/bundles/org.eclipse.compare/icons/full/ovr16/r_inchg_ov.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/icons/full/ovr16/r_indel_ov.gif b/bundles/org.eclipse.compare/icons/full/ovr16/r_indel_ov.gif
deleted file mode 100644
index c377537..0000000
--- a/bundles/org.eclipse.compare/icons/full/ovr16/r_indel_ov.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/icons/full/ovr16/r_outadd_ov.gif b/bundles/org.eclipse.compare/icons/full/ovr16/r_outadd_ov.gif
deleted file mode 100644
index 11c2d5d..0000000
--- a/bundles/org.eclipse.compare/icons/full/ovr16/r_outadd_ov.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/icons/full/ovr16/r_outchg_ov.gif b/bundles/org.eclipse.compare/icons/full/ovr16/r_outchg_ov.gif
deleted file mode 100644
index 704d706..0000000
--- a/bundles/org.eclipse.compare/icons/full/ovr16/r_outchg_ov.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/icons/full/ovr16/r_outdel_ov.gif b/bundles/org.eclipse.compare/icons/full/ovr16/r_outdel_ov.gif
deleted file mode 100644
index 95ec301..0000000
--- a/bundles/org.eclipse.compare/icons/full/ovr16/r_outdel_ov.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/icons/full/wizban/applypatch_wizban.gif b/bundles/org.eclipse.compare/icons/full/wizban/applypatch_wizban.gif
deleted file mode 100644
index 61a3349..0000000
--- a/bundles/org.eclipse.compare/icons/full/wizban/applypatch_wizban.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/plugin.properties b/bundles/org.eclipse.compare/plugin.properties
deleted file mode 100644
index 28dbbc6..0000000
--- a/bundles/org.eclipse.compare/plugin.properties
+++ /dev/null
@@ -1,188 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-#
-# Resource strings for Compare Plug-in
-#
-pluginName= Compare Support
-providerName=Eclipse.org
-
-#
-# Extension point names
-#
-structureCreators= Structure Creator
-structureMergeViewers= Structure Merge Viewer
-contentMergeViewers= Content Merge Viewer
-contentViewers= Content Viewer
-
-#
-# CompareUIPlugin
-#
-CompareUIPlugin.dialogTitle=Compare
-CompareUIPlugin.noActiveWorkbenchPage=Can't find active workbench page
-CompareUIPlugin.compareFailed=Compare Failed
-CompareUIPlugin.openEditorError=Problems Opening Editor
-CompareUIPlugin.noDifferences=There are no differences between the selected inputs.
-
-#
-# Compare Editor
-#
-defaultCompareEditor.name= Default Compare Editor
-CompareEditor.saveError.title= Save Error
-CompareEditor.cantSaveError= Can''t save contents ({0})
-CompareEditor.invalidInput=Invalid input: not a CompareEditorInput
-CompareEditor.error.setinput.title=Problem while opening
-CompareEditor.error.setinput.message=Cannot open input:
-
-#
-# Commands
-#
-compareCategory.name= Compare
-compareCategory.description= Compare command category
-
-Command.copyRightToLeft.name= Copy from Right to Left
-Command.copyRightToLeft.description= Copy Current Change from Right to Left
-
-Command.copyLeftToRight.name= Copy from Left to Right
-Command.copyLeftToRight.description= Copy Current Change from Left to Right
-
-Command.copyAllRightToLeft.name= Copy All from Right to Left
-Command.copyAllRightToLeft.description= Copy All Changes from Right to Left
-
-Command.copyAllLeftToRight.name= Copy All from Left to Right
-Command.copyAllLeftToRight.description= Copy All Change from Left to Right
-
-Command.selectNextChange.name= Select Next Change
-Command.selectNextChange.description= Select Next Change
-
-Command.selectPreviousChange.name= Select Previous Change
-Command.selectPreviousChange.description= Select Previous Change
-
-
-#
-# Context menu & actions
-#
-CompareWithMenu.label= Comp&are With
-
-CompareWithEachOtherAction.label= &Each Other
-CompareWithEachOtherAction.tooltip= Compare the Selected Resources
-
-TeamMenu.label= T&eam
-
-CompareWithPatchAction.label= &Apply Patch...
-CompareWithPatchAction.tooltip= Apply a Patch to the Selected Resources
-
-CompareWithHistoryAction.label= &Local History...
-CompareWithHistoryAction.tooltip= Compare the Selected Resource with Local History
-
-ReplaceWithMenu.label= Rep&lace With
-
-ReplaceFromHistoryAction.label= &Local History...
-ReplaceFromHistoryAction.tooltip= Replace the Selected Resource with Local History
-
-ReplaceWithPreviousFromHistoryAction.label= &Previous from Local History
-ReplaceWithPreviousFromHistoryAction.tooltip= Replace the Selected Resource with the Previous from Local History
-
-addFromHistoryAction.label= Restore from Local Histor&y...
-addFromHistoryAction.tooltip= Restore Deleted Files from Local History
-
-#
-# Preference Page
-#
-ComparePreferencePage.name= Compare/Patch
-
-ComparePreferencePage.generalTab.label= &General
-
-ComparePreferencePage.structureCompare.label= &Open structure compare automatically
-ComparePreferencePage.showMoreInfo.label= &Show additional compare information in the status line
-ComparePreferencePage.ignoreWhitespace.label= Ignore &white space
-ComparePreferencePage.saveBeforePatching.label= A&utomatically save dirty editors before patching
-
-ComparePreferencePage.textCompareTab.label= &Text Compare
-
-ComparePreferencePage.initiallyShowAncestorPane.label= Initially show a&ncestor pane
-ComparePreferencePage.showPseudoConflicts.label= Show &pseudo conflicts
-ComparePreferencePage.synchronizeScrolling.label= Synchronize &scrolling between panes in compare viewers
-ComparePreferencePage.useSingleLine.label= Connect &ranges with single line
-
-ComparePreferencePage.preview.label= Preview:
-ComparePreferencePage.ancestor.label= Common Ancestor
-ComparePreferencePage.left.label= Local
-ComparePreferencePage.right.label= Remote
-ComparePreferencePage.backgroundColor1.label= Bac&kground Color:
-ComparePreferencePage.backgroundColor2.label= S&ystem Default
-ComparePreferencePage.backgroundColor3.label= C&ustom
-
-# Compare editor contents for Compare preview page
-ComparePreferencePage.previewAncestor= 1\n2\n3\nconflict\n4\n5
-ComparePreferencePage.previewLeft= 1\n2\noutgoing addition\n3\noutgoing change\n4\npseudo conflict\n5
-ComparePreferencePage.previewRight= 1\nincoming addition\nincoming addition\n2\n3\nincoming change\n4\npseudo conflict\n5
-
-compareFontDefiniton.label= Compare Text Font
-compareFontDefiniton.description= The compare text font is used by textual compare/merge editors.
-
-# New UI
-#ComparePreferencePage.useSplines.label= Use splines in center panel
-#ComparePreferencePage.useResolveUI.label= Use new resolve UI
-
-CompareEditorInput.defaultTitle= Compare
-
-#
-# Toolbar actions
-#
-action.IgnoreWhiteSpace.label=Ignore White Space
-action.IgnoreWhiteSpace.tooltip=Ignore White Space Where Applicable
-action.IgnoreWhiteSpace.image=etool16/ignorews_edit.gif
-
-action.Next.label=Next Difference
-action.Next.tooltip=Go to Next Difference
-action.Next.image=elcl16/next_nav.gif
-
-action.Previous.label=Previous Difference
-action.Previous.tooltip=Go to Previous Difference
-action.Previous.image=elcl16/prev_nav.gif
-
-#
-# Built in Structure Creators
-#
-ZipStructureCreator.name=Zip Archive Compare
-
-#
-# Compare Dialog
-#
-CompareDialog.commitAction.label=Commit
-CompareDialog.saveErrorTitle=Save Error 
-CompareDialog.saveErrorMessage=Can't save
-
-#
-# Compare With Each Other
-#
-ResourceCompare.taskName=Operation in Progress...
-ResourceCompare.twoWay.title=Compare ({0}-{1})
-ResourceCompare.twoWay.tooltip={0}-{1}
-ResourceCompare.threeWay.title=Compare ({0}-{1}-{2})
-ResourceCompare.threeWay.tooltip={1}-{2}
-
-#
-# DiffTreeViewer & DiffNodes
-#
-DiffTreeViewer.title= Structure Compare
-DiffNode.noName= <no name>
-DiffNode.nameFormat= {0} / {1}
-
-#
-# Differencing engine
-#
-Differencer.progressFormat= Comparing {0}
-
-#
-# Patch: rejected patch markers
-#
-rejectedPatchMarker.name= Rejected Patch
diff --git a/bundles/org.eclipse.compare/plugin.xml b/bundles/org.eclipse.compare/plugin.xml
deleted file mode 100644
index 375ed22..0000000
--- a/bundles/org.eclipse.compare/plugin.xml
+++ /dev/null
@@ -1,316 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!-- ======================================================================= -->
-<!-- Compare UI Plugin                                                       -->
-<!-- ======================================================================= -->
-
-<plugin
-	name="%pluginName"
-	id="org.eclipse.compare"
-	version="3.0.0"
-	provider-name="%providerName"
-	class="org.eclipse.compare.internal.CompareUIPlugin">
-
-	<requires>
-      <import plugin="org.eclipse.ui"/>
-      <import plugin="org.eclipse.core.resources"/>
-	</requires>
-
-	<runtime>
-		<library name="compare.jar" >
-			<export name="*"/>
-     		<packages prefixes="org.eclipse.compare"/>
-		</library>
-	</runtime>
-		   
-<!-- Compare extension point definitions -->
-
-	<extension-point
-		id="structureCreators"
-		name="%structureCreators"
-		schema="schema/structureCreators.exsd"
-	/>
-		
-	<extension-point
-		id="structureMergeViewers"
-		name="%structureMergeViewers"
-		schema="schema/structureMergeViewers.exsd"
-	/>
-		
-	<extension-point
-		id="contentMergeViewers"
-		name="%contentMergeViewers"
-		schema="schema/contentMergeViewers.exsd"
-	/>
-		
-	<extension-point
-		id="contentViewers"
-		name="%contentViewers"
-		schema="schema/contentViewers.exsd"
-	/>
-
-<!-- Extensions -->
-
-	<extension point="org.eclipse.ui.fontDefinitions">
-		<fontDefinition
-			label="%compareFontDefiniton.label"
-			id="org.eclipse.compare.contentmergeviewer.TextMergeViewer"
-			defaultsTo="org.eclipse.jface.textfont">
-	        <description>
-				%compareFontDefiniton.description
-			</description>
-		</fontDefinition>
-	</extension>
-
-	<extension point="org.eclipse.core.resources.markers"
-		id="rejectedPatchMarker" name="%rejectedPatchMarker.name">
-		<super type="org.eclipse.core.resources.taskmarker"/>
-		<persistent value="true"/>
-	</extension>
-
-	<extension point="org.eclipse.ui.editors">
-    	<editor id="org.eclipse.compare.CompareEditor"
-      		name="%defaultCompareEditor.name"
- 			icon="icons/full/cview16/compare_view.gif"     	  
-      		class="org.eclipse.compare.internal.CompareEditor"
-			contributorClass="org.eclipse.compare.internal.CompareEditorContributor">
-    	</editor>
-	</extension>
-
-	<extension
-		point="org.eclipse.ui.preferencePages">
-		<page name="%ComparePreferencePage.name"
-			id="org.eclipse.compare.internal.ComparePreferencePage"
-			class="org.eclipse.compare.internal.ComparePreferencePage"
-			category= "org.eclipse.ui.preferencePages.Workbench">
-		</page>	
-	</extension>
-
-	<!-- commands and their bindings -->   
-	<extension point="org.eclipse.ui.commands">
-	
-		<category
-			name="%compareCategory.name"
-			description="%compareCategory.description"
-			id="org.eclipse.compare.ui.category.compare"
-		/>
-
-		<command
-			category="org.eclipse.compare.ui.category.compare"
-			id="org.eclipse.compare.copyRightToLeft"
-			name= "%Command.copyRightToLeft.name"
-			description="%Command.copyRightToLeft.description"
-		/>
-		<keyBinding
-			string=""
-			scope="org.eclipse.ui.globalScope"
-			command="org.eclipse.compare.copyRightToLeft"
-			configuration="org.eclipse.ui.defaultAcceleratorConfiguration"
-		/>
-		
- 		<command
-			category="org.eclipse.compare.ui.category.compare"
-			id="org.eclipse.compare.copyLeftToRight"
-			name= "%Command.copyLeftToRight.name"
-			description="%Command.copyLeftToRight.description"
-		/>
-		<keyBinding
-			string=""
-			scope="org.eclipse.ui.globalScope"
-			command="org.eclipse.compare.copyLeftToRight"
-			configuration="org.eclipse.ui.defaultAcceleratorConfiguration"
-		/>
-
-		<command
-			category="org.eclipse.compare.ui.category.compare"
-			id="org.eclipse.compare.copyAllRightToLeft"
-			name= "%Command.copyAllRightToLeft.name"
-			description="%Command.copyAllRightToLeft.description"
-		/>
-		<keyBinding
-			string=""
-			scope="org.eclipse.ui.globalScope"
-			command="org.eclipse.compare.copyAllRightToLeft"
-			configuration="org.eclipse.ui.defaultAcceleratorConfiguration"
-		/>
-
-		<command
-			category="org.eclipse.compare.ui.category.compare"
-			id="org.eclipse.compare.copyAllLeftToRight"
-			name= "%Command.copyAllLeftToRight.name"
-			description="%Command.copyAllLeftToRight.description"
-		/>
-		<keyBinding
-			string=""
-			scope="org.eclipse.ui.globalScope"
-			command="org.eclipse.compare.copyAllLeftToRight"
-			configuration="org.eclipse.ui.defaultAcceleratorConfiguration"
-		/>
-
-		<command
-			category="org.eclipse.compare.ui.category.compare"
-			id="org.eclipse.compare.selectNextChange"
-			name= "%Command.selectNextChange.name"
-			description="%Command.selectNextChange.description"
-		/>
-		<keyBinding
-			string=""
-			scope="org.eclipse.ui.globalScope"
-			command="org.eclipse.compare.selectNextChange"
-			configuration="org.eclipse.ui.defaultAcceleratorConfiguration"
-		/>
-		
-		<command
-			category="org.eclipse.compare.ui.category.compare"
-			id="org.eclipse.compare.selectPreviousChange"
-			name= "%Command.selectPreviousChange.name"
-			description="%Command.selectPreviousChange.description"
-		/>
-		<keyBinding
-			string=""
-			scope="org.eclipse.ui.globalScope"
-			command="org.eclipse.compare.selectPreviousChange"
-			configuration="org.eclipse.ui.defaultAcceleratorConfiguration"
-		/>
-
-	</extension>
-
-	<extension point="org.eclipse.ui.popupMenus">
-	
-		<objectContribution
-			id="org.eclipse.compare.CompareAction"
-			objectClass="org.eclipse.core.resources.IResource" adaptable="true">
-			<menu
-				id="replaceWithMenu"
-				path="additions"
-				label="%ReplaceWithMenu.label">
-				<separator name="replaceWithGroup"/>
-			</menu>
-			<menu
-				id="compareWithMenu"
-				path="additions"
-				label="%CompareWithMenu.label">
-				<separator name="compareWithGroup"/>
-			</menu>
-			<menu
-				id="team.main"
-				path="additions"
-				label="%TeamMenu.label">
-				<separator name="group1"/>
-			</menu>
-			<action
-				id="compareWithEachOther"
-				label="%CompareWithEachOtherAction.label"
-				tooltip="%CompareWithEachOtherAction.tooltip"
-				menubarPath="compareWithMenu/compareWithGroup"
-				enablesFor="2+"
-				class="org.eclipse.compare.internal.CompareAction">
-			</action>
-			<action
-				id="compareWithPatch"
-				label="%CompareWithPatchAction.label"
-				tooltip="%CompareWithPatchAction.tooltip"
-				menubarPath="team.main/group1"
-				enablesFor="1"
-				class="org.eclipse.compare.internal.patch.CompareWithPatchAction">
-			</action>
-						
-		</objectContribution>
-		
-		<objectContribution
-			id="org.eclipse.compare.ReplaceWithEditionAction"
-			objectClass="org.eclipse.core.resources.IFile" adaptable="true">
-			<menu
-				id="replaceWithMenu"
-				path="additions"
-				label="%ReplaceWithMenu.label">
-				<separator name="replaceWithGroup"/>
-			</menu>
-			<action
-				id="replaceFromHistory"
-				label="%ReplaceFromHistoryAction.label"
-				tooltip="%ReplaceFromHistoryAction.tooltip"
-				menubarPath="replaceWithMenu/replaceWithGroup"
-				enablesFor="1"
-				class="org.eclipse.compare.internal.ReplaceWithEditionAction">
-			</action>
-			<action
-				id="replaceWithPreviousFromHistory"
-				label="%ReplaceWithPreviousFromHistoryAction.label"
-				tooltip="%ReplaceWithPreviousFromHistoryAction.tooltip"
-				menubarPath="replaceWithMenu/replaceWithGroup"
-				enablesFor="1"
-				class="org.eclipse.compare.internal.ReplaceWithPreviousEditionAction">
-			</action>
-		</objectContribution>
-		
-		<objectContribution
-			id="org.eclipse.compare.CompareWithEditionAction"
-			objectClass="org.eclipse.core.resources.IFile" adaptable="true">
-			<menu
-				id="compareWithMenu"
-				path="additions"
-				label="%CompareWithMenu.label">
-				<separator name="compareWithGroup"/>
-			</menu>
-			<action
-				id="compareWithHistory"
-				label="%CompareWithHistoryAction.label"
-				tooltip="%CompareWithHistoryAction.tooltip"
-				menubarPath="compareWithMenu/compareWithGroup"
-				enablesFor="1"
-				class="org.eclipse.compare.internal.CompareWithEditionAction">
-			</action>
-		</objectContribution>
-			
-		<objectContribution
-			id="org.eclipse.compare.AddFromHistoryAction"
-			objectClass="org.eclipse.core.resources.IContainer" adaptable="true">
-			<action
-				id="addFromHistoryAction"
-				label="%addFromHistoryAction.label"
-				tooltip="%addFromHistoryAction.tooltip"
-				menubarPath="replaceWithMenu"
-				enablesFor="1"
-				class="org.eclipse.compare.internal.AddFromHistoryAction">
-			</action>
-		</objectContribution>
-
-	</extension>
-
-	<extension point="org.eclipse.compare.structureCreators">
-		<structureCreator
-			id="org.eclipse.compare.ZipFileStructureCreator"
-			extensions="zip"
-			class="org.eclipse.compare.ZipFileStructureCreator">
-		</structureCreator>
-	</extension>
-	
-	<extension point="org.eclipse.compare.contentMergeViewers">
-		<viewer
-			id="org.eclipse.compare.BinaryCompareViewerCreator"
-			extensions="class,exe,dll,binary,zip,jar"
-			class="org.eclipse.compare.internal.BinaryCompareViewerCreator">
-		</viewer>
-		<viewer
-			id="org.eclipse.compare.TextMergeViewerCreator"
-			extensions="txt"
-			class="org.eclipse.compare.internal.TextMergeViewerCreator">
-		</viewer>
-		<viewer
-			id="org.eclipse.compare.ImageMergeViewerCreator"
-			extensions="gif,jpg"
-			class="org.eclipse.compare.internal.ImageMergeViewerCreator">
-		</viewer>
-	</extension>
-	
-	<extension point="org.eclipse.compare.contentViewers">
-		<viewer
-			id="org.eclipse.compare.TextViewerCreator"
-			extensions="txt"
-			class="org.eclipse.compare.internal.TextViewerCreator">
-		</viewer>
-	</extension>
-
-</plugin>
-
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/.classpath b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/.classpath
deleted file mode 100644
index 8a49fb9..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/.classpath
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-    <classpathentry kind="src" path="compare"/>
-    <classpathentry kind="src" path="/org.eclipse.core.boot"/>
-    <classpathentry kind="src" path="/org.eclipse.core.runtime"/>
-    <classpathentry kind="src" path="/org.eclipse.ui"/>
-    <classpathentry kind="src" path="/org.eclipse.core.resources"/>
-    <classpathentry kind="src" path="/org.eclipse.swt"/>
-    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-    <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/.cvsignore b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/.project b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/.project
deleted file mode 100644
index bf7d0f5..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/.project
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.compare</name>
-	<comment></comment>
-	<projects>
-		<project>org.eclipse.core.boot</project>
-		<project>org.eclipse.ui</project>
-		<project>org.eclipse.core.runtime</project>
-		<project>org.eclipse.core.resources</project>
-		<project>org.eclipse.swt</project>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.PluginNature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/about.html b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/about.html
deleted file mode 100644
index 9db411a..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/about.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>20th June, 2002</p>	
-<h3>License</h3>
-<p>Eclipse.org makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-Common Public License Version 1.0 (&quot;CPL&quot;).  A copy of the CPL is available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>.
-For purposes of the CPL, &quot;Program&quot; will mean the Content.</p>
-
-<h3>Contributions</h3>
-
-<p>If this Content is licensed to you under the terms and conditions of the CPL, any Contributions, as defined in the CPL, uploaded, submitted, or otherwise
-made available to Eclipse.org, members of Eclipse.org and/or the host of Eclipse.org web site, by you that relate to such
-Content are provided under the terms and conditions of the CPL and can be made available to others under the terms of the CPL.</p>
-
-<p>If this Content is licensed to you under license terms and conditions other than the CPL (&quot;Other License&quot;), any modifications, enhancements and/or
-other code and/or documentation (&quot;Modifications&quot;) uploaded, submitted, or otherwise made available to Eclipse.org, members of Eclipse.org and/or the
-host of Eclipse.org, by you that relate to such Content are provided under terms and conditions of the Other License and can be made available
-to others under the terms of the Other License.  In addition, with regard to Modifications for which you are the copyright holder, you are also
-providing the Modifications under the terms and conditions of the CPL and such Modifications can be made available to others under the terms of
-the CPL.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/build.properties b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/build.properties
deleted file mode 100644
index f9934a8..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/build.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source.compare.jar = compare/
-bin.includes = icons/,\
-               plugin.xml,\
-               *.jar,\
-               plugin.properties,\
-               about.html
-src.includes = about.html,\
-               schema/
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/buildnotes_compare.html b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/buildnotes_compare.html
deleted file mode 100644
index 00fe8e2..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/buildnotes_compare.html
+++ /dev/null
@@ -1,1352 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="GENERATOR" content="Mozilla/4.75 [en] (WinNT; U) [Netscape]">
-   <meta name="Author" content="IBM">
-   <title>Eclipse Platform Release Notes - Desktop</title>
-</head>
-<body> 
-
-<h1>
-Eclipse Platform Build Notes<br>
-Compare</h1>
-Eclipse Build Input July 1st 2003
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=38808">#38808</a>: NPE in log file when restoring files from history.<br>
-fixed minor error in schema files
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input June 24th 2003
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=38770">#38770</a>: CompareEditor should implement IReusableEditor<br>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input June 10th 2003
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=38713">#38713</a>: Compare with -> Each other is not enabled<br>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input June 3rd 2003
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=37531">#37531</a>: the javadoc of CompareViewerPane.setImage(Image)<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=38262">#38262</a>: Apply patch applies unchecked changes<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=36399">#36399</a>: Compare did retrieve entire remote ZIP contents on selection change<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=38198">#38198</a>: TVT21:  Strings are not externalized<br>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input Mai 27th 2003
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=37849">#37849</a>: "Ignore whitespace" ignores also closing brackets?!?<br>
-
-Problem reports closed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=37582">#37582</a>: Ignore whitespace option should be a button in the compare editor<br>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input March 27th 2003
-
-<h2>
-Problem reports fixed</h2>
-Fixed 5 Javadoc warnings
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input March 24th 2003
-
-<h2>
-Problem reports fixed</h2>
-Updated schema copyright notices<br>
-updated javadoc
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input March 19th 2003
-
-<h2>
-Problem reports fixed</h2>
-Fixed wording in properties files<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=35130">#35130</a>: Dialogs do not set the dialog font<br>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input March 14th 2003
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=34732">#34732</a>: Compare/Patch preference page mnemonic<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=34696">#34696</a>: Title casing issues<br>
-
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input March 6th 2003
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=27405">#27405</a>: Should consider using the new font propogation support<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=24255">#24255</a>: Internal error when invoking "Restore from Local History" in Outline view<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=32737">#32737</a>: NegativeArraySizeException: Compare/patch preference page<br>
-
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input March 4th 2003
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=32769">#32769</a>: Missing mneumonic in compare preference page<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=32798">#32798</a>: No mnemonic for ComparePreferencePage.useSingleLine.label<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=32207">#32207</a>: Wording: "Open with Compare Editor" action in sync view<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=28190">#28190</a>: Middle area should act like sash<br>
-added required IDs for compare viewers in plugin.xml<br>
-
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input February 20th 2003
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=20248">#20248</a>: [Compare] Have to perform two actions to see diff<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=24165">#24165</a>: Should have menu action for showing compare contents<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=13332">#13332</a>: autosave before patching: can i undo?<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=24077">#24077</a>: Comparing file named 'platformOption' does not use text editor<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=23958">#23958</a>: NPE in compare with patch<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=28402">#28402</a>: CompareConfiguration leaks Images<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=13844">#13844</a>: TextMergeViewer should keep track of its posted runnables<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=14353">#14353</a>: Cannot perform merge with keyboard accelerators/mnemonics<br>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input February 18th 2003
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=5323">#5323</a>: Compare does not handle correctly conflicts at same location<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=26035">#26035</a>: Local history uses wrong character encoding<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=15654">#15654</a>: Can't maximize Compare with Local History window<br>
-
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input February 13th 2003
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=31136">#31136</a>: Red icon too intrusive<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=31357">#31357</a>: Compare View -- Compare-style option required.<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=31633">#31633</a>: Cannot apply patch successfully<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=10754">#10754</a>: Compare actions should target source window<br>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input February 11th 2003
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=25507">#25507</a>: Compare view prevents Ctrl + F6 working<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=18571">#18571</a>: patch: scary error dialog when no patch in clipboard<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=28840">#28840</a>: Strange behavious applying patch<br>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input February 6th 2003 (M5 aka RC0)
-
-<h2>
-API Additions</h2>
-Added new method EditionSelectionDialog.getSelection()
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=30525">#30525</a>: "Team" menu item missing accelerator<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=28202">#28202</a>: contentmergeviewers do not work with mixed-case extensions<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=19114">#19114</a>: Restore Java Element from Local History should also provide check boxes [compare]<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=28436">#28436</a>: Overview rule green only after focus change<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=29793">#29793</a>: Automatically suggest a fuzz factor when applying a patch<br>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input January 28th 2003
-
-<h2>
-API Additions</h2>
-Added new method CompareUI.findContentViewer(..., Object input, ...)
-
-<h2>
-Problem reports fixed</h2>
-Remoced doc folder.<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=24597">#24597</a>: Compare UI API issues<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=23883">#23883</a>: CompareDialog.commitAction.label string resource name is wrong<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=29791">#29791</a>: Rename 'Compare to Patch' to 'Apply Patch'<br>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input January 14th 2003
-
-<h2>
-Problem reports fixed</h2>
-Extension point schema files added.<br>
-Resolve status indicator is only shown if there are incoming changes.
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input January 7th 2003
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=28278">#28278</a>: TextMergeViewer leaks Color objects<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=27864">#27864</a>: Load of CompareUI fails when not triggered in UI thread<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=28388">#28388</a>: Illegal Argument Exceptions in compare viewer<br>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input December 17th 2002
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=28388">#28388</a>: Illegal Argument Exceptions in compare viewer<br>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input December 16th 2002
-
-<h2>
-Problem reports fixed</h2>
-Fixed a problem with trim in compare viewer on Mac OS X.<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=28278">#28278</a>: TextMergeViewer leaks Color objects<br>
-
-<hr WIDTH="100%"></h1>
-Eclipse Build Input December 13th 2002
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=28012">#28012</a>: Double-click behaving strangely in Synchronize View<br>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input December 10th 2002
-
-<h2>
-What's new in this drop</h2>
-The Textmergeviewer sports a first cut of a new UI for left/right copying,
-showing the 'resolved' status of a change, and uses smooth lines to
-connect the differing ranges in the left and right panes.
-The new UI options are off by default. You can turn them on
-with the three 'experimental' options on the Compare preference page.
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=27993">#27993</a>: Incorrect structure comparison<br>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input December 3rd 2002
-
-<h2>
-What's new in this drop</h2>
-
-<h3>
-API Additions</h3>
-Made internal class Splitter public API.
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=18807">#24597</a>: Compare UI API issues<br>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input November 26th 2002
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=18807">#20975</a>: Compare preference page has no F1 help<br>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input June 27th 2002
-
-<h2>
-What's new in this drop</h2>
-Updated JavaDoc package.html files
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input June 25th 2002
-
-<h2>
-What's new in this drop</h2>
-Updated JavaDoc
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input June 12th 2002
-
-<h2>
-What's new in this drop</h2>
-
-There were several complains that clicking on a zip file in the left pane (structure input pane) feeds all other
-compare panes (see bug 13730). There are cases where this is expensive (for example a large zip file that has 
-to be read from a repository). To avoid those situations the left pane now honors single or double click mode as 
-set in Preferences->Workbench. So if this preference is set to double click the user has to double click on a file
-in the left pane to actually feed all other compare panes.
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input June 8th 2002
-
-<h2>
-What's new in this drop</h2>
-
-<h3>
-API changes</h3>
-
-<h3>
-API Additions</h3>
-
-<h3>
-Other highlights</h3>
-
-<h2>
-Known deficiencies</h2>
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=18807">#18807</a>: Compare with patch fails due to missing LF<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=13730">#13730</a>: Entire zipfiles content sent prior when computing synchronization view content<br>
-
-<h2>
-Problem reports closed</h2>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input June 7th 2002
-
-<h2>
-What's new in this drop</h2>
-
-<h3>
-API changes</h3>
-
-<h3>
-API Additions</h3>
-
-<h3>
-Other highlights</h3>
-
-<h2>
-Known deficiencies</h2>
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=13730">#13730</a>: Entire zipfiles content sent prior when computing synchronization view content<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=14952">#14952</a>: Diff Browser Opens Too Small / Not Easily Resizable<br>
-
-
-<h2>
-Problem reports closed</h2>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input June 6th 2002
-
-<h2>
-What's new in this drop</h2>
-
-<h3>
-API changes</h3>
-
-<h3>
-API Additions</h3>
-New constant CompareUI.PLUGIN_ID
-
-<h3>
-Other highlights</h3>
-
-<h2>
-Known deficiencies</h2>
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=13949">#13949</a>: DBCS: bogus at text compare<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=19013">#19013</a>: backgronud color: is it honored?<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=19216">#19216</a>: Accessibility in Workbench > Compare > Text Compare<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=19371">#19371</a>: Java & Compare editor's Next/Previous toolbar buttons shouldn't be retargetable<br>
-
-
-<h2>
-Problem reports closed</h2>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input June 1st 2002
-
-<h2>
-What's new in this drop</h2>
-
-<h3>
-API changes</h3>
-
-<h3>
-API Additions</h3>
-Made class NavigationAction public.
-
-<h3>
-Other highlights</h3>
-
-<h2>
-Known deficiencies</h2>
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=8004">#8004</a>: Ctrl+E beeps every time<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=14800">#14800</a>: Compare View eats tabs<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=18200">#18200</a>: Both sets of arrows say "Select Next Change"<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=18206">#18206</a>: Casing, wording issue on "Last Resource reached" prompt<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=16285">#16285</a>: Add from Local History needs a description label<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=17431">#17431</a>: Accessibility issues<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=18148">#18148</a>: Using combinations of No and Next file button break wrapping<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=18151">#18151</a>: Next File button does not ding when on last file<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=16570">#16570</a>: Compare refuses to show further differences if not ignoring whitespaces<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=10790">#10790</a>: Patch does not apply if file not found locally<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=12643">#12643</a>: Expand all does not disable when there is no selection<br>
-
-<h2>
-Problem reports closed</h2>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input May 31st 2002
-
-<h2>
-What's new in this drop</h2>
-
-<h3>
-API changes</h3>
-
-<h3>
-API Additions</h3>
-
-<h3>
-Other highlights</h3>
-
-<h2>
-Known deficiencies</h2>
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=18116">#18116</a>: Compare view does not inherit Java editor background color<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=13190">#13190</a>: Compare with Patch does not apply Patch, if single file selected<br>
-
-
-<h2>
-Problem reports closed</h2>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input May 30th 2002
-
-<h2>
-What's new in this drop</h2>
-
-<h3>
-API changes</h3>
-
-<h3>
-API Additions</h3>
-
-<h3>
-Other highlights</h3>
-
-<h2>
-Known deficiencies</h2>
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=17699">#17699</a>: Java Editor: Local Histroy menu entries are enabled for read-only files<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=16283">#16283</a>: Add from Local History items are unsorted<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=16288">#16288</a>: Add from Local History: list of available editions flashes<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=17664">#17664</a>: Applying a patch with deleted package fails<br>
-
-
-<h2>
-Problem reports closed</h2>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input May 29th 2002
-
-<h2>
-What's new in this drop</h2>
-
-<h3>
-API changes</h3>
-
-<h3>
-API Additions</h3>
-
-<h3>
-Other highlights</h3>
-
-<h2>
-Known deficiencies</h2>
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=14040">#14040</a>: Platform interoperability issue w.r.t. Compare With Patch<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=17790">#17790</a>: Missing mnemonics in patch selection dialog<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=10917">#10917</a>: Patch support does not use mnemonics<br>
-
-<h2>
-Problem reports closed</h2>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input May 28th 2002
-
-<h2>
-What's new in this drop</h2>
-
-<h3>
-API changes</h3>
-
-<h3>
-API Additions</h3>
-
-<h3>
-Other highlights</h3>
-
-<h2>
-Known deficiencies</h2>
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=17889">#17889</a>: Should not assume type of PropertyChangeEvent values<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=17678">#17678</a>: Applying a patch does many compiles<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=17536">#17536</a>: NPE in compare<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=17121">#17121</a>: Casing of message when end of changes needs to be sentence style<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=17648">#17648</a>: Can't apply patch w/o ignoring whitespace<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=16936">#16936</a>: Compare with patch requires "Ignore Whitespace" to be turned off<br>
-
-<h2>
-Problem reports closed</h2>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input May 18th 2002
-
-<h2>
-What's new in this drop</h2>
-
-<h3>
-API changes</h3>
-
-<h3>
-API Additions</h3>
-
-<h3>
-Other highlights</h3>
-
-<h2>
-Known deficiencies</h2>
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=14371">#14371</a>: TextMergeViewer.sameDoc() is broken<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=14378">#14378</a>: CompareEditorInput never resets dirtyness flag (detailed)<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=14680">#14680</a>: Compare unreadable in high contrast black<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=14952">#14952</a>: Diff Browser Opens Too Small / Not Easily Resizable<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=14742">#14742</a>: Ignore whitespace preference<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=14624">#14624</a>: No visual cue when compared file wraps<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=13606">#13606</a>: Support multiple selection in Add from local history<br>
-
-<h2>
-Problem reports closed</h2>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input May 16th 2002
-
-<h2>
-What's new in this drop</h2>
-Bumped plugin version number to 2.0.0<br>
-Adapted to new findEditor methods<br>
-
-<h3>
-API changes</h3>
-
-<h3>
-API Additions</h3>
-
-<h3>
-Other highlights</h3>
-
-<h2>
-Known deficiencies</h2>
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=8373">#8373</a>: Compare With->Patch... missing mnemonic<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=12719">#12719</a>: "Show Pseudo-Conflicts" setting is problematic<br>
-
-<h2>
-Problem reports closed</h2>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input April 30th 2002
-
-<h2>
-What's new in this drop</h2>
-All strings NLSed.
-
-<h3>
-API changes</h3>
-
-<h3>
-API Additions</h3>
-
-<h3>
-Other highlights</h3>
-
-<h2>
-Known deficiencies</h2>
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=14515">#14515</a>: java compare uses internal jcore scanner<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=14782">#14782</a>: Add from Local History missing mnemonic<br>
-
-<h2>
-Problem reports closed</h2>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input April 18th 2002
-
-<h2>
-What's new in this drop</h2>
-All strings NLSed.
-
-<h3>
-API changes</h3>
-
-<h3>
-API Additions</h3>
-
-<h3>
-Other highlights</h3>
-
-<h2>
-Known deficiencies</h2>
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=13152">#13152</a>: Internal error in "Add from Local History..." on packages<br>
-
-<h2>
-Problem reports closed</h2>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input April 9th 2002
-
-<h2>
-What's new in this drop</h2>
-New context menu action 'Add From Local History'. Just select any resource container and
-'Add From Local History' presents all files that were deleted from the workspace but are
-still in the local history. 
-
-<h3>
-API changes</h3>
-
-<h3>
-API Additions</h3>
-
-<h3>
-Other highlights</h3>
-
-<h2>
-Known deficiencies</h2>
-The new 'Add From Local History' suffers from #12915. It works if the files were deleted
-within the same session. However if you shut down and restart a workspace some deleted
-files are nor listed.
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=11578">#11578</a>: Patch: Missing resource on dialog<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=11579">#11579</a>: Compare with Patch should be disabled on closed projects<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=11907">#11907</a>: clicking in bird's eye view spots does nothing if panes not synched<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=11536">#11536</a>: Option to turn off structured comparison<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=10682">#10682</a>: Need better UI for recovering deletions from local history<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=11446">#11446</a>: provide "add from local history" for compilation units<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=8615">#8615</a>: Styled Text widget does not respond to system color change<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=9673">#9673</a>: editor background color - no effect on other viewers<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=11642">#11642</a>: Compare editors not using default background colors<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=10434">#10434</a>: Compare browser fails silently and does not give result<br>
-
-<h2>
-Problem reports closed</h2>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input March 18th 2002
-
-<h2>
-What's new in this drop</h2>
-First cut of a birdseyeview for the text compare viewer.<br>
-'Compare which Each other' for Java elements.
-
-<h3>
-API changes</h3>
-
-<h3>
-API Additions</h3>
-
-<h3>
-Other highlights</h3>
-
-<h2>
-Known deficiencies</h2>
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=3641">#3641</a>: DCR: Can't compare from outliner (1GDHJKK)<br>
-
-<h2>
-Problem reports closed</h2>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input March 14th 2002
-
-<h2>
-What's new in this drop</h2>
-
-<h3>
-API changes</h3>
-
-<h3>
-API Additions</h3>
-
-<h3>
-Other highlights</h3>
-
-<h2>
-Known deficiencies</h2>
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=11305">#11305</a>: Can't compare a "C" file<br>
-
-
-<h2>
-Problem reports closed</h2>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input March 12th 2002
-
-<h2>
-What's new in this drop</h2>
-Structure Compare viewers are enabled by default.<br>
-
-<h3>
-API changes</h3>
-
-<h3>
-API Additions</h3>
-
-<h3>
-Other highlights</h3>
-
-<h2>
-Known deficiencies</h2>
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=10379">#10379</a>: Compare with Local History Dialog: lower pane is missing a bordeer<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=9768">#9768</a>: (empty-menu) in compare view<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=9842">#9842</a>: Expand All action needed in structure compare view<br>
-
-
-<h2>
-Problem reports closed</h2>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input March 5th 2002
-
-<h2>
-What's new in this drop</h2>
-
-<h3>
-API changes</h3>
-
-<h3>
-API Additions</h3>
-
-<h3>
-Other highlights</h3>
-
-<h2>
-Known deficiencies</h2>
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=9869">#9869</a>: Need more support for creating/deleting resources<br>
-
-
-<h2>
-Problem reports closed</h2>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input February 26th 2002
-
-<h2>
-What's new in this drop</h2>
-Patch: for every rejected file a task marker is added<br>
-Compare preference page shows options in a preview<br>
-New preference option for additional compare status line information
-
-<h3>
-API changes</h3>
-
-<h3>
-API Additions</h3>
-
-<h3>
-Other highlights</h3>
-
-<h2>
-Known deficiencies</h2>
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=9540">#9540</a>: Compare with patch: it should not be possible to check items that could not be applied<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=9532">#9532</a>: Compare with patch: next disabled although clipboard specified<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=7681">#7681</a>: Structured results expands import statements<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=9572">#9572</a>: Debugging trace left in status bar<br>
-
-
-<h2>
-Problem reports closed</h2>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input February 12th 2002
-
-<h2>
-What's new in this drop</h2>
-The patch wizard no longer opens a Compare Editor but applies the
-patch directly to the workspace. This will be the default.
-In the future the old behavior of opening the Compare Editor will be
-an additional option when finishing the wizard.
-<br>
-Patch wizard has a 'Reverse' option for applying a "reversed" patch.
-This option can be used to 'undo' a patch.
-
-<h3>
-API changes</h3>
-
-<h3>
-API Additions</h3>
-
-<h3>
-Other highlights</h3>
-
-<h2>
-Known deficiencies</h2>
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=9153">#9153</a>: NPE when closing synchronize view<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=9331">#9331</a>: NPE during compare with stream version<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=6346">#6346</a>: Problems with Patch<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=6727">#6727</a>: Patch: *.rej file must be saved in workspace<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=7358">#7358</a>: Internal Error in Compare with Patch with new files<br>
-
-<h2>
-Problem reports closed</h2>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input February 5th 2002
-
-<h2>
-What's new in this drop</h2>
-The structure compare pane opens when a resource is selected.
-In previous version a double click was required.
-
-<h3>
-API changes</h3>
-
-<h3>
-API Additions</h3>
-
-<h3>
-Other highlights</h3>
-
-<h2>
-Known deficiencies</h2>
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=5063">#5063</a>: Should not have to double-click to open Structure Compare<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=2602">#2602</a>: Compare FW accessibility issues (1GK79UB)<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=2707">#2707</a>: Merge viewer should ask for save before releasing (1GI9JXS)<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=2772">#2772</a>: DCR: Automatic structure compare (1GJ6EUY)<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=3829">#3829</a>: Smart rename button enabled when no smartness is available (1GEUVHN)<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=9089">#9089</a>: Local history - Selecting item in structured compare has no effect<br>
-
-<h2>
-Problem reports closed</h2>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input January 29th 2002
-
-<h2>
-What's new in this drop</h2>
-
-<h3>
-API changes</h3>
-
-<h3>
-API Additions</h3>
-
-<h3>
-Other highlights</h3>
-
-<h2>
-Known deficiencies</h2>
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=6271">#6271</a>: Can't tell which file is which in Compare browser<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=2519">#2519</a>: next/prev arrows active when only one difference in compare (1GFIQX3)<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=8363">#8363</a>: NPE comparing two resources in the navigator.<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=2501">#2501</a>: Empty menu in compare browser (1GFBQKE)<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=2854">#2854</a>: Compare: Save code path problematic (1GJYGAX)<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=8574">#8574</a>: Not structure compare in compare with local history<br>
-
-<h2>
-Problem reports closed</h2>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input January 23th 2002
-
-<h2>
-What's new in this drop</h2>
-
-<h3>
-API changes</h3>
-
-<h3>
-API Additions</h3>
-
-<h3>
-Other highlights</h3>
-
-<h2>
-Known deficiencies</h2>
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=8089">#8089</a>: Replace from local history: parse error<br>
-
-<h2>
-Problem reports closed</h2>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input January 22th 2002
-
-<h2>
-What's new in this drop</h2>
-Fixed an inconsistency in the binary compare viewer:
-info message didn't match +/-icon in the resource compare pane.
-
-<h3>
-API changes</h3>
-
-<h3>
-API Additions</h3>
-
-<h3>
-Other highlights</h3>
-
-<h2>
-Known deficiencies</h2>
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=3859">#3859</a>: replace from history does not work for elements with error (1GEYIZ6)<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=6177">#6177</a>: Double click action dangerous in 'Restore from Local History'<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=7821">#7821</a>: Team 2.0 CVS synchronze bug 'no-name' dirs..<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=2773">#2773</a>: Java structure compare should give better indication when no changes (1GJ6ENE)<br>
-
-<h2>
-Problem reports closed</h2>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input January 15th 2002
-
-<h2>
-What's new in this drop</h2>
-Fixed a problem in DiffNode.getName()and the DiffTreeViewer's label provider
-where the left and right half of a DiffNode label would be reversed because
-the "leftIsLocal" property of a CompareConfiguration wasn't obeyed.
-
-<h3>
-API changes</h3>
-
-<h3>
-API Additions</h3>
-
-<h3>
-Other highlights</h3>
-
-<h2>
-Known deficiencies</h2>
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=1893">#1893</a>: Compare Viewer doesn't scroll to last line (1GBB34N)<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=5839">#5839</a>: Usability: Initial diff is sometimes not horizontally aligned<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=5325">#5325</a>: Compare always scroll the text pane to the extreme limit<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=7048">#7048</a>: First element not selected<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=2548">#2548</a>: Project compare should open viewing selected file (1GFMRP6)<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=2938">#2938</a>: Replace from local history should show busy cursor (1GKU0P3)<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=7594">#7594</a>: Menu entry "Replace with Previous" shouldn't have a "..."<br>
-Workaround added for:<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=7320">#7320</a>: Next diff scrolls when going into current diff<br>
-
-<h2>
-Problem reports closed</h2>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input January 8th 2002
-
-<h2>
-What's new in this drop</h2>
-
-<h3>
-API changes</h3>
-
-<h3>
-API Additions</h3>
-Added methods to CompareUI plugin for adding and removing aliases
-for the file extension to StructureCompareViewer mapping
-(addStructureViewerAlias, removeStructureViewerAlias).
-
-<h3>
-Other highlights</h3>
-
-<h2>
-Known deficiencies</h2>
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=6828">#6828</a>: Support with replace with previous<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=2396">#2396</a>: Save in compare editors needs progress bar (1GEYF58)<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=5271">#5271</a>: JARs compared as source in release browser<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=5121">#5121</a>: Replace with Previous (from local history)<br>
-
-<h2>
-Problem reports closed</h2>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input December 11th 2001
-
-<h2>
-What's new in this drop</h2>
-Keyboard shortcuts for 'Goto next Difference' and 'Goto previous Difference'
-changed to Control-E and Control-Shift-E.<br>
-Better NLS support.<br>
-Updated file "about.html".
-
-<h3>
-API changes</h3>
-
-<h3>
-API Additions</h3>
-
-<h3>
-Other highlights</h3>
-
-<h2>
-Known deficiencies</h2>
-
-<h2>
-Problem reports fixed</h2>
-
-<h2>
-Problem reports closed</h2>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input December 4th 2001
-
-<h2>
-What's new in this drop</h2>
-
-<h3>
-API changes</h3>
-
-<h3>
-API Additions</h3>
-
-<h3>
-Other highlights</h3>
-
-<h2>
-Known deficiencies</h2>
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=4381">#4381</a>: Replace from local histroy - workspace element included <br>
-
-<h2>
-Problem reports closed</h2>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse Build Input November 27th 2001
-
-<h2>
-What's new in this drop</h2>
-
-<h3>
-API changes</h3>
-
-<h3>
-API Additions</h3>
-
-<h3>
-Other highlights</h3>
-
-<h2>
-Known deficiencies</h2>
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=6298">#6298</a>: Replace with Local History: Workbench -> Workspace<br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=5238">#5238</a>: Compare fails if takes more than 20 seconds<br>
-
-<h2>
-Problem reports closed</h2>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse SDK Build 210, November 12th, 2001
-
-<h2>
-What's new in this drop</h2>
-First cut for 'rejected hunk' support.
-
-<h3>
-API changes</h3>
-
-<h3>
-API Additions</h3>
-new classes CompareViewerPane and CompareViewerSwitchingPane<br>
-
-<h3>
-Other highlights</h3>
-Improved Patch wizard.<br>
-
-<h2>
-Known deficiencies</h2>
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=5723">#5723</a>: Apply Patch dialog has no radio selection<br>
-
-<h2>
-Problem reports closed</h2>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse SDK Build 207, November 1st, 2001
-
-<h2>
-What's new in this drop</h2>
-
-<h3>
-API changes</h3>
-
-<h3>
-API Additions</h3>
-
-<h3>
-Other highlights</h3>
-
-<h2>
-Known deficiencies</h2>
-
-<h2>
-Problem reports fixed</h2>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=5334">#5334: Internal errors using patch tool</a><br>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=5150">#5150: Compare with patch cannot read VCM's CVS patch file</a><br>
-
-<h2>
-Problem reports closed</h2>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse SDK Build 204, October 12th, 2001
-
-<h2>
-What's new in this drop</h2>
-First cut of patch support.
-
-<h3>
-API changes</h3>
-
-<h3>
-API Additions</h3>
-
-<h3>
-Other highlights</h3>
-
-<h2>
-Known deficiencies</h2>
-
-<h2>
-Problem reports fixed</h2>
-
-<h2>
-Problem reports closed</h2>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse SDK Build 202, September 27th, 2001
-
-<h2>
-What's new in this drop</h2>
-
-<h3>
-API changes</h3>
-
-<h3>
-API Additions</h3>
-
-<h3>
-Other highlights</h3>
-
-<h2>
-Known deficiencies</h2>
-
-<h2>
-Problem reports fixed</h2>
-1GKKUA5: ITPUI:WINNT - Severe: memory leak in sync view<br>
-1GKKGGS: ITPJUI:WIN2000 - (136) compares zips as source<br>
-
-<h2>
-Problem reports closed</h2>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse SDK Build 201, September 21st, 2001
-
-<h2>
-What's new in this drop</h2>
-removed direction icon in TextMergeViewer for two-way compare
-
-<h3>
-API changes</h3>
-
-<h3>
-API Additions</h3>
-
-<h3>
-Other highlights</h3>
-
-<h2>
-Known deficiencies</h2>
-
-<h2>
-Problem reports fixed</h2>
-1GJURWJ: ITPUI:WIN2000 - Hebrew + Japanese: compare view defaults to binary<br>
-1GK0388: ITPJCORE:WIN2000 - replace with local history: selecting (workspace) deletes source<br>
-1GITG2V: ITPUI:WIN2000 - Comparing html files uses binary compare<br>
-1GJW2TP: ITPJUI:WIN2000 - java compare: why beep every time?<br>
-
-<h2>
-Problem reports closed</h2>
-
-<h1>
-<hr WIDTH="100%"></h1>
-Eclipse SDK Build 200, September 13th, 2001
-
-<h2>
-What's new in this drop</h2>
-If not specified otherwise Compare viewer font is taken from workbench text font<br>
-The shortcut for "Goto Next/Previous Difference" is Ctrl-D/Ctrl-Shift-D
-to avoid a clash with Ctrl-P of the Print command.
-
-<h3>
-API changes</h3>
-
-<h3>
-API Additions</h3>
-new method EditionSelectionDialog.setHideIdenticalEntries(boolean)<br>
-new method EditionSelectionDialog.setTargetIsRight(boolean)<br>
-new method EditionSelectionDialog.setAddMode(boolean)<br>
-new method CompareEditorInput.saveChanges(...)<br>
-new method TextMergeViewer.createLineComparator(IDocument document, IRegion region, boolean ignoreWhiteSpace)<br>
-
-<h3>
-Other highlights</h3>
-
-<h2>
-Known deficiencies</h2>
-
-<h2>
-Problem reports fixed</h2>
-1GFMLFB: ITPUI:WIN2000 - files that are out of sync with the file system appear as empty<br>
-1GG0ELM: ITPVCM:ALL - Local history displayed some of Today's items as Yesterday<br>
-1GGNKHN: ITPJUI:ALL - No progress during replace with local history<br>
-1GF2JNI: ITPUI:ALL - (minor)Compare failed title should be title case<br>
-1GHBPA1: ITPVCM:WINNT - Compare - next change arrow switches to wrong file<br>
-1GGQQH3: ITPJUI:WINNT - Compare hightlights a non-change instead of the change<br>
-1GI5DN9: ITPUI:WIN2000 - Conflicting token deletions don't show up in text compare viewer<br>
-1GI3KUR: ITPJUI:WIN2000 - Compare: double-click in versions list closes view<br>
-1GFFR4B: ITPUI:WIN98 - local history is misleading<br>
-1GBM0IL: ITPUI:WINNT - CompareEditorInput#save should throw CoreException<br>
-1GI99LE: ITPUI:ALL - Compare viewer does not show last line when horizontal scroll bar is present<br>
-1GBB34N: ITPJUI:WIN2000 - Compare Viewer doesn't scroll to last line<br>
-1GGZ8DO: ITPJUI:WIN - MergeViewer invalid selection range<br>
-1GIIBHM: ITPUI:WIN2000 - Problems when comparing zip files<br>
-1GIKKOZ: ITPUI:ALL - alt copyright text in html doc needs update<br>
-1GIURNB: ITPUI:ALL - property file of EditionSelectionDialog contains configuration options<br>
-1GIUS6L: ITPUI:ALL - TextMergeViewer uses deprecated Thread.stop()<br>
-1GI3HDZ: ITPJUI:ALL - Compare: conflicts with no ancestor does not show differences<br>
-1GEUX0D: ITPJUI:ALL - not state aware toolbar button in compare<br>
-
-<h2>
-Problem reports closed</h2>
-1GF9Y9C: ITPUI:WIN2000 - DCR: only get ancestor pane contents if pane is visible<br>
-
-</body>
-</html>
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/BufferedContent.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/BufferedContent.java
deleted file mode 100644
index 2f87cb1..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/BufferedContent.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare;
-
-import java.io.*;
-import org.eclipse.jface.util.ListenerList;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.compare.internal.Utilities;
-
-/**
- * Abstract implementation for a buffered <code>IStreamContentAccessor</code>.
- * <p>
- * Subclasses must implement the <code>createStream</code> method
- * to connect the buffered content with a streamable source (e.g., a file).
- * <p>
- * As long as the contents of <code>BufferedContent</code> is only retrieved as an input stream
- * (by means of <code>getContents</code>) and the <code>BufferedContent</code> is not modified (with
- * <code>setContent</code>) no buffering takes place.
- * Buffering starts when either method <code>getContent</code> or <code>setContent</code> is called.
- * 
- * @see IContentChangeNotifier
- * @see IStreamContentAccessor
- */
-public abstract class BufferedContent implements IContentChangeNotifier, IStreamContentAccessor {
-	
-	byte[] fContent;
-	private ListenerList fListenerList;
-	
-	/**
-	 * Creates a buffered stream content accessor.
-	 */
-	protected BufferedContent() {
-	}
-		
-	/* (non-Javadoc)
-	 * see IStreamContentAccessor.getContents
-	 */
-	public InputStream getContents() throws CoreException {
-		if (fContent != null)
-			return new ByteArrayInputStream(fContent);
-		return createStream();
-	}
-
-	/**
-	 * Creates and returns a stream for reading the contents.
-	 * <p>
-	 * Subclasses must implement this method.
-	 * </p>
-	 *
-	 * @return the stream from which the content is read
-	 * @exception CoreException if the contents could not be accessed
-	 */
-	protected abstract InputStream createStream() throws CoreException;
-	
-	/**
-	 * Sets the contents. Registered content change listeners are notified.
-	 *
-	 * @param contents the new contents
-	 */
-	public void setContent(byte[] contents) {
-		fContent= contents;
-		fireContentChanged();
-	}
-	
-	/**
-	 * Returns the contents as an array of bytes.
-	 *
-	 * @return the contents as an array of bytes, or <code>null</code> if
-	 *   the contents could not be accessed
-	 */
-	public byte[] getContent() {
-		if (fContent == null) {
-			try {
-				InputStream is= createStream();
-				fContent= Utilities.readBytes(is);
-			} catch(CoreException ex) {
-			}
-		}
-		return fContent;
-	}
-
-	/**
-	 * Discards the buffered content.
-	 */
-	public void discardBuffer() {
-		fContent= null;
-	}
-	
-	/* (non-Javadoc)
-	 * see IContentChangeNotifier.addChangeListener
-	 */
-	public void addContentChangeListener(IContentChangeListener listener) {
-		if (fListenerList == null)
-			fListenerList= new ListenerList();
-		fListenerList.add(listener);
-	}
-	
-	/* (non-Javadoc)
-	 * see IContentChangeNotifier.removeChangeListener
-	 */
-	public void removeContentChangeListener(IContentChangeListener listener) {
-		if (fListenerList != null) {
-			fListenerList.remove(listener);
-			if (fListenerList.isEmpty())
-				fListenerList= null;
-		}
-	}
-	
-	/**
-	 * Notifies all registered <code>IContentChangeListener</code>s of a content change.
-	 */
-	protected void fireContentChanged() {
-		if (fListenerList != null) {
-			Object[] listeners= fListenerList.getListeners();
-			for (int i= 0; i < listeners.length; i++)
-				((IContentChangeListener)listeners[i]).contentChanged(this);
-		}
-	}
-}
-
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/CompareConfiguration.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/CompareConfiguration.java
deleted file mode 100644
index 4fe3a8a..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/CompareConfiguration.java
+++ /dev/null
@@ -1,445 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare;
-
-import java.util.HashMap;
-
-import org.eclipse.swt.graphics.*;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.util.*;
-import org.eclipse.jface.preference.IPreferenceStore;
-
-import org.eclipse.compare.internal.*;
-import org.eclipse.compare.structuremergeviewer.Differencer;
-
-/**
- * A <code>CompareConfiguration</code> object
- * controls various UI aspects of compare/merge viewers like
- * title labels and images, or whether a side of a merge viewer is editable.
- * In addition to these fixed properties <code>ICompareConfiguration</code> provides
- * API for an open ended set of properties. Different viewers which share the same
- * configuration can communicate via this mechanism. E.g. if a compare editor
- * has a button for controlling whether compare viewers ignore white space,
- * the button would trigger a change of the boolean <code>IGNORE_WHITESPACE</code> property
- * and all interested viewers would receive notification.
- * <p>
- * Suitable default labels are provided (without images); both the left and right sides
- * are editable.
- * </p>
- * <p>
- * Clients may use this class as is, or subclass to add new state and behavior.
- * </p>
- */
-public class CompareConfiguration {
-
-	/**
-	 * Name of the ignore whitespace property (value <code>"IGNORE_WHITESPACE"</code>).
-	 */
-	public static final String IGNORE_WHITESPACE= "IGNORE_WHITESPACE"; //$NON-NLS-1$
-	/**
-	 * Name of the show pseudo conflicts property (value <code>"SHOW_PSEUDO_CONFLICTS"</code>).
-	 */
-	public static final String SHOW_PSEUDO_CONFLICTS= "SHOW_PSEUDO_CONFLICTS"; //$NON-NLS-1$
-
-
-	private static final int WIDTH= 22;
-	
-	private static ImageDescriptor[] fgImages= new ImageDescriptor[16];
-	private static Object fgDummy= new Object();
-	private static HashMap fgMap= new HashMap(20);
-	private static boolean fLeftIsLocal= true;
-
-	static {
-		if (fLeftIsLocal) {
-			fgImages[Differencer.ADDITION]= CompareUIPlugin.getImageDescriptor("ovr16/del_ov.gif"); //$NON-NLS-1$
-			fgImages[Differencer.LEFT + Differencer.ADDITION]= CompareUIPlugin.getImageDescriptor("ovr16/r_inadd_ov.gif"); //$NON-NLS-1$
-			fgImages[Differencer.RIGHT + Differencer.ADDITION]= CompareUIPlugin.getImageDescriptor("ovr16/r_outadd_ov.gif"); //$NON-NLS-1$
-
-			fgImages[Differencer.DELETION]= CompareUIPlugin.getImageDescriptor("ovr16/add_ov.gif"); //$NON-NLS-1$
-			fgImages[Differencer.LEFT + Differencer.DELETION]= CompareUIPlugin.getImageDescriptor("ovr16/r_indel_ov.gif"); //$NON-NLS-1$
-			fgImages[Differencer.RIGHT + Differencer.DELETION]= CompareUIPlugin.getImageDescriptor("ovr16/r_outdel_ov.gif"); //$NON-NLS-1$
-
-			fgImages[Differencer.LEFT + Differencer.CHANGE]= CompareUIPlugin.getImageDescriptor("ovr16/r_inchg_ov.gif"); //$NON-NLS-1$
-			fgImages[Differencer.RIGHT + Differencer.CHANGE]= CompareUIPlugin.getImageDescriptor("ovr16/r_outchg_ov.gif"); //$NON-NLS-1$
-		} else {
-			fgImages[Differencer.ADDITION]= CompareUIPlugin.getImageDescriptor("ovr16/add_ov.gif"); //$NON-NLS-1$
-			fgImages[Differencer.LEFT + Differencer.ADDITION]= CompareUIPlugin.getImageDescriptor("ovr16/inadd_ov.gif"); //$NON-NLS-1$
-			fgImages[Differencer.RIGHT + Differencer.ADDITION]= CompareUIPlugin.getImageDescriptor("ovr16/outadd_ov.gif"); //$NON-NLS-1$
-
-			fgImages[Differencer.DELETION]= CompareUIPlugin.getImageDescriptor("ovr16/del_ov.gif"); //$NON-NLS-1$
-			fgImages[Differencer.LEFT + Differencer.DELETION]= CompareUIPlugin.getImageDescriptor("ovr16/indel_ov.gif"); //$NON-NLS-1$
-			fgImages[Differencer.RIGHT + Differencer.DELETION]= CompareUIPlugin.getImageDescriptor("ovr16/outdel_ov.gif"); //$NON-NLS-1$
-
-			fgImages[Differencer.LEFT + Differencer.CHANGE]= CompareUIPlugin.getImageDescriptor("ovr16/inchg_ov.gif"); //$NON-NLS-1$
-			fgImages[Differencer.RIGHT + Differencer.CHANGE]= CompareUIPlugin.getImageDescriptor("ovr16/outchg_ov.gif"); //$NON-NLS-1$
-		}
-
-		fgImages[Differencer.CONFLICTING + Differencer.ADDITION]= CompareUIPlugin.getImageDescriptor("ovr16/confadd_ov.gif"); //$NON-NLS-1$
-		fgImages[Differencer.CONFLICTING + Differencer.DELETION]= CompareUIPlugin.getImageDescriptor("ovr16/confdel_ov.gif"); //$NON-NLS-1$
-		fgImages[Differencer.CONFLICTING + Differencer.CHANGE]= CompareUIPlugin.getImageDescriptor("ovr16/confchg_ov.gif"); //$NON-NLS-1$
-	}
-
-	private IPreferenceStore fPreferenceStore;
-	private ListenerList fListeners= new ListenerList();
-	private HashMap fProperties= new HashMap();
-	private boolean fLeftEditable= true;
-	private boolean fRightEditable= true;
-	private String fAncestorLabel;
-	private String fLeftLabel;
-	private String fRightLabel;
-	private Image fAncestorImage;
-	private Image fRightImage;
-	private Image fLeftImage;
-	private Image[] fImages= new Image[16];
-	
-	/**
-	 * Creates a new configuration with editable left and right sides,
-	 * suitable default labels, and no images.
-	 * The given preference store is used to connect this configuration
-	 * with the Compare preference page properties <code>ComparePreferencePage.INITIALLY_SHOW_ANCESTOR_PANE</code>,
-	 * and <code>CompareConfiguration.IGNORE_WHITESPACE</code>.
-	 * 
-	 * @param prefStore the preference store which this configuration holds onto.
-	 * @since 2.0
-	 */
-	public CompareConfiguration(IPreferenceStore prefStore) {
-		
-		setProperty("LEFT_IS_LOCAL", new Boolean(fLeftIsLocal)); //$NON-NLS-1$
-		
-		fPreferenceStore= prefStore;
-		if (fPreferenceStore != null) {
-			boolean b= fPreferenceStore.getBoolean(ComparePreferencePage.INITIALLY_SHOW_ANCESTOR_PANE);
-			setProperty(ComparePreferencePage.INITIALLY_SHOW_ANCESTOR_PANE, new Boolean(b));
-			
-			b= fPreferenceStore.getBoolean(ComparePreferencePage.IGNORE_WHITESPACE);
-			setProperty(CompareConfiguration.IGNORE_WHITESPACE, new Boolean(b));
-		}
-	}	
-	
-	/**
-	 * Creates a new configuration with editable left and right sides,
-	 * suitable default labels, and no images.
-	 * This configuration uses the preference store of the Compare plugin
-	 * (<code>CompareUIPlugin.getDefault().getPreferenceStore()</code>).
-	 */
-	public CompareConfiguration() {
-		this(CompareUIPlugin.getDefault().getPreferenceStore());
-	}
-	
-	/**
-	 * Returns the preference store of this configuration.
-	 * @return the preference store of this configuration.
-	 * @since 2.0
-	 */
-	public IPreferenceStore getPreferenceStore() {
-		return fPreferenceStore;
-	}
-	
-	/**
-	 * Returns an image showing the specified change kind.
-	 * The different kind of changes are defined in the <code>Differencer</code>.
-	 * Newly created images are remembered by this class and
-	 * disposed when the <code>dispose</code> method is called.
-	 *
-	 * @param kind the kind of change as defined in <code>Differencer</code>.
-	 * @return an modification of the base image reflecting the kind of change.
-	 * @see org.eclipse.compare.structuremergeviewer.Differencer
-	 * @since 2.0
-	 */
-	public Image getImage(int kind) {
-		Image image= fImages[kind & 15];
-		if (image == null) {
-			ImageDescriptor id= fgImages[kind & 15];
-			if (id != null)				
-				image= id.createImage();
-			fImages[kind & 15]= image;
-		}
-		return image;
-	}
-	
-	/**
-	 * Returns an image showing the specified change kind applied to a
-	 * given base image. The different kind of changes are defined in the <code>Differencer</code>.
-	 * Typically an implementation would build a composite image 
-	 * from the given base image and an image representing the change kind.
-	 * Newly created images are remembered by this class and
-	 * disposed when the <code>dispose</code> method is called.
-	 *
-	 * @param base the image which is modified to reflect the kind of change
-	 * @param kind the kind of change as defined in <code>Differencer</code>.
-	 * @return an modification of the base image reflecting the kind of change.
-	 * @see org.eclipse.compare.structuremergeviewer.Differencer
-	 */
-	public Image getImage(Image base, int kind) {
-
-		Object key= base;
-		if (key == null)
-			key= fgDummy;
-
-		kind &= 15;
-
-		Image[] a= (Image[]) fgMap.get(key);
-		if (a == null) {
-			a= new Image[16];
-			fgMap.put(key, a);
-		}
-		Image b= a[kind];
-		if (b == null) {
-			b= new DiffImage(base, fgImages[kind], WIDTH, !fLeftIsLocal).createImage();
-			CompareUI.disposeOnShutdown(b);
-			a[kind]= b;
-		}
-		return b;
-	}
-	
-	/**
-	 * Dispose of this compare configuration.
-	 * This method is called if the compare configuration is no longer used.
-	 * An implementation must dispose of all resources.
-	 */
-	public void dispose() {
-		if (fImages != null) {
-			for (int i= 0; i < fImages.length; i++){
-				Image image= fImages[i];
-				if (image != null && !image.isDisposed())
-					image.dispose();
-			}
-		}
-		fImages= null;
-	}
-
-	/**
-	 * Fires a <code>PropertyChangeEvent</code> to registered listeners.
-	 *
-	 * @param propertyName the name of the property that has changed
-	 * @param oldValue the property's old value
-	 * @param newValue the property's new value
-	 */
-	private void fireChange(String propertyName, Object oldValue, Object newValue) {
-		PropertyChangeEvent event= null;
-		Object[] listeners= fListeners.getListeners();
-		if (listeners != null) {
-			for (int i= 0; i < listeners.length; i++) {
-				IPropertyChangeListener l= (IPropertyChangeListener) listeners[i];
-				if (event == null)
-					event= new PropertyChangeEvent(this, propertyName, oldValue, newValue);
-				l.propertyChange(event);
-			}
-		}
-	}
-
-	/* (non javadoc)
-	 * see IPropertyChangeNotifier.addListener
-	 */
-	public void addPropertyChangeListener(IPropertyChangeListener listener) {
-		fListeners.add(listener);
-	}
-
-	/* (non javadoc)
-	 * see IPropertyChangeNotifier.removeListener
-	 */
-	public void removePropertyChangeListener(IPropertyChangeListener listener) {
-		fListeners.remove(listener);
-	}
-
-	/**
-	 * Sets the property with the given name.
-	 * If the new value differs from the old a <code>PropertyChangeEvent</code>
-	 * is sent to registered listeners.
-	 *
-	 * @param propertyName the name of the property to set
-	 * @param value the new value of the property
-	 */
-	public void setProperty(String key, Object newValue) {
-		Object oldValue= fProperties.get(key);
-		fProperties.put(key, newValue);
-		if (oldValue == null || !oldValue.equals(newValue))
-			fireChange(key, oldValue, newValue);
-	}
-
-	/**
-	 * Returns the property with the given name, or <code>null</code>
-	 * if no such property exists.
-	 *
-	 * @param propertyName the name of the property to retrieve
-	 * @return the property with the given name, or <code>null</code> if not found
-	 */
-	public Object getProperty(String key) {
-		return fProperties.get(key);
-	}
-
-	//---- ancestor
-	
-	/**
-	 * Sets the label to use for the ancestor of compare/merge viewers.
-	 *
-	 * @param label the new label for the ancestor of compare/merge viewers
-	 */
-	public void setAncestorLabel(String label) {
-		fAncestorLabel= label;
-	}
-
-	/**
-	 * Returns the label for the ancestor side of compare/merge viewers.
-	 * This label is typically shown in the title of the ancestor area in a compare viewer.
-	 *
-	 * @param element the input object of a compare/merge viewer or <code>null</code>
-	 * @return the label for the ancestor side or <code>null</code>
-	 */
-	public String getAncestorLabel(Object element) {
-		return fAncestorLabel;
-	}
-	
-	/**
-	 * Sets the image to use for the ancestor of compare/merge viewers.
-	 * The CompareConfiguration does not automatically dispose the old image.
-	 *
-	 * @param image the new image for the ancestor of compare/merge viewers
-	 */
-	public void setAncestorImage(Image image) {
-		fAncestorImage= image;
-	}
-
-	/**
-	 * Returns the image for the ancestor side of compare/merge viewers.
-	 * This image is typically shown in the title of the ancestor area in a compare viewer.
-	 *
-	 * @param element the input object of a compare/merge viewer or <code>null</code>
-	 * @return the image for the ancestor side or <code>null</code>
-	 */	
-	public Image getAncestorImage(Object element) {
-		return fAncestorImage;
-	}
-
-	//---- left side
-	
-	/**
-	 * Controls whether the left side of a merge viewer is editable.
-	 *
-	 * @param editable if the value is <code>true</code> left side is editable
-	 */
-	public void setLeftEditable(boolean editable) {
-		fLeftEditable= editable;
-	}
-	
-	/**
-	 * Returns whether the left hand side of a merge viewer is editable.
-	 * 
-	 * @return <code>true</code> if the left hand side is editable
-	 */
-	public boolean isLeftEditable() {
-		return fLeftEditable;
-	}
-
-	/**
-	 * Sets the label to use for the left side of compare/merge viewers.
-	 *
-	 * @param label the new label for the left side of compare/merge viewers
-	 */
-	public void setLeftLabel(String label) {
-		fLeftLabel= label;
-	}
-	
-	/**
-	 * Returns the label for the left hand side of compare/merge viewers.
-	 * This label is typically shown in the title of the left side of a compare viewer.
-	 *
-	 * @param element the input object of a compare/merge viewer or <code>null</code>
-	 * @return the label for the left hand side or <code>null</code>
-	 */
-	public String getLeftLabel(Object element) {
-		return fLeftLabel;
-	}
-
-	/**
-	 * Sets the image to use for the left side of compare/merge viewers.
-	 * The compare configuration does not automatically dispose the old image.
-	 *
-	 * @param image the new image for the left side of compare/merge viewers
-	 */
-	public void setLeftImage(Image image) {
-		fLeftImage= image;
-	}
-
-	/**
-	 * Returns the image for the left hand side of compare/merge viewers.
-	 * This image is typically shown in the title of the left side of a compare viewer.
-	 *
-	 * @param element the input object of a compare/merge viewer or <code>null</code>
-	 * @return the image for the left hand side or <code>null</code>
-	 */	
-	public Image getLeftImage(Object element) {
-		return fLeftImage;
-	}
-	
-	//---- right side
-
-	/**
-	 * Controls whether the right side of a merge viewer is editable.
-	 *
-	 * @param editable if the value is <code>true</code> right side is editable
-	 */
-	public void setRightEditable(boolean editable) {
-		fRightEditable= editable;
-	}
-	
-	/**
-	 * Returns whether the right hand side of a merge viewer is editable.
-	 * 
-	 * @return <code>true</code> if the right hand side is editable
-	 */
-	public boolean isRightEditable() {
-		return fRightEditable;
-	}
-
-	/**
-	 * Sets the label to use for the right side of compare/merge viewers.
-	 *
-	 * @param label the new label for the right side of compare/merge viewers
-	 */
-	public void setRightLabel(String label) {
-		fRightLabel= label;
-	}
-
-	/**
-	 * Returns the label for the right hand side of compare/merge viewers.
-	 * This label is typically shown in the title of the right side of a compare viewer.
-	 *
-	 * @param element the input object of a compare/merge viewer or <code>null</code>
-	 * @return the label for the right hand side or <code>null</code>
-	 */
-	public String getRightLabel(Object element) {
-		return fRightLabel;
-	}
-
-	/**
-	 * Sets the image to use for the right side of compare/merge viewers.
-	 * The compare configuration does not automatically dispose the old image.
-	 *
-	 * @param image the new image for the right side of compare/merge viewers
-	 */
-	public void setRightImage(Image image) {
-		fRightImage= image;
-	}
-
-	/**
-	 * Returns the image for the right hand side of compare/merge viewers.
-	 * This image is typically shown in the title of the right side of a compare viewer.
-	 *
-	 * @param element the input object of a compare/merge viewer or <code>null</code>
-	 * @return the image for the right hand side or <code>null</code>
-	 */
-	public Image getRightImage(Object element) {
-		return fRightImage;
-	}
-}
-
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/CompareEditorInput.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/CompareEditorInput.java
deleted file mode 100644
index 76724e7..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/CompareEditorInput.java
+++ /dev/null
@@ -1,749 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare; 
-
-import java.lang.reflect.InvocationTargetException;
-
-import java.util.ArrayList;
-import java.util.ResourceBundle;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.custom.BusyIndicator;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.ui.IPersistableElement;
-import org.eclipse.ui.IEditorInput;
-
-import org.eclipse.jface.util.*;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.action.ToolBarManager;
-import org.eclipse.jface.viewers.*;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.resource.ImageDescriptor;
-
-import org.eclipse.compare.internal.*;
-import org.eclipse.compare.structuremergeviewer.*;
-
-
-/**
- * A compare operation which can present its results in a special editor.
- * Running the compare operation and presentating the results in a compare editor
- * are combined in one interface because it allows a client to keep the implementation
- * all in one place while separating it from the innards of a specific UI implementation of compare/merge.
- * <p> 
- * A <code>CompareEditorInput</code> defines methods for the following sequence steps:
- * <UL>
- * <LI>running a lengthy compare operation under progress monitor control,
- * <LI>creating a UI for displaying the model and initializing the some widgets with the compare result,
- * <LI>tracking the dirty state of the model in case of merge,
- * <LI>saving the model.
- * </UL>
- * The Compare plug-in's <code>openCompareEditor</code> method takes an <code>ICompareEditorInput</code>
- * and starts sequencing through the above steps. If the compare result is not empty a new compare editor
- * is opened and takes over the sequence until eventually closed.
- * <p>
- * The <code>prepareInput</code> method should contain the
- * code of the compare operation. It is executed under control of a progress monitor
- * and can be canceled. If the result of the compare is not empty, that is if there are differences
- * that needs to be presented, the <code>ICompareEditorInput</code> should hold onto them and return them with
- * the <code>getCompareResult</code> method.
- * If the value returned from <code>getCompareResult</code> is not <code>null</code>
- * a compare editor is opened on the <code>ICompareEditorInput</code> with title and title image initialized by the
- * corresponding methods of the <code>ICompareEditorInput</code>.
- * <p>
- * Creation of the editor's SWT controls is delegated to the <code>createContents</code> method.
- * Here the SWT controls must be created and initialized  with the result of the compare operation.
- * <p>
- * If merging is allowed, the modification state of the compared constituents must be tracked and the dirty
- * state returned from method <code>isSaveNeeded</code>. The value <code>true</code> triggers a subsequent call
- * to <code>save</code> where the modified resources can be saved.
- * <p>
- * The most important part of this implementation is the setup of the compare/merge UI.
- * The UI uses a simple browser metaphor to present compare results.
- * The top half of the layout shows the structural compare results (e.g. added, deleted, and changed files),
- * the bottom half the content compare results (e.g. textual differences between two files).
- * A selection in the top pane is fed to the bottom pane. If a content viewer is registered
- * for the type of the selected object, this viewer is installed in the pane.
- * In addition if a structure viewer is registered for the selection type the top pane
- * is split horizontally to make room for another pane and the structure viewer is installed
- * in it. When comparing Java files this second structure viewer would show the structural
- * differences within a Java file, e.g. added, deleted or changed methods and fields.
- * <p>
- * Subclasses provide custom setups, e.g. for a Catchup/Release operation
- * by passing a subclass of <code>CompareConfiguration</code> and by implementing the <code>prepareInput</code> method.
- * If a subclass cannot use the <code>DiffTreeViewer</code> which is installed by default in the
- * top left pane, method <code>createDiffViewer</code> can be overridden.
- * 
- * @see CompareUI
- * @see CompareEditorInput
- */
-public abstract class CompareEditorInput implements IEditorInput, IPropertyChangeNotifier, IRunnableWithProgress {
-	
-	private static final boolean DEBUG= false;
-
-	/**
-	 * The name of the "dirty" property (value <code>"DIRTY_STATE"</code>).
-	 */
-	public static final String DIRTY_STATE= "DIRTY_STATE"; //$NON-NLS-1$
-		
-	private static final String COMPARE_EDITOR_IMAGE_NAME= "cview16/compare_view.gif"; //$NON-NLS-1$
-	private static Image fgTitleImage;
-	
-	private Splitter fComposite;
-	private CompareConfiguration fCompareConfiguration;
-	private CompareViewerSwitchingPane fStructureInputPane;
-	private CompareViewerSwitchingPane fStructurePane1;
-	private CompareViewerSwitchingPane fStructurePane2;
-	private CompareViewerSwitchingPane fContentInputPane;
-	private CompareViewerSwitchingPane fFocusPane;
-	private String fMessage;
-	private Object fInput;
-	private String fTitle;
-	private ListenerList fListenerList= new ListenerList();
-	private CompareNavigator fNavigator;
-	private boolean fDirty= false;
-	private ArrayList fDirtyViewers= new ArrayList();
-	private IPropertyChangeListener fDirtyStateListener;
-
-	private IgnoreWhiteSpaceAction fIgnoreWhitespace;
-	private ShowPseudoConflicts fShowPseudoConflicts;
-	
-	boolean fStructureCompareOnSingleClick= true;
-
-	/**
-	 * Creates a <code>CompareEditorInput</code> which is initialized with the given
-	 * compare configuration.
-	 * The compare configuration is passed to subsequently created viewers.
-	 *
-	 * @param configuration the compare configuration 
-	 */
-	public CompareEditorInput(CompareConfiguration configuration) {
-		fCompareConfiguration= configuration;
-		Assert.isNotNull(configuration);
-		
-		ResourceBundle bundle= CompareUIPlugin.getResourceBundle();
-		fIgnoreWhitespace= new IgnoreWhiteSpaceAction(bundle, configuration);
-		fShowPseudoConflicts= new ShowPseudoConflicts(bundle, configuration);
-		
-		fDirtyStateListener= new IPropertyChangeListener() {
-			public void propertyChange(PropertyChangeEvent e) {
-				String propertyName= e.getProperty();
-				if (CompareEditorInput.DIRTY_STATE.equals(propertyName)) {
-					boolean changed= false;
-					Object newValue= e.getNewValue();
-					if (newValue instanceof Boolean)
-						changed= ((Boolean)newValue).booleanValue();
-					setDirty(e.getSource(), changed);
-				}			
-			}
-		};
-
-		IPreferenceStore ps= configuration.getPreferenceStore();
-		if (ps != null)
-			fStructureCompareOnSingleClick= ps.getBoolean(ComparePreferencePage.OPEN_STRUCTURE_COMPARE);
-	}
-	
-	private boolean structureCompareOnSingleClick() {
-		return fStructureCompareOnSingleClick;
-	}
-		
-	/* (non Javadoc)
-	 * see IAdaptable.getAdapter
-	 */
-	public Object getAdapter(Class adapter) {
-		if (CompareNavigator.class.equals(adapter)) {
-			if (fNavigator == null)
-				fNavigator= new CompareNavigator(
-					new CompareViewerSwitchingPane[] {
-						fStructureInputPane,
-						fStructurePane1,
-						fStructurePane2,
-						fContentInputPane
-					}
-				);
-			return fNavigator;
-		}
-		return null;
-	}
-	
-	/* (non Javadoc)
-	 * see IEditorInput.getImageDescriptor
-	 */
-	public ImageDescriptor getImageDescriptor() {
-		return null;
-	}
-	
-	/* (non Javadoc)
-	 * see IEditorInput.getToolTipText
-	 */
-	public String getToolTipText() {
-		return getTitle();
-	}
-	
-	/* (non Javadoc)
-	 * see IEditorInput.getName
-	 */
-	public String getName() {
-		return getTitle();
-	}
-			
-	/**
-	 * Returns <code>null</code> since this editor cannot be persisted.
-	 *
-	 * @return <code>null</code> because this editor cannot be persisted
-	 */
-	public IPersistableElement getPersistable() {
-		return null;
-	}
-		
-	/**
-	 * Returns <code>false</code> to indicate that this input
-	 * should not appear in the "File Most Recently Used" menu.
-	 *
-	 * @return <code>false</code>
-	 */
-	public boolean exists() {
-		return false;
-	}
-	
-	/*
-	 * FIXME!
- 	 */
-	protected void setMessage(String message) {
-		fMessage= message;
-	}
-	
-	/*
-	 * FIXME!
- 	 */
-	public String getMessage() {
-		return fMessage;
-	}
-				
-	/**
-	 * Returns the title which will be used in the compare editor's title bar.
-	 * It can be set with <code>setTitle</code>.
-	 *
-	 * @return the title
-	 */
-	public String getTitle() {
-		if (fTitle == null)
-			return Utilities.getString("CompareEditorInput.defaultTitle"); //$NON-NLS-1$
-		return fTitle;
-	}
-	
-	/**
-	 * Sets the title which will be used when presenting the compare result.
-	 * This method must be called before the editor is opened.
-	 * 
-	 * @param title the title to use for the CompareEditor
-	 */
-	public void setTitle(String title) {
-		fTitle= title;
-	}
-	
-	/**
-	 * Returns the title image which will be used in the compare editor's title bar.
-	 * Returns the title image which will be used when presenting the compare result.
-	 * This implementation returns a generic compare icon.
-	 * Subclasses can override.
-	 *
-	 * @return the title image, or <code>null</code> if none
-	 */
-	public Image getTitleImage() {
-		if (fgTitleImage == null) {
-			fgTitleImage= CompareUIPlugin.getImageDescriptor(COMPARE_EDITOR_IMAGE_NAME).createImage();
-			CompareUI.disposeOnShutdown(fgTitleImage);
-		}
-		return fgTitleImage;
-	}
-	
-	/**
-	 * Returns the configuration object for the viewers within the compare editor.
-	 * Returns the configuration which was passed to the constructor.
-	 *
-	 * @return the compare configuration
-	 */
-	public CompareConfiguration getCompareConfiguration() {
-		return fCompareConfiguration;
-	}
-
-	/**
-	 * Adds standard actions to the given <code>ToolBarManager</code>.
-	 * <p>
-	 * Subclasses may override to add their own actions.
-	 * </p>
-	 *
-	 * @param toolBarManager the <code>ToolBarManager</code> to which to contribute
-	 */
-	public void contributeToToolBar(ToolBarManager toolBarManager) {
-		
-		toolBarManager.add(new Separator());
-		toolBarManager.add(fIgnoreWhitespace);
-		toolBarManager.add(fShowPseudoConflicts);
-	}
-	
-	/**
-	 * Runs the compare operation and stores the compare result.
-	 *
-	 * @param monitor the progress monitor to use to display progress and receive
-	 *   requests for cancelation
-	 * @exception InvocationTargetException if the <code>prepareInput</code> method must propagate a checked exception,
-	 * 	it should wrap it inside an <code>InvocationTargetException</code>; runtime exceptions are automatically
-	 *  wrapped in an <code>InvocationTargetException</code> by the calling context
-	 * @exception InterruptedException if the operation detects a request to cancel, 
-	 *  using <code>IProgressMonitor.isCanceled()</code>, it should exit by throwing 
-	 *  <code>InterruptedException</code>
-	 */
-	public void run(IProgressMonitor monitor) throws InterruptedException, InvocationTargetException {
-		fInput= prepareInput(monitor);
-	}
-
-	/**
-	 * Runs the compare operation and returns the compare result.
-	 * If <code>null</code> is returned no differences were found and no compare editor needs to be opened.
-	 * Progress should be reported to the given progress monitor.
-	 * A request to cancel the operation should be honored and acknowledged 
-	 * by throwing <code>InterruptedException</code>.
-	 * <p>
-	 * Note: this method is typically called in a modal context thread which doesn't have a Display assigned.
-	 * Implementors of this method shouldn't therefore allocated any SWT resources in this method.
-	 * </p>
-	 *
-	 * @param monitor the progress monitor to use to display progress and receive
-	 *   requests for cancelation
-	 * @return the result of the compare operation, or <code>null</code> if there are no differences
-	 * @exception InvocationTargetException if the <code>prepareInput</code> method must propagate a checked exception,
-	 * 	it should wrap it inside an <code>InvocationTargetException</code>; runtime exceptions are automatically
-	 *  wrapped in an <code>InvocationTargetException</code> by the calling context
-	 * @exception InterruptedException if the operation detects a request to cancel, 
-	 *  using <code>IProgressMonitor.isCanceled()</code>, it should exit by throwing 
-	 *  <code>InterruptedException</code>
-	 */
-	protected abstract Object prepareInput(IProgressMonitor monitor)
-				throws InvocationTargetException, InterruptedException;
-	 
-	/**
-	 * Returns the compare result computed by the most recent call to the
-	 * <code>run</code> method. Returns <code>null</code> if no
-	 * differences were found.
-	 *
-	 * @return the compare result prepared in method <code>prepareInput</code>
-	 *   or <code>null</code> if there were no differences
-	 */
-	public Object getCompareResult() {
-		return fInput;
-	}
-	
-	/**
-	 * Create the SWT controls that are used to display the result of the compare operation.
-	 * Creates the SWT Controls and sets up the wiring between the individual panes.
-	 * This implementation creates all four panes but makes only the necessary ones visible.
-	 * Finally it feeds the compare result into the top left structure viewer
-	 * and the content viewer.
-	 * <p>
-	 * Subclasses may override if they need to change the layout or wiring between panes.
-	 *
-	 * @param parent the parent control under which the control must be created
-	 * @return the SWT control hierarchy for the compare editor
-	 */
-	public Control createContents(Composite parent) {
-
-		fComposite= new Splitter(parent, SWT.VERTICAL);
-		fComposite.setData(this);
-			
-		final Splitter h= new Splitter(fComposite, SWT.HORIZONTAL);
-
-		fStructureInputPane= new CompareViewerSwitchingPane(h, SWT.BORDER | SWT.FLAT, true) {
-			protected Viewer getViewer(Viewer oldViewer, Object input) {
-				if (input instanceof DiffNode) {
-					DiffNode dn= (DiffNode) input;
-					if (dn.hasChildren())
-						return createDiffViewer(this);
-				}
-				if (input instanceof ICompareInput)
-					return findStructureViewer(oldViewer, (ICompareInput)input, this);
-				return null;
-			}
-		};
-		fFocusPane= fStructureInputPane;
-		
-		fStructurePane1= new CompareViewerSwitchingPane(h, SWT.BORDER | SWT.FLAT, true) {
-			protected Viewer getViewer(Viewer oldViewer, Object input) {
-				if (input instanceof ICompareInput)
-					return findStructureViewer(oldViewer, (ICompareInput)input, this);
-				return null;
-			}
-		};
-		h.setVisible(fStructurePane1, false);
-		
-		fStructurePane2= new CompareViewerSwitchingPane(h, SWT.BORDER | SWT.FLAT, true) {
-			protected Viewer getViewer(Viewer oldViewer, Object input) {
-				if (input instanceof ICompareInput)
-					return findStructureViewer(oldViewer, (ICompareInput)input, this);
-				return null;
-			}
-		};
-		h.setVisible(fStructurePane2, false);
-				
-		fContentInputPane= new CompareViewerSwitchingPane(fComposite, SWT.BORDER | SWT.FLAT) {
-			protected Viewer getViewer(Viewer oldViewer, Object input) {
-				if (input instanceof ICompareInput)
-					return findContentViewer(oldViewer, (ICompareInput)input, this);
-				return null;
-			}
-		};
-		fComposite.setVisible(h, false);
-		fComposite.setVisible(fContentInputPane, true);
-		
-		fComposite.setWeights(new int[] { 30, 70 });
-		
-		fComposite.layout();
-
-		// setup the wiring for top left pane
-		fStructureInputPane.addOpenListener(
-			new IOpenListener() {
-				public void open(OpenEvent oe) {
-					feed1(oe.getSelection());
-				}
-			}
-		);
-		fStructureInputPane.addSelectionChangedListener(
-			new ISelectionChangedListener() {
-				public void selectionChanged(SelectionChangedEvent e) {
-					ISelection s= e.getSelection();
-					if (s == null || s.isEmpty())
-						feed1(s);
-				}
-			}
-		);
-		fStructureInputPane.addDoubleClickListener(
-			new IDoubleClickListener() {
-				public void doubleClick(DoubleClickEvent event) {
-					feedDefault1(event.getSelection());
-				}
-			}
-		);
-		
-		fStructurePane1.addSelectionChangedListener(
-			new ISelectionChangedListener() {
-				public void selectionChanged(SelectionChangedEvent e) {
-					feed2(e.getSelection());
-				}
-			}
-		);
-
-		fStructurePane2.addSelectionChangedListener(
-			new ISelectionChangedListener() {
-				public void selectionChanged(SelectionChangedEvent e) {
-					feed3(e.getSelection());
-				}
-			}
-		);		
-
-		if (fInput instanceof ICompareInput) {
-			fStructureInputPane.setInput((ICompareInput) fInput);
-			ISelection sel= fStructureInputPane.getSelection();
-			if (sel == null || sel.isEmpty())
-				feed1(sel);	// we only feed downstream viewers if the top left pane is empty
-		}
-		
-		fComposite.setData("Nav", //$NON-NLS-1$
-			new CompareViewerSwitchingPane[] {
-				fStructureInputPane,
-				fStructurePane1,
-				fStructurePane2,
-				fContentInputPane
-			}
-		);
-	
-		return fComposite;
-	}
-	
-	private void feed1(final ISelection selection) {
-		BusyIndicator.showWhile(fComposite.getDisplay(),
-			new Runnable() {
-				public void run() {
-					if (selection == null || selection.isEmpty()) {
-						Object input= fStructureInputPane.getInput();
-						fContentInputPane.setInput(input);
-						fStructurePane2.setInput(null); // clear downstream pane
-						fStructurePane1.setInput(null);
-					} else {
-						Object input= getElement(selection);
-						fContentInputPane.setInput(input);
-						if (structureCompareOnSingleClick())
-							fStructurePane1.setInput(input);
-						fStructurePane2.setInput(null); // clear downstream pane
-						if (fStructurePane1.getInput() != input)
-							fStructurePane1.setInput(null);
-					}
-				}
-			}
-		);
-	}
-	
-	private void feedDefault1(final ISelection selection) {
-		BusyIndicator.showWhile(fComposite.getDisplay(),
-			new Runnable() {
-				public void run() {
-					if (!selection.isEmpty())
-						fStructurePane1.setInput(getElement(selection));
-				}
-			}
-		);
-	}
-	
-	private void feed2(final ISelection selection) {
-		BusyIndicator.showWhile(fComposite.getDisplay(),
-			new Runnable() {
-				public void run() {
-					if (selection.isEmpty()) {
-						Object input= fStructurePane1.getInput();
-						fContentInputPane.setInput(input);
-						fStructurePane2.setInput(null);
-					} else {
-						Object input= getElement(selection);
-						fContentInputPane.setInput(input);
-						fStructurePane2.setInput(input);
-					}
-				}
-			}
-		);
-	}
-	
-	private void feed3(final ISelection selection) {
-		BusyIndicator.showWhile(fComposite.getDisplay(),
-			new Runnable() {
-				public void run() {
-					if (selection.isEmpty())
-						fContentInputPane.setInput(fStructurePane2.getInput());
-					else
-						fContentInputPane.setInput(getElement(selection));
-				}
-			}
-		);
-		
-	}
-	
-	/**
-	 * Returns the first element of the given selection if the selection 
-	 * is a <code>IStructuredSelection</code> with exactly one element. Returns
-	 * <code>null</code> otherwise.
-	 *
-	 * @param selection the selection
-	 * @return the first element of the selection, or <code>null</code>
-	 */
-	private static Object getElement(ISelection selection) {
-		if (selection instanceof IStructuredSelection) {
-			IStructuredSelection ss= (IStructuredSelection) selection;
-			if (ss.size() == 1)
-				return ss.getFirstElement();
-		}
-		return null;
-	}
-	
-	/**
-	 * Asks this input to take focus within its container (editor).
-	 * <p>
-	 * Clients should not call this method but they may
-	 * override if they implement a different layout with different visual
-	 * components. Clients are free to call the inherited method.
-	 * </p>
-	 */
-	public void setFocus() {
-		if (fFocusPane != null) {
-			Viewer v= fFocusPane.getViewer();
-			if (v != null) {
-				Control c= v.getControl();
-				if (c != null)
-					c.setFocus();
-			}
-		} else if (fComposite != null)
-			fComposite.setFocus();
-	}
-	
-	/**
-	 * Factory method for creating a differences viewer for the top left pane.
-	 * It is called from <code>createContents</code> and returns a <code>DiffTreeViewer</code>.
-	 * <p>
-	 * Subclasses may override if they need a different viewer.
-	 * </p>
-	 *
-	 * @param parent the SWT parent control under which to create the viewer's SWT controls
-	 * @return a compare viewer for the top left pane
-	 */
-	public Viewer createDiffViewer(Composite parent) {
-		return new DiffTreeViewer(parent, fCompareConfiguration);
-	}
-
-	/**
-	 * Implements the dynamic viewer switching for structure viewers.
-	 * The method must return a compare viewer based on the old (or current) viewer
-	 * and a new input object. If the old viewer is suitable for showing the new input the old viewer
-	 * can be returned. Otherwise a new viewer must be created under the given parent composite or
-	 * <code>null</code> can be returned to indicate that no viewer could be found.
-	 * <p>
-	 * This implementation forwards the request to <code>CompareUI.findStructureViewer</code>.
-	 * <p>
-	 * Subclasses may override to implement a different strategy.
-	 * </p>
-	 *
-	 * @return a compare viewer which is suitable for the given input object or <code>null</code>
-	 */
-	public Viewer findStructureViewer(Viewer oldViewer, ICompareInput input, Composite parent) {
-		return CompareUIPlugin.findStructureViewer(oldViewer, input, parent, fCompareConfiguration);
-	}
-
-	/**
-	 * Implements the dynamic viewer switching for content viewers.
-	 * The method must return a compare viewer based on the old (or current) viewer
-	 * and a new input object. If the old viewer is suitable for showing the new input the old viewer
-	 * can be returned. Otherwise a new viewer must be created under the given parent composite or
-	 * <code>null</code> can be returned to indicate that no viewer could be found.
-	 * <p>
-	 * This implementation forwards the request to <code>CompareUI.findContentViewer</code>.
-	 * <p>
-	 * Subclasses may override to implement a different strategy.
-	 * </p>
-	 *
-	 * @return a compare viewer which is suitable for the given input object or <code>null</code>
-	 */
-	public Viewer findContentViewer(Viewer oldViewer, ICompareInput input, Composite parent) {
-
-		Viewer newViewer= CompareUIPlugin.findContentViewer(oldViewer, input, parent, fCompareConfiguration);
-		
-		boolean isNewViewer= newViewer != oldViewer;
-		if (DEBUG) System.out.println("CompareEditorInput.findContentViewer: " + isNewViewer); //$NON-NLS-1$
-		
-		if (isNewViewer && newViewer instanceof IPropertyChangeNotifier) {
-			final IPropertyChangeNotifier dsp= (IPropertyChangeNotifier) newViewer;
-			dsp.addPropertyChangeListener(fDirtyStateListener);
-			
-			Control c= newViewer.getControl();
-			c.addDisposeListener(
-				new DisposeListener() {
-					public void widgetDisposed(DisposeEvent e) {
-						dsp.removePropertyChangeListener(fDirtyStateListener);
-					}
-				}
-			);
-		}
-		
-		return newViewer;
-	}
-	
-	/**
-	 * Returns <code>true</code> if there are unsaved changes.
-	 * The value returned is the value of the <code>DIRTY_STATE</code> property of this input object.
-	 
-	 * Returns <code>true</code> if this input has unsaved changes,
-	 * that is if <code>setDirty(true)</code> has been called.
-	 * Subclasses don't have to override if the functionality provided by <doce>setDirty</code>
-	 * is sufficient.
-	 *
-	 * @return <code>true</code> if there are changes that need to be saved
-	 */
-	public boolean isSaveNeeded() {
-		return fDirty || fDirtyViewers.size() > 0;
-	}
-		
-	/**
-	 * Sets the dirty state of this input to the given
-	 * value and sends out a <code>PropertyChangeEvent</code> if the new value differs from the old value.
-	 *
-	 * @param dirty the dirty state for this compare input
-	 */
-	public void setDirty(boolean dirty) {
-
-		boolean confirmSave= true;
-		Object o= fCompareConfiguration.getProperty(CompareEditor.CONFIRM_SAVE_PROPERTY);
-		if (o instanceof Boolean)
-			confirmSave= ((Boolean)o).booleanValue();
-
-		if (!confirmSave) {
-			fDirty= dirty;
-			if (!fDirty)
-				fDirtyViewers.clear();
-		}
-	}
-	
-	private void setDirty(Object source, boolean dirty) {
-		Assert.isNotNull(source);
-		boolean oldDirty= fDirtyViewers.size() > 0;
-		if (dirty)
-			fDirtyViewers.add(source);
-		else
-			fDirtyViewers.remove(source);
-		boolean newDirty= fDirtyViewers.size() > 0;
-		if (DEBUG) System.out.println("setDirty("+source+", "+dirty+"): " + newDirty); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		if (oldDirty != newDirty)
-			Utilities.firePropertyChange(fListenerList, this, DIRTY_STATE, new Boolean(oldDirty), new Boolean(newDirty));
-	}	
-	
-	/* (non Javadoc)
-	 * see IPropertyChangeNotifier.addListener
-	 */
-	public void addPropertyChangeListener(IPropertyChangeListener listener) {
-		fListenerList.add(listener);
-	}
-
-	/* (non Javadoc)
-	 * see IPropertyChangeNotifier.removeListener
-	 */
-	public void removePropertyChangeListener(IPropertyChangeListener listener) {
-		fListenerList.remove(listener);
-	}
-
-	/**
-	 * Save any unsaved changes.
-	 * Empty implementation.
-	 * Subclasses must override to save any changes.
-	 *
-	 * @param progressMonitor an <code>IProgressMonitor</code> that the implementation of save may use to show progress
-	 * @deprecated Override method saveChanges instead.
-	 */
-	public void save(IProgressMonitor pm) {
-	}
-	
-	/**
-	 * Save any unsaved changes.
-	 * Subclasses must override to save any changes.
-	 * This implementation tries to flush changes in all viewers by
-	 * calling <code>ISavable.save</code> on them.
-	 *
-	 * @param progressMonitor an <code>IProgressMonitor</code> that the implementation of save may use to show progress
-	 * @since 2.0
-	 */
-	public void saveChanges(IProgressMonitor pm) throws CoreException {
-		
-		// flush changes in any dirty viewer
-		flushViewer(fStructureInputPane, pm);
-		flushViewer(fStructurePane1, pm);
-		flushViewer(fStructurePane2, pm);
-		flushViewer(fContentInputPane, pm);
-
-		save(pm);
-	}
-	
-	private static void flushViewer(CompareViewerSwitchingPane pane, IProgressMonitor pm) throws CoreException {
-		if (pane != null) {
-			Viewer v= pane.getViewer();
-			if (v instanceof ISavable)
-				((ISavable)v).save(pm);
-		}
-	}
-}
-
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/CompareUI.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/CompareUI.java
deleted file mode 100644
index 0c150c1..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/CompareUI.java
+++ /dev/null
@@ -1,281 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare;
-
-import java.util.ResourceBundle;
-
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.Viewer;
-
-import org.eclipse.core.runtime.IAdaptable;
-
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-
-import org.eclipse.compare.internal.CompareUIPlugin;
-import org.eclipse.compare.structuremergeviewer.ICompareInput;
-
-
-/**
- * The class <code>CompareUI</code> defines the entry point to initiate a configurable
- * compare operation on arbitrary resources. The result of the compare
- * is opened into a compare editor where the details can be browsed and
- * edited in dynamically selected structure and content viewers.
- * <p>
- * The Compare UI provides a registry for content and structure compare viewers,
- * which is initialized from extensions contributed to extension points
- * declared by this plug-in.
- */
-public final class CompareUI {
-	
-	/**
-	 * Compare Plug-in ID (value <code>"org.eclipse.compare"</code>).
-	 * @since 2.0
-	 */
-	public static final String PLUGIN_ID= "org.eclipse.compare"; //$NON-NLS-1$
-
-	/**
-	 * Image descriptor for the disabled icon of the 'Next' tool bar button.
-	 * @since 2.0
-	 */
-	public static final ImageDescriptor DESC_DTOOL_NEXT= CompareUIPlugin.getImageDescriptor(CompareUIPlugin.DTOOL_NEXT);
-	/**
-	 * Image descriptor for the normal icon of the 'Next' tool bar button.
-	 * @since 2.0
-	 */
-	public static final ImageDescriptor DESC_CTOOL_NEXT= CompareUIPlugin.getImageDescriptor(CompareUIPlugin.CTOOL_NEXT);
-	/**
-	 * Image descriptor for the roll-over icon of the 'Next' tool bar button.
-	 * @since 2.0
-	 */
-	public static final ImageDescriptor DESC_ETOOL_NEXT= CompareUIPlugin.getImageDescriptor(CompareUIPlugin.ETOOL_NEXT);
-	
-	/**
-	 * Image descriptor for the disabled icon of the 'Previous' tool bar button.
-	 * @since 2.0
-	 */
-	public static final ImageDescriptor DESC_DTOOL_PREV= CompareUIPlugin.getImageDescriptor(CompareUIPlugin.DTOOL_PREV);
-	/**
-	 * Image descriptor for the normal icon of the 'Previous' tool bar button.
-	 * @since 2.0
-	 */
-	public static final ImageDescriptor DESC_CTOOL_PREV= CompareUIPlugin.getImageDescriptor(CompareUIPlugin.CTOOL_PREV);
-	/**
-	 * Image descriptor for the roll-over icon of the 'Previous' tool bar button.
-	 * @since 2.0
-	 */
-	public static final ImageDescriptor DESC_ETOOL_PREV= CompareUIPlugin.getImageDescriptor(CompareUIPlugin.ETOOL_PREV);
-
-	/**
-	 * Name of the title property of a compare viewer.
- 	 * If a property with this name is set
- 	 * on the top level SWT control of a viewer, it is used as a title in the pane's
- 	 * title bar.
- 	 */
-	public static final String COMPARE_VIEWER_TITLE= "org.eclipse.compare.CompareUI.CompareViewerTitle"; //$NON-NLS-1$
-	
-	private CompareUI() {
-	}
-	
-	public static AbstractUIPlugin getPlugin() {
-		return CompareUIPlugin.getDefault();
-	}
-	
-	/**
-	 * Returns this plug-in's resource bundle.
-	 *
-	 * @return the plugin's resource bundle
-	 */
-	public static ResourceBundle getResourceBundle() {
-		return CompareUIPlugin.getResourceBundle();
-	}
-	
-	/**
-	 * Performs the comparison described by the given input and opens a
-	 * compare editor on the result in the currently active workbench page.
-	 *
-	 * @param input the input on which to open the compare editor
-	 */
-	public static void openCompareEditor(CompareEditorInput input) {
-		openCompareEditorOnPage(input, null);
-	}
-			
-	/**
-	 * Performs the comparison described by the given input and opens a
-	 * compare editor on the result in the given workbench page.
-	 *
-	 * @param input the input on which to open the compare editor
-	 * @param page the workbench page in which to open the compare editor
-	 * @since 2.1
-	 */
-	public static void openCompareEditorOnPage(CompareEditorInput input, IWorkbenchPage page) {
-		CompareUIPlugin plugin= CompareUIPlugin.getDefault();
-		if (plugin != null)
-			plugin.openCompareEditor(input, page);
-	}
-			
-	/**
-	 * Performs the comparison described by the given input and opens a
-	 * modal compare dialog on the result.
-	 *
-	 * @param input the input on which to open the compare dialog
-	 */
-	public static void openCompareDialog(CompareEditorInput input) {
-		CompareUIPlugin plugin= CompareUIPlugin.getDefault();
-		if (plugin != null)
-			plugin.openCompareDialog(input);
-	}
-			
-	/**
-	 * Registers an image descriptor for the given type.
-	 *
-	 * @param type the type
-	 * @param descriptor the image descriptor
-	 */
-	public static void registerImageDescriptor(String type, ImageDescriptor descriptor) {
-		CompareUIPlugin.registerImageDescriptor(type, descriptor);
-	}
-	
-	/**
-	 * Returns a shared image for the given type, or a generic image if none
-	 * has been registered for the given type.
-	 * <p>
-	 * Note: Images returned from this method will be automatically disposed
-	 * of when this plug-in shuts down. Callers must not dispose of these
-	 * images themselves.
-	 * </p>
-	 *
-	 * @param type the type
-	 * @return the image
-	 */
-	public static Image getImage(String type) {
-		return CompareUIPlugin.getImage(type);
-	}
-		
-	/**
-	 * Registers the given image for being disposed when this plug-in is shutdown.
-	 *
-	 * @param image the image to register for disposal
-	 */
-	public static void disposeOnShutdown(Image image) {
-		CompareUIPlugin.disposeOnShutdown(image);
-	}
-	
-	/**
-	 * Returns a shared image for the given adaptable.
-	 * This convenience method queries the given adaptable
-	 * for its <code>IWorkbenchAdapter.getImageDescriptor</code>, which it
-	 * uses to create an image if it does not already have one.
-	 * <p>
-	 * Note: Images returned from this method will be automatically disposed
-	 * of when this plug-in shuts down. Callers must not dispose of these
-	 * images themselves.
-	 * </p>
-	 *
-	 * @param adaptable the adaptable for which to find an image
-	 * @return an image
-	 */
-	public static Image getImage(IAdaptable adaptable) {
-		return CompareUIPlugin.getImage(adaptable);
-	}
-		
-	/**
-	 * Returns a structure compare viewer based on an old viewer and an input object.
-	 * If the old viewer is suitable for showing the input, the old viewer
-	 * is returned. Otherwise, the input's type is used to find a viewer descriptor in the registry
-	 * which in turn is used to create a structure compare viewer under the given parent composite.
-	 * If no viewer descriptor can be found <code>null</code> is returned.
-	 *
-	 * @param oldViewer a new viewer is only created if this old viewer cannot show the given input
-	 * @param input the input object for which to find a structure viewer
-	 * @param parent the SWT parent composite under which the new viewer is created
-	 * @param configuration a configuration which is passed to a newly created viewer
-	 * @return the compare viewer which is suitable for the given input object or <code>null</code>
-	 */
-	public static Viewer findStructureViewer(Viewer oldViewer, ICompareInput input, Composite parent,
-				CompareConfiguration configuration) {
-
-		return CompareUIPlugin.findStructureViewer(oldViewer, input, parent, configuration);
-	}
-	
-	/**
-	 * Returns a content compare viewer based on an old viewer and an input object.
-	 * If the old viewer is suitable for showing the input the old viewer
-	 * is returned. Otherwise the input's type is used to find a viewer descriptor in the registry
-	 * which in turn is used to create a content compare viewer under the given parent composite.
-	 * If no viewer descriptor can be found <code>null</code> is returned.
-	 *
-	 * @param oldViewer a new viewer is only created if this old viewer cannot show the given input
-	 * @param input the input object for which to find a content viewer
-	 * @param parent the SWT parent composite under which the new viewer is created
-	 * @param configuration a configuration which is passed to a newly created viewer
-	 * @return the compare viewer which is suitable for the given input object or <code>null</code>
-	 */
-	public static Viewer findContentViewer(Viewer oldViewer, ICompareInput input, Composite parent,
-			CompareConfiguration configuration) {
-		return CompareUIPlugin.findContentViewer(oldViewer, input, parent, configuration);
-	}
-	
-	/**
-	 * Returns a content compare viewer based on an old viewer and an input
-	 * object. If the old viewer is suitable for showing the input the old
-	 * viewer is returned. Otherwise the input's type is used to find a viewer
-	 * descriptor in the registry which in turn is used to create a content
-	 * compare viewer under the given parent composite. In order to determine
-	 * the input's type, the input must either implement IStreamContentAccessor
-	 * and ITypedElement or ICompareInput. If no viewer descriptor can be found
-	 * <code>null</code> is returned.
-	 *
-	 * @param oldViewer a new viewer is only created if this old viewer cannot show the given input
-	 * @param input the input object for which to find a content viewer. Must
-	 * implement either <code>IStreamContentAccessor</code> and<code>
-	 * ITypedElement</code> or <code>ICompareInput</code>.
-	 * @param parent the SWT parent composite under which the new viewer is created
-	 * @param configuration a configuration which is passed to a newly created viewer
-	 * @return the compare viewer which is suitable for the given input object or <code>null</code>
-	 */
-	public static Viewer findContentViewer(Viewer oldViewer, Object input, Composite parent,
-			CompareConfiguration configuration) {
-		
-		return CompareUIPlugin.findContentViewer(oldViewer, input, parent, configuration);
-	}
-
-	/**
-	 * Adds an alias for the given type.
-	 * Subsequent calls to <code>findStructureViewer</code>
-	 * treat alias as a synonym for type and return the same viewer.
-	 * <p>
-	 * Note: this method is for internal use only. Clients should not call this method. 
-	 * @param type a type name for which a viewer has been registered
-	 * @param alias a type name which should be treated as a synonym of type
-	 * @since 2.0
-	 */
-	public static void addStructureViewerAlias(String type, String alias) {
-		CompareUIPlugin.addStructureViewerAlias(type, alias);
-	}
-	
-	/**
-	 * Remove all aliases for the given type. This method does not affect
-	 * the initial binding between type and viewer. If no aliases exist for the
-	 * given type this method does nothing.
-	 * <p>
-	 * Note: this method is for internal use only. Clients should not call this method. 
-	 * @param type the type name for which all synonymes are removed.
-	 * @since 2.0
-	 */
-	public static void removeAllStructureViewerAliases(String type) {
-		CompareUIPlugin.removeAllStructureViewerAliases(type);
-	}
-}
-
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/CompareViewerPane.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/CompareViewerPane.java
deleted file mode 100644
index be2e177..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/CompareViewerPane.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.*;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.*;
-
-import org.eclipse.jface.action.ToolBarManager;
-
-/**
- * A <code>CompareViewerPane</code> is a convenience class which installs a
- * <code>CLabel</code> and a <code>Toolbar</code> in a <code>ViewForm</code>.
- * <P>
- * Double clicking onto the <code>CompareViewerPane</code>'s title bar maximizes
- * the <code>CompareViewerPane</code> to the size of an enclosing <code>Splitter</code>
- * (if there is one).
- * If more <code>Splitters</code> are nested maximizing walks up and
- * maximizes to the outermost <code>Splitter</code>.
- * 
- * @since 2.0
- */
-public class CompareViewerPane extends ViewForm {
-	
-	private ToolBarManager fToolBarManager;
-
-	/**
-	 * Constructs a new instance of this class given its parent
-	 * and a style value describing its behavior and appearance.
-	 *
-	 * @param parent a widget which will be the parent of the new instance (cannot be null)
-	 * @param style the style of widget to construct
-	 *
-	 * @exception IllegalArgumentException <ul>
-	 *    <li>ERROR_NULL_ARGUMENT - if the parent is null</li>
-	 * </ul>
-	 * @exception SWTException <ul>
-	 *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the parent</li>
-	 * </ul>
-	 */		
-	public CompareViewerPane(Composite container, int style) {
-		super(container, style);
-		
-		marginWidth= 0;
-		marginHeight= 0;
-		
-		CLabel label= new CLabel(this, SWT.NONE) {
-			public Point computeSize(int wHint, int hHint, boolean changed) {
-				return super.computeSize(wHint, Math.max(24, hHint), changed);
-			}
-		};
-		setTopLeft(label);
-		
-		MouseAdapter ml= new MouseAdapter() {
-			public void mouseDoubleClick(MouseEvent e) {
-				Control content= getContent();
-				if (content != null && content.getBounds().contains(e.x, e.y))
-					return;
-				Control parent= getParent();
-				if (parent instanceof Splitter)
-					((Splitter)parent).setMaximizedControl(CompareViewerPane.this);
-			}
-		};	
-				
-		addMouseListener(ml);
-		label.addMouseListener(ml);	
-	}
-	
-	/**
-	 * Set the pane's title text.
-	 * The value <code>null</code> clears it.
-	 * 
-	 * @param text the text to be displayed in the pane or null
-	 */
-	public void setText(String label) {
-		CLabel cl= (CLabel) getTopLeft();
-		cl.setText(label);		
-	}
-	
-	/**
-	 * Set the pane's title Image.
-	 * The value <code>null</code> clears it.
-	 * 
-	 * @param image the image to be displayed in the pane or null
-	 */
-	public void setImage(Image image) {
-		CLabel cl= (CLabel) getTopLeft();
-		cl.setImage(image);
-	}
-	
-	/**
-	 * Returns a <code>ToolBarManager</code> if the given parent is a
-	 * <code>CompareViewerPane</code> or <code>null</code> otherwise.
-	 * 
-	 * @param parent a <code>Composite</code> or <code>null</code>
-	 * @return a <code>ToolBarManager</code> if the given parent is a <code>CompareViewerPane</code> otherwise <code>null</code>
-	 */
-	public static ToolBarManager getToolBarManager(Composite parent) {
-		if (parent instanceof CompareViewerPane) {
-			CompareViewerPane pane= (CompareViewerPane) parent;
-			return pane.getToolBarManager();
-		}
-		return null;
-	}
-
-	/**
-	 * Clears tool items in the <code>CompareViewerPane</code>'s control bar.
-	 * 
-	 * @param parent a <code>Composite</code> or <code>null</code>
-	 */
-	public static void clearToolBar(Composite parent) {
-		ToolBarManager tbm= getToolBarManager(parent);
-		if (tbm != null) {
-			tbm.removeAll();
-			tbm.update(true);
-		}
-	}
-	
-	//---- private stuff
-	
-	private ToolBarManager getToolBarManager() {
-		if (fToolBarManager == null) {
-			ToolBar tb= new ToolBar(this, SWT.FLAT);
-			setTopCenter(tb);
-			fToolBarManager= new ToolBarManager(tb);
-		}
-		return fToolBarManager;
-	}
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/CompareViewerSwitchingPane.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/CompareViewerSwitchingPane.java
deleted file mode 100644
index 5568251..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/CompareViewerSwitchingPane.java
+++ /dev/null
@@ -1,371 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare;
-
-import java.text.MessageFormat;
-
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.*;
-
-import org.eclipse.jface.util.ListenerList;
-import org.eclipse.jface.viewers.*;
-
-import org.eclipse.compare.internal.*;
-import org.eclipse.compare.structuremergeviewer.ICompareInput;
-
-
-/**
- * A custom <code>CompareViewerPane</code> that supports dynamic viewer switching.
- * 
- * <p>
- * Clients must implement the viewer switching strategy by implementing
- * the <code>getViewer(Viewer, Object)</code> method.
- * <p>
- * If a property with the name <code>CompareUI.COMPARE_VIEWER_TITLE</code> is set
- * on the top level SWT control of a viewer, it is used as a title in the <code>CompareViewerPane</code>'s
- * title bar.
- * 
- * @since 2.0
- */
-public abstract class CompareViewerSwitchingPane extends CompareViewerPane
-				implements ISelectionChangedListener, ISelectionProvider, IDoubleClickListener {
-	
-	private Viewer fViewer;
-	private Object fInput;
-	private ListenerList fSelectionListeners= new ListenerList();
-	private ListenerList fDoubleClickListener= new ListenerList();
-	private ListenerList fOpenListener= new ListenerList();
-	private boolean fControlVisibility= false;
-	private String fTitle;
-	private String fTitleArgument;
-	
-	private IOpenListener fOpenHandler= new IOpenListener() {
-		public void open(OpenEvent event) {
-			Object[] listeners= fOpenListener.getListeners();
-			for (int i= 0; i < listeners.length; i++)
-				((IOpenListener) listeners[i]).open(event);
-		}
-	};
-	
-	/**
-	 * Creates a <code>CompareViewerSwitchingPane</code> as a child of the given parent and with the
-	 * specified SWT style bits.
-	 *
-	 * @param parent a widget which will be the parent of the new instance (cannot be null)
-	 * @param style the style of widget to construct
-	 *
-	 * @exception IllegalArgumentException <ul>
-	 *    <li>ERROR_NULL_ARGUMENT - if the parent is null</li>
-	 * </ul>
-	 * @exception SWTException <ul>
-	 *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the parent</li>
-	 * </ul>
-	 */		
-	public CompareViewerSwitchingPane(Composite parent, int style) {
-		this(parent, style, false);
-	}
-	
-	/**
-	 * Creates a <code>CompareViewerSwitchingPane</code> as a child of the given parent and with the
-	 * specified SWT style bits.
-	 *
-	 * @param parent a widget which will be the parent of the new instance (cannot be null)
-	 * @param style the style of widget to construct
-	 * @param visibility the initial visibility of the CompareViewerSwitchingPane
-	 *
-	 * @exception IllegalArgumentException <ul>
-	 *    <li>ERROR_NULL_ARGUMENT - if the parent is null</li>
-	 * </ul>
-	 * @exception SWTException <ul>
-	 *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the parent</li>
-	 * </ul>
-	 */		
-	public CompareViewerSwitchingPane(Composite parent, int style, boolean visibility) {
-		super(parent, style);
-
-		fControlVisibility= visibility;
-		
-		setViewer(new NullViewer(this));
-		
-		addDisposeListener(
-			new DisposeListener() {
-				public void widgetDisposed(DisposeEvent e) {
-					if (fViewer instanceof ISelectionProvider)
-						((ISelectionProvider) fViewer).removeSelectionChangedListener(CompareViewerSwitchingPane.this);
-					if (fViewer instanceof StructuredViewer) {
-						StructuredViewer sv= (StructuredViewer) fViewer;
-						sv.removeDoubleClickListener(CompareViewerSwitchingPane.this);
-						sv.removeOpenListener(fOpenHandler);
-					}
-					fViewer= null;
-					fInput= null;
-					fSelectionListeners= null;
-				}
-			}
-		);
-	}
-	
-	/**
-	 * Returns the current viewer.
-	 * 
-	 * @return the current viewer
-	 */
-	public Viewer getViewer() {
-		return fViewer;
-	}
-	
-	private void setViewer(Viewer newViewer) {
-		
-		if (newViewer == fViewer)
-			return;
-				
-		boolean oldEmpty= isEmpty();
-
-		if (fViewer != null) {
-			
-			if (fViewer instanceof ISelectionProvider)
-				 ((ISelectionProvider) fViewer).removeSelectionChangedListener(this);
-				 
-			if (fViewer instanceof StructuredViewer) {
-				StructuredViewer sv= (StructuredViewer) fViewer;
-				sv.removeDoubleClickListener(this);
-				sv.removeOpenListener(fOpenHandler);
-			}
-
-			Control content= getContent();
-			setContent(null);
-			
-			fViewer.setInput(null);
-								
-			if (content != null && !content.isDisposed())
-				content.dispose();
-
-		} else
-			oldEmpty= false;			
-		setContent(null);
-
-		fViewer= newViewer;
-
-		if (fViewer != null) {
-			// we have to remember and restore the old visibility of the CustomPane
-			// since setContent changes the visibility
-			boolean old= getVisible();
-			setContent(fViewer.getControl());
-			setVisible(old);	// restore old visibility
-
-			boolean newEmpty= isEmpty();
-
-			if (fViewer instanceof ISelectionProvider)
-				 ((ISelectionProvider) fViewer).addSelectionChangedListener(this);
-
-			if (fViewer instanceof StructuredViewer) {
-				StructuredViewer sv= (StructuredViewer) fViewer;
-				sv.addDoubleClickListener(this);
-				sv.addOpenListener(fOpenHandler);
-			}
-			
-			if (oldEmpty != newEmpty) {	// relayout my container
-				Composite parent= getParent();
-				if (parent instanceof Splitter)
-					((Splitter)parent).setVisible(this, fControlVisibility ? !newEmpty : true);
-			}
-				
-			layout(true);
-		}
-	}
-
-	/**
-	 * Returns the optional title argument that has been set with <code>setTitelArgument</code>
-	 * or <code>null</code> if no optional title argument has been set.
-	 * <p>
-	 * Note: this method is for internal use only. Clients should not call this method.
-	 * 
-	 * @return the optional title argument or <code>null</code>
-	 */
-	public String getTitleArgument() {
-		return fTitleArgument;
-	}
-
-	/**
-	 * Returns <code>true</code> if no viewer is installed or if the current viewer
-	 * is a <code>NullViewer</code>.
-	 * 
-	 * @return <code>true</code> if no viewer is installed or if the current viewer is a <code>NullViewer</code>
-	 */
-	public boolean isEmpty() {
-		return fViewer == null || fViewer instanceof NullViewer;
-	}
-
-	public void addSelectionChangedListener(ISelectionChangedListener l) {
-		fSelectionListeners.add(l);
-	}
-
-	public void removeSelectionChangedListener(ISelectionChangedListener l) {
-		fSelectionListeners.remove(l);
-	}
-
-	public void addDoubleClickListener(IDoubleClickListener l) {
-		fDoubleClickListener.add(l);
-	}
-
-	public void removeDoubleClickListener(IDoubleClickListener l) {
-		fDoubleClickListener.remove(l);
-	}
-
-	public void addOpenListener(IOpenListener l) {
-		fOpenListener.add(l);
-	}
-
-	public void removeOpenListener(IOpenListener l) {
-		fOpenListener.remove(l);
-	}
-
-	public void doubleClick(DoubleClickEvent event) {
-		Object[] listeners= fDoubleClickListener.getListeners();
-		for (int i= 0; i < listeners.length; i++)
-			((IDoubleClickListener) listeners[i]).doubleClick(event);
-	}
-
-	public ISelection getSelection() {
-		if (fViewer instanceof ISelectionProvider)
-			return ((ISelectionProvider) fViewer).getSelection();
-		return null;
-	}
-
-	public void setSelection(ISelection s) {
-		if (fViewer instanceof ISelectionProvider)
-			 ((ISelectionProvider) fViewer).setSelection(s);
-	}
-
-	public void selectionChanged(SelectionChangedEvent ev) {
-		Object[] listeners= fSelectionListeners.getListeners();
-		for (int i= 0; i < listeners.length; i++)
-			((ISelectionChangedListener) listeners[i]).selectionChanged(ev);
-	}
-	
-	private boolean hasFocus2() {
-		// do we have focus?
-		Display display= getDisplay();
-		if (display != null)
-			for (Control focus= display.getFocusControl(); focus != null; focus= focus.getParent())
-				if (focus == this)
-					return true;
-		return false;
-	}
-		
-	/**
-	 * Sets the input object of this pane. 
-	 * For this input object a suitable viewer is determined by calling the abstract
-	 * method <code>getViewer(Viewer, Object)</code>.
-	 * If the returned viewer differs from the current one, the old viewer
-	 * is disposed and the new one installed. Then the input object is fed
-	 * into the newly installed viewer by calling its <code>setInput(Object)</code> method.
-	 * If new and old viewer don't differ no new viewer is installed but just
-	 * <code>setInput(Object)</code> is called.
-	 * If the input is <code>null</code> the pane is cleared,
-	 * that is the current viewer is disposed.
-	 * 
-	 * @param input the new input object or <code>null</code>
-	 */ 
-	public void setInput(Object input) {
-
-		if (fInput == input)
-			return;
-			
-		boolean hadFocus= hasFocus2();
-		
-		fInput= input;
-
-		// viewer switching
-		Viewer newViewer= null;
-		if (input != null)
-			newViewer= getViewer(fViewer, input);
-
-		if (newViewer == null) {
-			if (fViewer instanceof NullViewer)
-				return;
-			newViewer= new NullViewer(this);
-		}
-		
-		setViewer(newViewer);
-
-		// set input
-		fViewer.setInput(input);
-
-		Image image= null;
-		if (!(fViewer instanceof NullViewer) && input instanceof ICompareInput)
-			image= ((ICompareInput)input).getImage();
-		setImage(image);
-		
-		String title= null;	
-		if (fViewer != null) {
-			Control c= fViewer.getControl();
-			if (c != null) {
-				Object data= c.getData(CompareUI.COMPARE_VIEWER_TITLE);
-				if (data instanceof String)
-					title= (String) data;
-				if (hadFocus)
-					c.setFocus();
-			}	
-		}
-			
-		fTitle= title;
-		updateTitle();
-	}
-	
-	/**
-	 * Sets an additional and optional argument for the pane's title.
-	 * Note: this method is for internal use only. Clients should not call this method.
-	 *  
-	 * @param argument an optional argument for the pane's title
-	 */
-	public void setTitleArgument(String argument) {
-		fTitleArgument= argument;
-		updateTitle();
-	}
-
-	private void updateTitle() {
-		if (fTitle != null) {
-			if (fTitleArgument != null) {
-				String format= CompareMessages.getString("CompareViewerSwitchingPane.Titleformat");	//$NON-NLS-1$
-				String t= MessageFormat.format(format, new String[] { fTitle, fTitleArgument } );
-				setText(t);
-			} else
-				setText(fTitle);			
-		} else {
-			setText("");	//$NON-NLS-1$
-		}
-	}
-
-	/**
-	 * Returns the current input of this pane or null if the pane has no input.
-	 * 
-	 * @return an <code>Object</code> that is the input to this pane or null if the pane has no input.
-	 */
-	public Object getInput() {
-		return fInput;
-	}
-
-	/**
-	 * Returns a viewer which is able to display the given input.
-	 * If no viewer can be found, <code>null</code> is returned.
-	 * The additional argument oldViewer represents the viewer currently installed
-	 * in the pane (or <code>null</code> if no viewer is installed).
-	 * It can be returned from this method if the current viewer can deal with the
-	 * input (and no new viewer must be created).
-	 *
-	 * @param oldViewer the currently installed viewer or <code>null</code>
-	 * @param input the input object for which a viewer must be determined or <code>null</code>
-	 * @return a viewer for the given input, or <code>null</code> if no viewer can be determined
-	 */
-	abstract protected Viewer getViewer(Viewer oldViewer, Object input);
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/EditionSelectionDialog.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/EditionSelectionDialog.java
deleted file mode 100644
index 5969b20..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/EditionSelectionDialog.java
+++ /dev/null
@@ -1,1126 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare;
-
-import java.util.HashMap;
-import java.util.ResourceBundle;
-import java.util.Date;
-import java.util.List;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.HashSet;
-import java.util.Calendar;
-import java.io.InputStream;
-import java.text.*;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.swt.widgets.TreeItem;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableItem;
-import org.eclipse.swt.widgets.Item;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.*;
-import org.eclipse.jface.util.Assert;
-import org.eclipse.jface.dialogs.*;
-
-import org.eclipse.core.runtime.CoreException;
-
-import org.eclipse.compare.internal.*;
-import org.eclipse.compare.structuremergeviewer.*;
-
-
-/**
- * A dialog where one input element can be compared against
- * a list of historic variants (editions) of the same input element.
- * The dialog can be used to implement functions like "Compare/Replace with Version" or
- * "Compare/Replace from Local History" on workspace resources.
- * <p>
- * In addition it is possible to specify a subsection of the input element
- * (e.g. a method in a Java source file) by means of a "path".
- * In this case the dialog compares only the subsection (as specified by the path)
- * with the corresponding subsection in the list of editions.
- * Only those editions are shown where the subsection differs from the same subsection in
- * another edition thereby minimizing the number of presented variants.
- * This functionality can be used to implement "Replace from Local History"
- * for the Java language.
- * <p>
- * Subsections of an input element are determined by first finding an
- * <code>IStructureCreator</code> for the input's type.
- * Then the method <code>locate</code> is used to extract the subsection.
- * <p>
- * Each edition (variant in the list of variants) must implement the <code>IModificationDate</code> interface
- * so that the dialog can sort the editions and present them in a tree structure where every
- * node corresponds one day.
- * <p>
- * The functionality is surfaced in a single function <code>selectEdition</code>.
- * <p>
- * Clients may instantiate this class; it is not intended to be subclassed.
- * </p>
- *
- * @see IModificationDate
- * @see ITypedElement
- */
-public class EditionSelectionDialog extends ResizableDialog {
-		
-	/**
-	 * An item in an underlying edition.
-	 */
-	private static class Pair {
-		
-		private ITypedElement fEdition;
-		private ITypedElement fItem;
-		private String fContent;
-		private IStructureCreator fStructureCreator;
-		private boolean fHasError= false;
-				
-		Pair(IStructureCreator structureCreator, ITypedElement edition, ITypedElement item) {
-			fStructureCreator= structureCreator;
-			fEdition= edition;
-			fItem= item;
-		}
-		
-		Pair(IStructureCreator structureCreator, ITypedElement edition) {
-			this(structureCreator, edition, edition);
-		}
-		
-		ITypedElement getEdition() {
-			return fEdition;
-		}
-
-		ITypedElement getItem() {
-			return fItem;
-		}
-		
-		/**
-		 * The content is lazily loaded
-		 */
-		private String getContent() {
-			if (fContent == null) {
-				if (fStructureCreator != null)
-					fContent= fStructureCreator.getContents(fItem, false);
-				else {
-					if (fItem instanceof IStreamContentAccessor) {
-						IStreamContentAccessor sca= (IStreamContentAccessor) fItem;
-						try {
-							InputStream is= sca.getContents();
-							if (is != null)
-								fContent= Utilities.readString(is);
-						} catch (CoreException ex) {
-						}
-					}
-				}
-				if (fContent == null)
-					fContent= ""; //$NON-NLS-1$
-			}
-			return fContent;
-		}
-		
-		/**
-		 * Compares content of item.
-		 */
-		public boolean equals(Object other) {
-			if (other != null && other.getClass() == getClass()) {
-				if (getContent().equals(((Pair)other).getContent()))
-					return true;
-			}
-			return super.equals(other);
-		}
-	}
-	
-	// Configuration options
-	private CompareConfiguration fCompareConfiguration;
-	private ArrayList fArrayList= new ArrayList();
-	/** use a side-by-side compare viewer */
-	private boolean fCompare= true;
-	/** show target on right hand side */
-	private boolean fTargetIsRight= false;
-	/** hide entries which have identical content */
-	private boolean fHideIdentical= true;
-	/** add mode if true, otherwise replace mode */
-	private boolean fAddMode= false;
-	/** compare mode if true, otherwise replace/add mode */
-	private boolean fCompareMode= false;
-	/** perform structure compare on editions */
-	private boolean fStructureCompare= false;
-	/** allow for multiple selection */
-	private boolean fMultiSelect= false;
-	
-	/**
-	 * Maps from members to their corresponding editions.
-	 * Has only a single entry if dialog is used in "Replace" (and not "Add") mode.
-	 */
-	private HashMap fMemberEditions;
-	/**
-	 * Maps from members to their corresponding selected edition.
-	 */
-	private HashMap fMemberSelection;
-	/** The editions of the current selected member */
-	private List fCurrentEditions;
-	private Thread fThread;
-	private Pair fTargetPair;
-	/** The selected edition in the edition viewer */
-	private ITypedElement fSelectedItem;
-	private String fTitleArg;
-	private Image fTitleImage;
-	
-	// SWT controls
-	private CompareViewerSwitchingPane fContentPane;
-	private Button fCommitButton;
-	private Table fMemberTable;
-	private CompareViewerPane fMemberPane;
-	private Tree fEditionTree;
-	private CompareViewerPane fEditionPane;
-	private Image fDateImage;
-	private Image fTimeImage;
-	private CompareViewerSwitchingPane fStructuredComparePane;
-	
-	/**
-	 * Creates a new modal, resizable dialog.
-	 * Various titles, icons, and labels are configured from the given resource bundle.
-	 * The following resource keys are used:
-	 * <pre>
-	 *	key         type          description
-	 *	title       String        dialog title
-	 *	width       Integer       initial width of dialog
-	 *	height      Integer       initial height of dialog
-	 *	treeTitleFormat   MessageFormat pane title for edition tree; arg 0 is the target
-	 *	dateIcon    String        icon for node in edition tree; path relative to plugin
-	 *	timeIcon    String        icon for leaf in edition tree; path relative to plugin
-	 *	todayFormat MessageFormat format string if date is todays date; arg 0 is date
-	 *	yesterdayFormat MessageFormat format string if date is yesterdays date; arg 0 is date
-	 *	dayFormat   MessageFormat format string if date is any other date; arg 0 is date
-	 *	editionLabel String       label for editions side of compare viewer; arg 0 is the date
-	 *	targetLabel  String       label for target side of compare viewer 
-	 *  buttonLabel  String       label for OK button; default is IDialogConstants.OK_LABEL
-	 * </pre>
-	 *
-	 * @param parent if not <code>null</code> the new dialog stays on top of this parent shell
-	 * @param bundle <code>ResourceBundle</code> to configure the dialog
-	 */
-	public EditionSelectionDialog(Shell parent, ResourceBundle bundle) {
-		super(parent, bundle);
-		
-		fCompareConfiguration= new CompareConfiguration();
-		fCompareConfiguration.setLeftEditable(false);
-		fCompareConfiguration.setRightEditable(false);
-				
-		String iconName= Utilities.getString(fBundle, "dateIcon", "obj16/day_obj.gif"); //$NON-NLS-2$ //$NON-NLS-1$
-		ImageDescriptor id= CompareUIPlugin.getImageDescriptor(iconName);
-		if (id != null)
-			fDateImage= id.createImage();
-		iconName= Utilities.getString(fBundle, "timeIcon", "obj16/resource_obj.gif"); //$NON-NLS-1$ //$NON-NLS-2$
-		id= CompareUIPlugin.getImageDescriptor(iconName);
-		if (id != null)
-			fTimeImage= id.createImage();
-	}
-		
-	/**
-	 * Sets an additional and optional argument for the edition pane's title.
-	 *  
-	 * @param titleArgument an optional argument for the edition pane's title
-	 * @since 2.0
-	 */
-	public void setEditionTitleArgument(String titleArgument) {
-		fTitleArg= titleArgument;
-	}
-	
-	/**
-	 * Sets an optional image for the edition pane's title.
-	 *  
-	 * @param titleImage an optional image for the edition pane's title
-	 * @since 2.0
-	 */
-	public void setEditionTitleImage(Image titleImage) {
-		fTitleImage= titleImage;
-	}
-	
-	/**
-	 * Select the previous edition (presenting a UI).
-	 *
-	 * @param target the input object against which the editions are compared; must not be <code>null</code>
-	 * @param editions the list of editions (element type: <code>ITypedElement</code>s)
-	 * @param path If <code>null</code> dialog shows full input; if non <code>null</code> it extracts a subsection
-	 * @return returns the selected edition or <code>null</code> if error occurred.
-	 * The returned <code>ITypedElement</code> is one of the original editions
-	 * if <code>path</code> was <code>null</code>; otherwise
-	 * it is an <code>ITypedElement</code> returned from <code>IStructureCreator.locate(path, item)</code>
-	 * @since 2.0
-	 */
-	public ITypedElement selectPreviousEdition(final ITypedElement target, ITypedElement[] inputEditions, Object ppath) {
-		Assert.isNotNull(target);
-		fTargetPair= new Pair(null, target);
-		
-		// sort input editions
-		final int count= inputEditions.length;
-		final IModificationDate[] editions= new IModificationDate[count];
-		for (int i= 0; i < count; i++)
-			editions[i]= (IModificationDate) inputEditions[i];
-		if (count > 1)
-			internalSort(editions, 0, count-1);
-			
-		// find StructureCreator if ppath is not null
-		IStructureCreator structureCreator= null;
-		if (ppath != null) {
-			String type= target.getType();
-			IStructureCreatorDescriptor scd= CompareUIPlugin.getStructureCreator(type);
-			if (scd != null)
-				structureCreator= scd.createStructureCreator();
-		}
-
-		if (fAddMode) {
-			// does not work in add mode
-			return null;
-		}
-			
-		if (structureCreator != null) {
-			Pair pair= createPair(structureCreator, ppath, target);
-			if (pair != null)
-				fTargetPair= pair;
-			else
-				ppath= null;	// couldn't extract item because of error
-		}
-					
-		// from front (newest) to back (oldest)
-		for (int i= 0; i < count; i++) {
-				
-			ITypedElement edition= (ITypedElement) editions[i];
-			Pair pair= null;
-			
-			if (structureCreator != null && ppath != null) {
-				// extract sub element from edition
-				pair= createPair(structureCreator, ppath, edition);
-			} else {
-				pair= new Pair(null, edition);
-			}
-			
-			if (pair != null && pair.fHasError)
-				return null;
-				
-			if (pair != null && !fTargetPair.equals(pair)) {
-				return pair.fItem;
-			}
-		}
-		
-		// nothing found
-		return null;
-	}
-	
-	/**
-	 * Presents this modal dialog with the functionality described in the class comment above.
-	 *
-	 * @param target the input object against which the editions are compared; must not be <code>null</code>
-	 * @param editions the list of editions (element type: <code>ITypedElement</code>s)
-	 * @param path If <code>null</code> dialog shows full input; if non <code>null</code> it extracts a subsection
-	 * @return returns the selected edition or <code>null</code> if dialog was cancelled.
-	 * The returned <code>ITypedElement</code> is one of the original editions
-	 * if <code>path</code> was <code>null</code>; otherwise
-	 * it is an <code>ITypedElement</code> returned from <code>IStructureCreator.locate(path, item)</code>
-	 */
-	public ITypedElement selectEdition(final ITypedElement target, ITypedElement[] inputEditions, Object ppath) {
-		
-		Assert.isNotNull(target);
-		fTargetPair= new Pair(null, target);
-		
-		// sort input editions
-		final int count= inputEditions.length;
-		final IModificationDate[] editions= new IModificationDate[count];
-		for (int i= 0; i < count; i++)
-			editions[i]= (IModificationDate) inputEditions[i];
-		if (count > 1)
-			internalSort(editions, 0, count-1);
-			
-		// find StructureCreator if ppath is not null
-		IStructureCreator structureCreator= null;
-		if (ppath != null) {
-			String type= target.getType();
-			IStructureCreatorDescriptor scd= CompareUIPlugin.getStructureCreator(type);
-			if (scd != null)
-				structureCreator= scd.createStructureCreator();
-		}
-
-		if (!fAddMode) {
-			// replace mode
-			
-			if (structureCreator != null) {
-				Pair pair= createPair(structureCreator, ppath, target);
-				if (pair != null)
-					fTargetPair= pair;
-				else
-					ppath= null;	// couldn't extract item because of error
-			}
-			
-			// set the left and right labels for the compare viewer
-			String targetLabel= getTargetLabel(target, fTargetPair.getItem());
-			if (fTargetIsRight)
-				fCompareConfiguration.setRightLabel(targetLabel);
-			else
-				fCompareConfiguration.setLeftLabel(targetLabel);
-			
-			if (structureCreator != null && ppath != null) {	// extract sub element
-				
-				final IStructureCreator sc= structureCreator;
-				final Object path= ppath;
-				
-				// construct the comparer thread
-				// and perform the background extract
-				fThread= new Thread() {
-					public void run() {
-																				
-						// from front (newest) to back (oldest)
-						for (int i= 0; i < count; i++) {
-								
-							if (fEditionTree == null || fEditionTree.isDisposed())
-								break;
-							ITypedElement edition= (ITypedElement) editions[i];
-							
-							// extract sub element from edition
-							Pair pair= createPair(sc, path, edition);
-							if (pair != null)
-								sendPair(pair);
-						}
-						sendPair(null);
-					}
-				};
-			} else {
-				// create tree widget
-				create();
-				
-				// from front (newest) to back (oldest)
-				for (int i= 0; i < count; i++)
-					addMemberEdition(new Pair(null, (ITypedElement) editions[i]));
-			}
-			
-		} else {
-			// add mode
-			final Object container= ppath;
-			Assert.isNotNull(container);
-								
-			if (structureCreator == null)
-				return null;	// error
-		
-			// extract all elements of container
-			final HashSet current= new HashSet();
-			IStructureComparator sco= structureCreator.locate(container, target);
-			if (sco != null) {
-				Object[] children= sco.getChildren();
-				if (children != null)
-					for (int i= 0; i < children.length; i++)
-						current.add(children[i]);
-			}
-			
-			final IStructureCreator sc= structureCreator;
-			
-			// construct the comparer thread
-			// and perform the background extract
-			fThread= new Thread() {
-				public void run() {
-					
-					// from front (newest) to back (oldest)
-					for (int i= 0; i < count; i++) {
-							
-						if (fEditionTree == null || fEditionTree.isDisposed())
-							break;
-						ITypedElement edition= (ITypedElement) editions[i];
-						
-						IStructureComparator sco2= sc.locate(container, edition);
-						if (sco2 != null) {
-							Object[] children= sco2.getChildren();
-							if (children != null) {
-								for (int i2= 0; i2 < children.length; i2++) {
-									ITypedElement child= (ITypedElement) children[i2];
-									if (!current.contains(child))
-										sendPair(new Pair(sc, edition, child));
-								}
-							}
-						}
-					}
-					sendPair(null);
-				}
-			};
-		}
-		
-		open();
-		
-		if (getReturnCode() == OK)
-			return fSelectedItem;
-		return null;
-	}
-	
-	private Pair createPair(IStructureCreator sc, Object path, ITypedElement input) {
-		IStructureComparator scmp= sc.locate(path, input);
-		if (scmp == null && sc.getStructure(input) == null) {	// parse error
-			Pair p= new Pair(sc, input);
-			p.fHasError= true;
-			return p;
-		}
-		if (scmp instanceof ITypedElement)
-			return new Pair(sc, input, (ITypedElement) scmp);
-		return null;
-	}
-
-	/**
-	 * Controls whether identical entries are shown or not (default).
-	 * This method must be called before <code>selectEdition</code>.
-	 *
-	 * @param hide if true identical entries are hidden; otherwise they are shown.
-	 * @since 2.0
-	 */
-	public void setHideIdenticalEntries(boolean hide) {
-		fHideIdentical= hide;
-	}
-
-	/**
-	 * Controls whether workspace target is on the left (the default) or right hand side.
-	 *
-	 * @param isRight if true target is shown on right hand side.
-	 * @since 2.0
-	 */
-	public void setTargetIsRight(boolean isRight) {
-		fTargetIsRight= isRight;
-	}
-		
-	/**
-	 * Controls whether the <code>EditionSelectionDialog</code> is in 'add' mode
-	 * or 'replace' mode (the default).
-	 *
-	 * @param addMode if true dialog is in 'add' mode.
-	 * @since 2.0
-	 */
-	public void setAddMode(boolean addMode) {
-		fAddMode= addMode;
-		fMultiSelect= addMode;
-	}
-	
-	/**
-	 * Controls whether the <code>EditionSelectionDialog</code> is in 'compare' mode
-	 * or 'add/replace' (the default) mode. 
-	 *
-	 * @param addMode if true dialog is in 'add' mode.
-	 * @since 2.0
-	 */
-	public void setCompareMode(boolean compareMode) {
-		fCompareMode= compareMode;
-		fStructureCompare= fCompareMode && !fAddMode;
-	}
-	
-	/**
-	 * Returns the input target that has been specified with the most recent call
-	 * to <code>selectEdition</code>. If a not <code>null</code> path was specified this method
-	 * returns a subsection of this target (<code>IStructureCreator.locate(path, target)</code>)
-	 * instead of the input target.
-	 * <p>
-	 * For example if the <code>target</code> is a Java compilation unit and <code>path</code> specifies
-	 * a method, the value returned from <code>getTarget</code> will be the method not the compilation unit.
-	 *
-	 * @return the last specified target or a subsection thereof.
-	 */
-	public ITypedElement getTarget() {
-		return fTargetPair.getItem();
-	}
- 	
-	/**
-	 * Returns the editions that have been selected with the most
-	 * recent call to <code>selectEdition</code>.
-	 * 
-	 * @return the selected editions as an array.
-	 * @since 2.1
-	 */
-	public ITypedElement[] getSelection() {
-		ArrayList result= new ArrayList();
-		if (fMemberSelection != null) {
-			Iterator iter= fArrayList.iterator();
-			for (int i= 0; iter.hasNext(); i++) {
-				Object edition= iter.next();		
-				Object item= fMemberSelection.get(edition);
-				if (item != null)
-					result.add(item);
-			}
-		} else if (fSelectedItem != null)
-			result.add(fSelectedItem);
-		return (ITypedElement[]) result.toArray(new ITypedElement[result.size()]);
-	}
-		
- 	/**
- 	 * Returns a label for identifying the target side of a compare viewer.
- 	 * This implementation extracts the value for the key "targetLabel" from the resource bundle
- 	 * and passes it as the format argument to <code>MessageFormat.format</code>.
- 	 * The single format argument for <code>MessageFormat.format</code> ("{0}" in the format string)
- 	 * is the name of the given input element.
-	 * <p>
-	 * Subclasses may override to create their own label.
-	 * </p>
- 	 *
- 	 * @param target the target element for which a label must be returned
- 	 * @param item if a path has been specified in <code>selectEdition</code> a sub element of the given target; otherwise the same as target
- 	 * @return a label the target side of a compare viewer
-  	 */
-	protected String getTargetLabel(ITypedElement target, ITypedElement item) {
-		String format= null;
-		if (target instanceof ResourceNode)
-			format= Utilities.getString(fBundle, "workspaceTargetLabel", null); //$NON-NLS-1$
-		if (format == null)
-			format= Utilities.getString(fBundle, "targetLabel"); //$NON-NLS-1$
-		if (format == null)
-			format= "x{0}"; //$NON-NLS-1$
-		
-		return MessageFormat.format(format, new Object[] { target.getName() });
-	}
-	
- 	/**
- 	 * Returns a label for identifying the edition side of a compare viewer.
- 	 * This implementation extracts the value for the key "editionLabel" from the resource bundle
- 	 * and passes it as the format argument to <code>MessageFormat.format</code>.
- 	 * The single format argument for <code>MessageFormat.format</code> ("{0}" in the format string)
- 	 * is the formatted modification date of the given input element.
- 	 * <p>
-	 * Subclasses may override to create their own label.
-	 * </p>
-	 *
-	 * @param selectedEdition the selected edition for which a label must be returned
- 	 * @param item if a path has been specified in <code>selectEdition</code> a sub element of the given selectedEdition; otherwise the same as selectedEdition
- 	 * @return a label for the edition side of a compare viewer
-  	 */
-	protected String getEditionLabel(ITypedElement selectedEdition, ITypedElement item) {
-		String format= null;
-		if (selectedEdition instanceof ResourceNode)
-			format= Utilities.getString(fBundle, "workspaceEditionLabel", null);	//$NON-NLS-1$
-		else if (selectedEdition instanceof HistoryItem)
-			format= Utilities.getString(fBundle, "historyEditionLabel", null);	//$NON-NLS-1$
-		if (format == null)
-			format= Utilities.getString(fBundle, "editionLabel");	//$NON-NLS-1$
-		if (format == null)
-			format= "x{0}";	//$NON-NLS-1$
-		
-
-		String date= "";	//$NON-NLS-1$
-		if (selectedEdition instanceof IModificationDate) {
-			long modDate= ((IModificationDate)selectedEdition).getModificationDate();
-			date= DateFormat.getDateTimeInstance().format(new Date(modDate));
-		}
-		
-		return MessageFormat.format(format, new Object[] { date });
-	}
-	
- 	/**
- 	 * Returns a label for identifying a node in the edition tree viewer.
- 	 * This implementation extracts the value for the key "workspaceTreeFormat" or
- 	 * "treeFormat" (in that order) from the resource bundle
- 	 * and passes it as the format argument to <code>MessageFormat.format</code>.
- 	 * The single format argument for <code>MessageFormat.format</code> ("{0}" in the format string)
- 	 * is the formatted modification date of the given input element.
- 	 * <p>
-	 * Subclasses may override to create their own label.
-	 * </p>
-	 *
-	 * @param edition the edition for which a label must be returned
- 	 * @param item if a path has been specified in <code>edition</code> a sub element of the given edition; otherwise the same as edition
- 	 * @return a label of a node in the edition tree viewer
-	 * @since 2.0
-	 */
-	protected String getShortEditionLabel(ITypedElement edition, ITypedElement item, Date date) {
-		String format= null;
-		if (edition instanceof ResourceNode)
-			format= Utilities.getString(fBundle, "workspaceTreeFormat", null);	//$NON-NLS-1$
-		if (format == null)
-			format= Utilities.getString(fBundle, "treeFormat", null);	//$NON-NLS-1$
-		if (format == null)
-			format= "x{0}"; //$NON-NLS-1$
-
-		String ds= DateFormat.getTimeInstance().format(date);
-		return MessageFormat.format(format, new Object[] { ds });
-	}
-	
- 	/**
- 	 * Returns an image for identifying the edition side of a compare viewer.
- 	 * This implementation extracts the value for the key "editionLabel" from the resource bundle
- 	 * and passes it as the format argument to <code>MessageFormat.format</code>.
- 	 * The single format argument for <code>MessageFormat.format</code> ("{0}" in the format string)
- 	 * is the formatted modification date of the given input element.
- 	 * <p>
-	 * Subclasses may override to create their own label.
-	 * </p>
-	 *
-	 * @param selectedEdition the selected edition for which a label must be returned
- 	 * @param item if a path has been specified in <code>selectEdition</code> a sub element of the given selectedEdition; otherwise the same as selectedEdition
- 	 * @return a label the edition side of a compare viewer
-  	 * @since 2.0
- 	 */
-	protected Image getEditionImage(ITypedElement selectedEdition, ITypedElement item) {
-		if (selectedEdition instanceof ResourceNode)
-			return selectedEdition.getImage();
-		if (selectedEdition instanceof HistoryItem)
-			return fTimeImage;
-		return null;
-	}
-	
- 	/* (non Javadoc)
- 	 * Creates SWT control tree.
- 	 */
-	protected synchronized Control createDialogArea(Composite parent2) {
-		
-		Composite parent= (Composite) super.createDialogArea(parent2);
-
-		getShell().setText(Utilities.getString(fBundle, "title")); //$NON-NLS-1$
-		
-		Splitter vsplitter= new Splitter(parent,  SWT.VERTICAL);
-		vsplitter.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL
-					| GridData.VERTICAL_ALIGN_FILL | GridData.GRAB_VERTICAL));
-
-		vsplitter.addDisposeListener(
-			new DisposeListener() {
-				public void widgetDisposed(DisposeEvent e) {
-					if (fDateImage != null)
-						fDateImage.dispose();
-					if (fTimeImage != null)
-						fTimeImage.dispose();
-				}
-			}
-		);
-		
-		if (fAddMode) {
-			// we need two panes: the left for the elements, the right one for the editions
-			Splitter hsplitter= new Splitter(vsplitter,  SWT.HORIZONTAL);
-			
-			fMemberPane= new CompareViewerPane(hsplitter, SWT.BORDER | SWT.FLAT);
-			fMemberPane.setText(Utilities.getString(fBundle, "memberPaneTitle")); //$NON-NLS-1$
-			
-			int flags= SWT.H_SCROLL + SWT.V_SCROLL;
-			if (fMultiSelect)
-				flags|= SWT.CHECK;
-			fMemberTable= new Table(fMemberPane, flags);
-			fMemberTable.addSelectionListener(
-				new SelectionAdapter() {
-					public void widgetSelected(SelectionEvent e) {
-						if (e.detail == SWT.CHECK) {
-							if (e.item instanceof TableItem) {
-								TableItem ti= (TableItem) e.item;
-								Object data= ti.getData();
-								if (ti.getChecked())
-									fArrayList.add(data);
-								else
-									fArrayList.remove(data);
-									
-								if (fCommitButton != null)
-									fCommitButton.setEnabled(fArrayList.size() > 0);
-									
-								fMemberTable.setSelection(new TableItem[] { ti });
-							}
-						}
-						handleMemberSelect(e.item);
-					}
-				}
-			);
-			fMemberPane.setContent(fMemberTable);
-			fMemberTable.setFocus();
-						
-			fEditionPane= new CompareViewerPane(hsplitter, SWT.BORDER | SWT.FLAT);
-		} else {
-			if (fStructureCompare) {
-				// we need two panes: the left for the elements, the right one for the structured diff
-				Splitter hsplitter= new Splitter(vsplitter,  SWT.HORIZONTAL);
-				
-				fEditionPane= new CompareViewerPane(hsplitter, SWT.BORDER | SWT.FLAT);
-				fStructuredComparePane= new CompareViewerSwitchingPane(hsplitter, SWT.BORDER | SWT.FLAT, true) {
-					protected Viewer getViewer(Viewer oldViewer, Object input) {
-						if (input instanceof ICompareInput)
-							return CompareUIPlugin.findStructureViewer(oldViewer, (ICompareInput)input, this, fCompareConfiguration);
-						return null;
-					}
-				};
-				fStructuredComparePane.addSelectionChangedListener(
-					new ISelectionChangedListener() {
-						public void selectionChanged(SelectionChangedEvent e) {
-							feedInput2(e.getSelection());
-						}
-					}
-				);
-			} else {
-				// only a single pane showing the editions
-				fEditionPane= new CompareViewerPane(vsplitter, SWT.BORDER | SWT.FLAT);
-			}
-			if (fTitleArg == null)
-				fTitleArg= fTargetPair.getItem().getName();
-			String titleFormat= Utilities.getString(fBundle, "treeTitleFormat"); //$NON-NLS-1$
-			String title= MessageFormat.format(titleFormat, new String[] { fTitleArg });
-			fEditionPane.setText(title);
-			if (fTitleImage != null)
-				fEditionPane.setImage(fTitleImage);
-		}
-		
-		fEditionTree= new Tree(fEditionPane, SWT.H_SCROLL + SWT.V_SCROLL);
-		fEditionTree.addSelectionListener(
-			new SelectionAdapter() {
-//				public void widgetDefaultSelected(SelectionEvent e) {
-//					handleDefaultSelected();
-//				}
-				public void widgetSelected(SelectionEvent e) {
-					feedInput(e.item);
-				}
-			}
-		);
-		fEditionPane.setContent(fEditionTree);		
-		
-		// now start the thread (and forget about it)
-		if (fThread != null) {
-			fThread.start();
-			fThread= null;
-		}
-		
-		fContentPane= new CompareViewerSwitchingPane(vsplitter, SWT.BORDER | SWT.FLAT) {
-			protected Viewer getViewer(Viewer oldViewer, Object input) {
-				return CompareUIPlugin.findContentViewer(oldViewer, input, this, fCompareConfiguration);	
-			}
-		};
-		vsplitter.setWeights(new int[] { 30, 70 });
-
-		applyDialogFont(parent);				
-		return parent;
-	}	
-	
-	/* (non-Javadoc)
-	 * Method declared on Dialog.
-	 */
-	protected void createButtonsForButtonBar(Composite parent) {
-		String buttonLabel= Utilities.getString(fBundle, "buttonLabel", IDialogConstants.OK_LABEL); //$NON-NLS-1$
-		if (fCompareMode) {
-			// only a 'Done' button
-			createButton(parent, IDialogConstants.CANCEL_ID, buttonLabel, false);
-		} else {
-			// a 'Cancel' and a 'Add/Replace' button
-			fCommitButton= createButton(parent, IDialogConstants.OK_ID, buttonLabel, true);
-			fCommitButton.setEnabled(false);
-			createButton(parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, false);
-		}
-	}
-
-	/**
-	 * Overidden to disable dismiss on double click in compare mode.
-	 * @since 2.0
-	 */
-	protected void okPressed() {
-		if (fCompareMode)
-			;	// don't dismiss dialog
-		else
-			super.okPressed();
-	}
-
-	//---- private stuff ----------------------------------------------------------------------------------------
-				
-	/**
-	 * Asynchroneously sends a Pair (or null) to the UI thread.
-	 */
-	private void sendPair(final Pair pair) {		
-		if (fEditionTree != null && !fEditionTree.isDisposed()) {
-			Display display= fEditionTree.getDisplay();
-			display.asyncExec(
-				new Runnable() {
-					public void run() {
-						addMemberEdition(pair);
-					}
-				}
-			);
-		}
-	}
-	
-	private static void internalSort(IModificationDate[] keys, int left, int right) { 
-	
-		int original_left= left;
-		int original_right= right;
-		
-		IModificationDate mid= keys[(left + right) / 2]; 
-		do { 
-			while (keys[left].getModificationDate() > mid.getModificationDate())
-				left++; 
-			
-			while (mid.getModificationDate() > keys[right].getModificationDate())
-				right--; 
-		
-			if (left <= right) { 
-				IModificationDate tmp= keys[left]; 
-				keys[left]= keys[right]; 
-				keys[right]= tmp;			
-				left++; 
-				right--; 
-			} 
-		} while (left <= right);
-		
-		if (original_left < right)
-			internalSort(keys, original_left, right); 
-		
-		if (left < original_right)
-			internalSort(keys, left, original_right); 
-	}
-	
-	/**
-	 * Adds the given Pair to the member editions.
-	 * If HIDE_IDENTICAL is true the new Pair is only added if its contents
-	 * is different from the preceeding Pair.
-	 * If the argument is <code>null</code> the message "No Editions found" is shown
-	 * in the member or edition viewer.
-	 */
-	private void addMemberEdition(Pair pair) {
-		
-		if (pair == null) {	// end of list of pairs
-			if (fMemberTable != null) {	
-				if (!fMemberTable.isDisposed() && fMemberTable.getItemCount() == 0) {
-					if (fMultiSelect) {
-						fMemberTable.dispose();
-						fMemberTable= new Table(fMemberPane, SWT.NONE);
-						fMemberPane.setContent(fMemberTable);
-					}
-					TableItem ti= new TableItem(fMemberTable, SWT.NONE);
-					ti.setText(Utilities.getString(fBundle, "noAdditionalMembersMessage")); //$NON-NLS-1$
-				}
-				return;
-			}
-			if (fEditionTree != null && !fEditionTree.isDisposed() && fEditionTree.getItemCount() == 0) {
-				TreeItem ti= new TreeItem(fEditionTree, SWT.NONE);
-				ti.setText(Utilities.getString(fBundle, "notFoundInLocalHistoryMessage")); //$NON-NLS-1$
-			}
-			return;
-		}
-		
-		if (fMemberEditions == null)
-			fMemberEditions= new HashMap();
-		if (fMultiSelect && fMemberSelection == null)
-			fMemberSelection= new HashMap();
-		
-		ITypedElement item= pair.getItem();
-		List editions= (List) fMemberEditions.get(item);
-		if (editions == null) {
-			editions= new ArrayList();
-			fMemberEditions.put(item, editions);
-			if (fMemberTable != null && !fMemberTable.isDisposed()) {
-				ITypedElement te= (ITypedElement)item;
-				String name= te.getName();
-				
-				// find position
-				TableItem[] items= fMemberTable.getItems();
-				int where= items.length;
-				for (int i= 0; i < where; i++) {
-					String n= items[i].getText();
-					if (n.compareTo(name) > 0) {
-						where= i;
-						break;
-					}
-				}
-				
-				TableItem ti= new TableItem(fMemberTable, where, SWT.NULL);
-				ti.setImage(te.getImage());
-				ti.setText(name);
-				ti.setData(editions);
-			}
-		}
-		if (fHideIdentical) {
-			Pair last= fTargetPair;
-			int size= editions.size();
-			if (size > 0)
-				last= (Pair) editions.get(size-1);
-			if (last != null && last.equals(pair))
-				return;	// don't add since the new one is equal to old
-		}
-		editions.add(pair);
-		
-		if (!fAddMode || editions == fCurrentEditions)
-			addEdition(pair);
-	}
-		
-	/**
-	 * Returns the number of s since Jan 1st, 1970.
-	 * The given date is converted to GMT and daylight saving is taken into account too.
-	 */
-	private long dayNumber(long date) {
-		int ONE_DAY_MS= 24*60*60 * 1000; // one day in milli seconds
-		
-		Calendar calendar= Calendar.getInstance();
-		long localTimeOffset= calendar.get(Calendar.ZONE_OFFSET) + calendar.get(Calendar.DST_OFFSET);
-		
-		return (date + localTimeOffset) / ONE_DAY_MS;
-	}
-	
-	/**
-	 * Adds the given Pair to the edition tree.
-	 * It takes care of creating tree nodes for different dates.
-	 */
-	private void addEdition(Pair pair) {
-		if (fEditionTree == null || fEditionTree.isDisposed())
-			return;
-		
-		// find last day
-		TreeItem[] days= fEditionTree.getItems();
-		TreeItem lastDay= null;
-		if (days.length > 0)
-			lastDay= days[days.length-1];
-		
-		boolean first= lastDay == null;
-		
-		ITypedElement edition= pair.getEdition();
-		ITypedElement item= pair.getItem();
-		
-		long ldate= ((IModificationDate)edition).getModificationDate();		
-		long day= dayNumber(ldate);
-		Date date= new Date(ldate);
-		if (lastDay == null || day != dayNumber(((Date)lastDay.getData()).getTime())) {
-			lastDay= new TreeItem(fEditionTree, SWT.NONE);
-			lastDay.setImage(fDateImage);
-			String df= DateFormat.getDateInstance().format(date);
-			long today= dayNumber(System.currentTimeMillis());
-			
-			String formatKey;
-			if (day == today)
-				formatKey= "todayFormat"; //$NON-NLS-1$
-			else if (day == today-1)
-				formatKey= "yesterdayFormat"; //$NON-NLS-1$
-			else
-				formatKey= "dayFormat"; //$NON-NLS-1$
-			String pattern= Utilities.getString(fBundle, formatKey);
-			if (pattern != null)
-				df= MessageFormat.format(pattern, new String[] { df });
-			lastDay.setText(df);
-			lastDay.setData(date);
-		}
-		TreeItem ti= new TreeItem(lastDay, SWT.NONE);
-		ti.setImage(getEditionImage(edition, item));
-		
-		String s= getShortEditionLabel(edition, item, date);
-		if (pair.fHasError) {
-			String pattern= Utilities.getString(fBundle, "parseErrorFormat"); //$NON-NLS-1$
-			s= MessageFormat.format(pattern, new String[] { s } );
-		}
-		ti.setText(s);
-		
-		ti.setData(pair);
-		
-		// determine selected TreeItem
-		TreeItem selection= first ? ti : null;
-		if (fMemberSelection != null) {
-			Object selected= fMemberSelection.get(fCurrentEditions);
-			if (selected != null) {
-				if (selected == pair.getItem())
-					selection= ti;
-				else
-					selection= null;
-			}
-		}
-		if (selection != null) {
-			fEditionTree.setSelection(new TreeItem[] { selection });
-			if (!fAddMode)
-				fEditionTree.setFocus();
-			feedInput(selection);
-		}
-		
-		if (first) // expand first node
-			lastDay.setExpanded(true);
-	}
-						
-	/**
-	 * Feeds selection from member viewer to edition viewer.
-	 */
-	private void handleMemberSelect(Widget w) {
-		Object data= w.getData();
-		if (data instanceof List) {
-			List editions= (List) data;
-			if (editions != fCurrentEditions) {
-				fCurrentEditions= editions;
-				fEditionTree.removeAll();
-				
-				String pattern= Utilities.getString(fBundle, "treeTitleFormat"); //$NON-NLS-1$
-				String title= MessageFormat.format(pattern, new Object[] { ((Item)w).getText() });
-				fEditionPane.setText(title);
-								
-				Iterator iter= editions.iterator();
-				while (iter.hasNext()) {
-					Object item= iter.next();
-					if (item instanceof Pair)
-						addEdition((Pair) item);
-				}
-			}
-		}
-	}
-	
-	private void setInput(Object input) {
-		if (!fCompare && input instanceof ICompareInput) {
-			ICompareInput ci= (ICompareInput) input;
-			if (fTargetIsRight)
-				input= ci.getLeft();
-			else
-				input= ci.getRight();
-		}
-		fContentPane.setInput(input);
-		if (fStructuredComparePane != null)
-			fStructuredComparePane.setInput(input);
-	}
-	
-	/*
-	 * Feeds selection from edition viewer to content (and structure) viewer.
-	 */
-	private void feedInput(Widget w) {
-		Object input= w.getData();
-		boolean isOK= false;
-		if (input instanceof Pair) {
-			Pair pair= (Pair) input;
-			fSelectedItem= pair.getItem();
-			isOK= !pair.fHasError;
-			
-			ITypedElement edition= pair.getEdition();
-			String editionLabel= getEditionLabel(edition, fSelectedItem);
-			Image editionImage= getEditionImage(edition, fSelectedItem);
-					
-			if (fAddMode) {
-				if (fMemberSelection != null)
-					fMemberSelection.put(fCurrentEditions, fSelectedItem);
-				setInput(fSelectedItem);
-				fContentPane.setText(editionLabel);
-				fContentPane.setImage(editionImage);
-			} else {
-				if (fTargetIsRight) {
-					fCompareConfiguration.setLeftLabel(editionLabel);
-					fCompareConfiguration.setLeftImage(editionImage);
-					setInput(new DiffNode(fSelectedItem, fTargetPair.getItem()));
-				} else {
-					fCompareConfiguration.setRightLabel(editionLabel);
-					fCompareConfiguration.setRightImage(editionImage);
-					setInput(new DiffNode(fTargetPair.getItem(), fSelectedItem));
-				}
-			}
-		} else {
-			fSelectedItem= null;
-			setInput(null);
-		}
-		if (fCommitButton != null) {
-			if (fMultiSelect)
-				fCommitButton.setEnabled(isOK && fSelectedItem != null && fArrayList.size() > 0);
-			else
-				fCommitButton.setEnabled(isOK && fSelectedItem != null && fTargetPair.getItem() != fSelectedItem);
-		}
-	}
-	
-	/*
-	 * Feeds selection from structure viewer to content viewer.
-	 */
-	private void feedInput2(ISelection sel) {
-		if (sel instanceof IStructuredSelection) {
-			IStructuredSelection ss= (IStructuredSelection) sel;
-			if (ss.size() == 1)
-				fContentPane.setInput(ss.getFirstElement());
-		}
-	}
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/HistoryItem.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/HistoryItem.java
deleted file mode 100644
index cc521e1..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/HistoryItem.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare;
-
-import java.io.InputStream;
-import java.io.BufferedInputStream;
-
-import org.eclipse.swt.graphics.Image;
-
-import org.eclipse.core.resources.IFileState;
-import org.eclipse.core.runtime.CoreException;
-
-/**
- * A combination <code>IFileState</code> and <code>ITypedElement</code> that can be used as
- * an input to a compare viewer or other places where an <code>IStreamContentAccessor</code>
- * is needed.
- * <p>
- * <p>
- * Clients may instantiate this class; it is not intended to be subclassed.
- * </p>
- */
-public class HistoryItem implements IStreamContentAccessor, ITypedElement, IModificationDate {
-	
-	private ITypedElement fBase;
-	private IFileState fFileState; 
-
-	/**
-	 * Creates a <code>HistoryItem</code> object which combines the given <code>IFileState</code>
-	 * and <code>ITypedElement</code> into an object
-	 * which is suitable as input for a compare viewer or <code>ReplaceWithEditionDialog</code>.
-	 *
-	 * @param base the implementation of the <code>ITypedElement</code> interface delegates to this base <code>ITypedElement</code>
-	 * @param fileState the <code>IFileState</code> from which the streamable contents and the modification time is derived from
-	 */
-	public HistoryItem(ITypedElement base, IFileState fileState) {
-		fBase= base;
-		fFileState= fileState;
-	}
-	
-	/* (non-Javadoc)
-	 * see ITypedElement.getName
-	 */
-	public String getName() {
-		return fBase.getName();
-	}
-	
-	/* (non-Javadoc)
-	 * see ITypedElement.getImage
-	 */
-	public Image getImage() {
-		return fBase.getImage();
-	}
-	
-	/* (non-Javadoc)
-	 * see ITypedElement.getType
-	 */
-	public String getType() {
-		return fBase.getType();
-	}
-
-	/* (non-Javadoc)
-	 * see IModificationDate.getModificationDate
-	 */
-	public long getModificationDate() {
-		return fFileState.getModificationTime();
-	}
-	
-	/* (non-Javadoc)
-	 * see IStreamContentAccessor.getContents
-	 */
-	public InputStream getContents() throws CoreException {
-		return new BufferedInputStream(fFileState.getContents());
-	}
-}
-
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/IContentChangeListener.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/IContentChangeListener.java
deleted file mode 100644
index 9aab4f1..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/IContentChangeListener.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare;
-
-/**
- * An <code>IContentChangeListener</code> is informed about content changes of a 
- * <code>IContentChangeNotifier</code>.
- * <p>
- * Clients may implement this interface.
- * </p>
- *
- * @see IContentChangeNotifier
- */
-public interface IContentChangeListener {
-
-	/**
-	 * Called whenever the content of the given source has changed.
-	 *
-	 * @param source the source whose contents has changed
-	 */
-	void contentChanged(IContentChangeNotifier source);
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/IContentChangeNotifier.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/IContentChangeNotifier.java
deleted file mode 100644
index fba34d2..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/IContentChangeNotifier.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare;
-
-/**
- * Interface common to all objects that provide a means for registering
- * for content change notification.
- * <p>
- * Clients may implement this interface.
- * </p>
- *
- * @see IContentChangeListener
- */
-public interface IContentChangeNotifier {
-	
-	/**
-	 * Adds a content change listener to this notifier.
-	 * Has no effect if an identical listener is already registered.
-	 *
-	 * @param listener a content changed listener
-	 */
-	void addContentChangeListener(IContentChangeListener listener);
-	
-	/**
-	 * Removes the given content changed listener from this notifier.
-	 * Has no effect if the listener is not registered.
-	 *
-	 * @param listener a content changed listener
-	 */
-	void removeContentChangeListener(IContentChangeListener listener);
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/IEditableContent.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/IEditableContent.java
deleted file mode 100644
index 44fdc1c..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/IEditableContent.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare;
-
-/**
- * Common interface for objects with editable contents.
- * Typically it is implemented by objects that also implement
- * the <code>IStreamContentAccessor</code> interface.
- * <p>
- * Clients may implement this interface.
- * <p>
- * Note that implementing <code>IEditableContent</code> does not
- * automatically mean that it is editable. An object is only editable if
- * it implements <code>IEditableContent</code> and the <code>isEditable</code> method returns <code>true</code>.
- *
- * @see IStreamContentAccessor
- */
-public interface IEditableContent {
-	
-	/**
-	 * Returns <code>true</code> if this object can be modified.
-	 * If it returns <code>false</code> the other methods of this API must not be called.
-	 * 
-	 * @return <code>true</code> if this object can be modified
-	 */
-	boolean isEditable();
-			
-	/**
-	 * Replaces the current content with the given new bytes.
-	 * 
-	 * @param newContent this new contents replaces the old contents
-	 */
-	void setContent(byte[] newContent); 
-
-	/**
-	 * This method is called on a parent to add or remove a child,
-	 * or to copy the contents of a child.
-	 * 
-	 * What to do is encoded in the two arguments as follows:
-	 * <TABLE>
-	 * <TR>
-	 * 	<TD>add:</TD>
-	 *  <TD>child == null</TD>
-	 *  <TD>other != null</TD>
-	 * </TR>
-	 * <TR>
-	 * 	<TD>remove:</TD>
-	 *  <TD>child != null</TD>
-	 *  <TD>other == null</TD>
-	 * </TR>
-	 * <TR>
-	 * 	<TD>copy:</TD>
-	 *  <TD>child != null</TD>
-	 *  <TD>other != null</TD>
-	 * </TR>
-	 * </TABLE>
-	 */
-	ITypedElement replace(ITypedElement child, ITypedElement other);
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/IModificationDate.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/IModificationDate.java
deleted file mode 100644
index 5e8def8..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/IModificationDate.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare;
-
-/**
- * Common interface for objects with a modification date. The modification date
- * can be used in the UI to give the user a general idea of how old an object is.
- * <p>
- * Clients may implement this interface.
- * </p>
- */
-public interface IModificationDate {
-	
-	/**
-	 * Returns the modification time of this object.
-	 * <p>
-	 * Note that this value should only be used to give the user a general idea of how
-	 * old the object is.
-	 *
-	 * @return the time of last modification, in milliseconds since January 1, 1970, 00:00:00 GMT
-	 */
-	long getModificationDate();
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/IPropertyChangeNotifier.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/IPropertyChangeNotifier.java
deleted file mode 100644
index 85f4f34..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/IPropertyChangeNotifier.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare;
-
-import org.eclipse.jface.util.IPropertyChangeListener;
-
-/**
- * Interface common to all objects that provide a means for registering
- * for property change notification.
- * <p>
- * Clients may implement this interface.
- * </p>
- *
- * @see org.eclipse.jface.util.IPropertyChangeListener
- */
-public interface IPropertyChangeNotifier {
-	
-	/**
-	 * Adds a listener for property changes to this notifier.
-	 * Has no effect if an identical listener is already registered.
-	 *
-	 * @param listener a property change listener
-	 */
-	void addPropertyChangeListener(IPropertyChangeListener listener);
-	
-	/**
-	 * Removes the given content change listener from this notifier.
-	 * Has no effect if the identical listener is not registered.
-	 *
-	 * @param listener a property change listener
-	 */
-	void removePropertyChangeListener(IPropertyChangeListener listener);
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/IStreamContentAccessor.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/IStreamContentAccessor.java
deleted file mode 100644
index f17b318..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/IStreamContentAccessor.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare;
-
-import java.io.InputStream;
-
-import org.eclipse.core.runtime.CoreException;
-
-/**
- * An <code>IStreamContentAccessor</code> object represents a set of bytes which can be
- * accessed by means of a stream.
- * <p>
- * Clients may implement this interface, or use the standard implementation,
- * <code>BufferedContent</code>.
- *
- * @see BufferedContent
- */
-public interface IStreamContentAccessor {
-	/**
-	 * Returns an open <code>InputStream</code> for this object which can be used to retrieve the object's content.
-	 * The client is responsible for closing the stream when finished.
-	 * Returns <code>null</code> if this object has no streamable contents.
-	 *
-	 * @return an input stream containing the contents of this object
-	 * @exception CoreException if the contents of this object could not be accessed
-	 */
-	InputStream getContents() throws CoreException;
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/ITypedElement.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/ITypedElement.java
deleted file mode 100644
index 15dd45c..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/ITypedElement.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare;
-
-import org.eclipse.swt.graphics.Image;
-
-/**
- * Interface for getting the name, image, and type for an object.
- * <p>
- * These methods are typically used to present an input object in the compare UI
- * (<code>getName</code> and <code>getImage</code>)
- * and for finding a viewer for a given input type (<code>getType</code>).
- * <p>
- * Clients may implement this interface.
- */
-public interface ITypedElement {
-
-	/**
-	 * Type for a folder input (value <code>"FOLDER"</code>).
-	 * Folders are comparison elements that have no contents, only a name and children.
-	 */
-	public static final String FOLDER_TYPE= "FOLDER"; //$NON-NLS-1$
-
-	/**
-	 * Type for an element whose actual type is text  (value <code>"txt"</code>).
-	 */
-	public static final String TEXT_TYPE= "txt"; //$NON-NLS-1$
-
-	/**
-	 * Type for an element whose actual type could not
-	 * be determined. (value <code>"???"</code>).
-	 */
-	public static final String UNKNOWN_TYPE= "???"; //$NON-NLS-1$
-
-	/**
-	 * Returns the name of this object.
-	 * The name is used when displaying this object in the UI.
-	 *
-	 * @return the name of this object
-	 */
-	String getName();
-
-	/**
-	 * Returns an image for this object.
-	 * This image is used when displaying this object in the UI.
-	 *
-	 * @return the image of this object or <code>null</code> if this type of input has no image
-	 */
-	Image getImage();
-
-	/**
-	 * Returns the type of this object. For objects with a file name
-	 * this is typically the file extension. For folders its the constant
-	 * <code>FOLDER_TYPE</code>.
-	 * The type is used for determining a suitable viewer for this object.
-	 *
-	 * @return the type of this object
-	 */
-	String getType();
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/IViewerCreator.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/IViewerCreator.java
deleted file mode 100644
index 918ed6b..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/IViewerCreator.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare;
-
-import org.eclipse.swt.widgets.Composite;
-
-import org.eclipse.jface.viewers.Viewer;
-
-/**
- * A factory object for <code>Viewer</code>.
- * <p>
- * This interface is only required when creating a <code>Viewer</code> from a plugin.xml file.
- * Since <code>Viewer</code>s have no default constructor they cannot be
- * instantiated directly with <code>Class.forName</code>.
- */
-public interface IViewerCreator {
-
-	/**
-	 * Creates a new viewer under the given SWT parent control.
-	 *
-	 * @param parent the SWT parent control under which to create the viewer's SWT control
-	 * @param config a compare configuration the newly created viewer might want to use
-	 * @return a new viewer
-	 */
-	Viewer createViewer(Composite parent, CompareConfiguration config);
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/NavigationAction.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/NavigationAction.java
deleted file mode 100644
index b0fac34..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/NavigationAction.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare;
-
-import java.util.ResourceBundle;
-import org.eclipse.jface.action.Action;
-
-import org.eclipse.compare.internal.CompareNavigator;
-import org.eclipse.compare.internal.CompareUIPlugin;
-import org.eclipse.compare.internal.Utilities;
-
-/**
- * A <code>NavigationAction</code> is used to navigate through the individual
- * differences of a <code>CompareEditorInput</code>.
- * <p>
- * Clients may instantiate this class; it is not intended to be subclassed.
- * </p>
- * @since 2.0
- */
-public class NavigationAction extends Action {
-	
-	private boolean fNext;
-	private CompareEditorInput fCompareEditorInput;
-	
-	
-	/**
-	 * Creates a <code>NavigationAction</code>.
-	 *
-	 * @param next if <code>true</code> action goes to the next difference; otherwise to the previous difference.
-	 */
-	public NavigationAction(boolean next) {
-		this(CompareUIPlugin.getResourceBundle(), next);
-	}
-
-	/**
-	 * Creates a <code>NavigationAction</code> that initializes its attributes
-	 * from the given <code>ResourceBundle</code>.
-	 *
-	 * @param bundle is used to initialize the action
-	 * @param next if <code>true</code> action goes to the next difference; otherwise to the previous difference.
-	 */
-	public NavigationAction(ResourceBundle bundle, boolean next) {
-		Utilities.initAction(this, bundle, next ? "action.Next." : "action.Previous."); //$NON-NLS-2$ //$NON-NLS-1$
-		fNext= next;
-	}
-
-	public void run() {
-		if (fCompareEditorInput != null) {
-			Object adapter= fCompareEditorInput.getAdapter(CompareNavigator.class);
-			if (adapter instanceof CompareNavigator)
-				((CompareNavigator)adapter).selectChange(fNext);
-		}
-	}
-	
-	/**
-	 * Sets the <code>CompareEditorInput</code> on which this action operates.
-	 * 
-	 * @param input the <code>CompareEditorInput</code> on which this action operates; if <code>null</code> action does nothing
-	 */
-	public void setCompareEditorInput(CompareEditorInput input) {
-		fCompareEditorInput= input;
-	}
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/ResourceNode.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/ResourceNode.java
deleted file mode 100644
index 31c367b..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/ResourceNode.java
+++ /dev/null
@@ -1,196 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare;
-
-import java.io.*;
-import java.util.ArrayList;
-
-import org.eclipse.swt.graphics.Image;
-
-import org.eclipse.jface.util.Assert;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.compare.structuremergeviewer.IStructureComparator;
-
-/**
- * A <code>ResourceNode</code> wrappers an <code>IResources</code> so that it can be used
- * as input for the differencing engine (interfaces <code>IStructureComparator</code> and <code>ITypedElement</code>)
- * and the <code>ReplaceWithEditionDialog</code> (interfaces <code>ITypedElement</code> and <code>IModificationDate</code>).
- * <p>
- * Clients may instantiate this class; it is not intended to be subclassed.
- * </p>
- *
- * @see EditionSelectionDialog
- */
-public class ResourceNode extends BufferedContent
-			implements IStructureComparator, ITypedElement, IEditableContent, IModificationDate {
-			
-	private IResource fResource;
-	private ArrayList fChildren;
-		
-	
-	/**
-	 * Creates a <code>ResourceNode</code> for the given resource.
-	 *
-	 * @param resource the resource
-	 */
-	public ResourceNode(IResource resource) {
-		fResource= resource;
-		Assert.isNotNull(resource);
-	}
-		
-	/**
-	 * Returns the corresponding resource for this object.
-	 *
-	 * @return the corresponding resource
-	 */
-	public IResource getResource() {
-		return fResource;
-	}
-	
-	/* (non Javadoc)
-	 * see IStreamContentAccessor.getContents
-	 */
-	public InputStream getContents() throws CoreException {
-		if (fResource instanceof IStorage)
-			return super.getContents();
-		return null;
-	}
-	
-	/* (non Javadoc)
-	 * see IModificationDate.getModificationDate
-	 */
-	public long getModificationDate() {
-		IPath path= fResource.getLocation();
-		File file= path.toFile();
-		return file.lastModified();
-	}
-	
-	/* (non Javadoc)
-	 * see ITypedElement.getName
-	 */
-	public String getName() {
-		if (fResource != null)
-			return fResource.getName();
-		return null;
-	}
-		
-	/* (non Javadoc)
-	 * see ITypedElement.getType
-	 */
-	public String getType() {
-		if (fResource instanceof IContainer)
-			return ITypedElement.FOLDER_TYPE;
-		if (fResource != null) {
-			String s= fResource.getFileExtension();
-			if (s != null)
-				return s;
-		}
-		return ITypedElement.UNKNOWN_TYPE;
-	}
-	
-	/* (non Javadoc)
-	 * see ITypedElement.getImage
-	 */
-	public Image getImage() {
-		return CompareUI.getImage(fResource);
-	}
-
-	/**
-	 * Returns <code>true</code> if the other object is of type <code>ITypedElement</code>
-	 * and their names are identical. The content is not considered.
-	 */
-	/* (non Javadoc)
-	 * see IStructureComparator.equals
-	 */
-	public boolean equals(Object other) {
-		if (other instanceof ITypedElement) {
-			String otherName= ((ITypedElement)other).getName();
-			return getName().equals(otherName);
-		}
-		return super.equals(other);
-	}
-	
-	/**
-	 * Returns the hash code of the name.
-	 */
-	/* (non Javadoc)
-	 * see IStructureComparator.hashCode
-	 */
-	public int hashCode() {
-		return getName().hashCode();
-	}
-	
-	/* (non Javadoc)
-	 * see IStructureComparator.getChildren
-	 */
-	public Object[] getChildren() {
-		if (fChildren == null) {
-			fChildren= new ArrayList();
-			if (fResource instanceof IContainer) {
-				try {
-					IResource members[]= ((IContainer)fResource).members();
-					for (int i= 0; i < members.length; i++) {
-						IStructureComparator child= createChild(members[i]);
-						if (child != null)
-							fChildren.add(child);
-					}
-				} catch (CoreException ex) {
-				}
-			}
-		}
-		return fChildren.toArray();
-	}
-	
-	/**
-	 * This hook method is called from <code>getChildren</code> once for every
-	 * member of a container resource. This implementation
-	 * creates a new <code>ResourceNode</code> for the given child resource.
-	 * Clients may override this method to create a different type of
-	 * <code>IStructureComparator</code> or to filter children by returning <code>null</code>.
-	 *
-	 * @param child the child resource for which a <code>IStructureComparator</code> must be returned
-	 * @return a <code>ResourceNode</code> for the given child or <code>null</code>
-	 */
-	protected IStructureComparator createChild(IResource child) {
-		return new ResourceNode(child);
-	}
-		
-	/**
-	 * Returns an open stream if the corresponding resource implements the
-	 * <code>IStorage</code> interface. Otherwise the value <code>null</code> is returned.
-	 *
-	 * @return a buffered input stream containing the contents of this storage
-	 * @exception CoreException if the contents of this storage could not be accessed
-	 */
-	protected InputStream createStream() throws CoreException {
-		if (fResource instanceof IStorage)
-			return new BufferedInputStream(((IStorage)fResource).getContents());
-		return null;
-	}
-			
-	/* (non Javadoc)
-	 * see IEditableContent.isEditable
-	 */
-	public boolean isEditable() {
-		return true;
-	}
-	
-	/* (non Javadoc)
-	 * see IEditableContent.replace
-	 */
-	public ITypedElement replace(ITypedElement child, ITypedElement other) {
-		return child;
-	}
-}
-
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/Splitter.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/Splitter.java
deleted file mode 100644
index 7e63053..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/Splitter.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare;
-
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.custom.SashForm;
-
-/**
- * The Splitter adds support for nesting to a SashForm.
- * <P>
- * If Splitters are nested directly:
- * <UL>
- * <LI>changing the visibility of a child may propagate upward to the parent Splitter if the child
- * is the last child to become invisible or the first to become visible.</LI>
- * <LI>maximizing a child makes it as large as the topmost enclosing Splitter</LI>
- * </UL>
- * 
- * @since 2.1
- */
-public class Splitter extends SashForm {
-	
-	private static final String VISIBILITY= "org.eclipse.compare.internal.visibility"; //$NON-NLS-1$
-	
-	/**
-	 * Constructs a new instance of this class given its parent
-	 * and a style value describing its behavior and appearance.
-	 * <p>
-	 * The style value is either one of the style constants defined in
-	 * class <code>SWT</code> which is applicable to instances of this
-	 * class, or must be built by <em>bitwise OR</em>'ing together
-	 * (that is, using the <code>int</code> "|" operator) two or more
-	 * of those <code>SWT</code> style constants. The class description
-	 * lists the style constants that are applicable to the class.
-	 * Style bits are also inherited from superclasses.
-	 * </p>
-	 *
-	 * @param parent a widget which will be the parent of the new instance (cannot be null)
-	 * @param style the style of widget to construct
-	 *
-	 * @exception IllegalArgumentException <ul>
-	 *    <li>ERROR_NULL_ARGUMENT - if the parent is null</li>
-	 * </ul>
-	 * @exception SWTException <ul>
-	 *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the parent</li>
-	 * </ul>
-	 */
-	public Splitter(Composite parent, int style) {
-		super(parent, style);
-	}
-		
-	/**
-	 * Sets the visibility of the given child in this Splitter. If this change
-	 * affects the visibility state of the whole Splitter, and if the Splitter
-	 * is directly nested in one or more Splitters, this method recursively
-	 * propagates the new state upward.
-	 *
-	 * @param child the child control for which the visibility is changed
-	 * @param visible the new visibility state
-	 */
-	public void setVisible(Control child, boolean visible) {
-		
-		boolean wasEmpty= isEmpty();
-				
-		child.setVisible(visible);
-		child.setData(VISIBILITY, new Boolean(visible));
-		
-		if (wasEmpty != isEmpty()) {
-			// recursively walk up
-			Composite parent= getParent();
-			if (parent instanceof Splitter) {
-				Splitter sp= (Splitter) parent;
-				sp.setVisible(this, visible);
-				sp.layout();
-			}
-		} else {
-			layout();
-		}
-	}
-
-	/* (non-Javadoc)
-	 * Recursively calls setMaximizedControl for all direct parents that are
-	 * itself Splitters.
-	 */
-	public void setMaximizedControl(Control control) {
-		if (control == null || control == getMaximizedControl())
-			super.setMaximizedControl(null);
-		else
-			super.setMaximizedControl(control);
-
-		// recursively walk upward
-		Composite parent= getParent();
-		if (parent instanceof Splitter)
-			((Splitter) parent).setMaximizedControl(this);
-		else
-			layout(true);
-	}
-
-	/* (non-Javadoc)
-	 * Returns true if Splitter has no children or if all children are invisible.
-	 */
-	private boolean isEmpty() {
-		Control[] controls= getChildren();
-		for (int i= 0; i < controls.length; i++)
-			if (isVisible(controls[i]))
-				return false;
-		return true;
-	}
-	
-	/* (non-Javadoc)
-	 * Returns the visibility state of the given child control. If the
-	 * control is a Sash, this method always returns false.
-	 */
-	private boolean isVisible(Control child) {
-		if (child instanceof Sash)
-			return false;
-		Object data= child.getData(VISIBILITY);
-		if (data instanceof Boolean)
-			return ((Boolean)data).booleanValue();
-		return true;
-	}
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/ZipFileStructureCreator.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/ZipFileStructureCreator.java
deleted file mode 100644
index f497f18..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/ZipFileStructureCreator.java
+++ /dev/null
@@ -1,314 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare;
-
-import java.io.*;
-import java.util.Iterator;
-import java.util.HashMap;
-import java.util.zip.*;
-
-import org.eclipse.swt.graphics.Image;
-
-import org.eclipse.jface.util.Assert;
-
-import org.eclipse.core.runtime.CoreException;
-
-import org.eclipse.compare.structuremergeviewer.*;
-import org.eclipse.compare.internal.Utilities;
-
-
-/**
- * This implementation of the <code>IStructureCreator</code> interface
- * makes the contents of a zip archive available as a
- * hierarchical structure of <code>IStructureComparator</code>s.
- * <p>
- * It is used when comparing the internal structure of a zip archive.
- *
- * @since 2.0
- */
-public class ZipFileStructureCreator implements IStructureCreator {
-
-	/**
-	 * Common base class for ZipFolder and ZipFile
-	 */
-	static abstract class ZipResource implements IStructureComparator, ITypedElement {
-
-		private String fName;
-
-		ZipResource(String name) {
-			fName= name;
-		}
-
-		public String getName() {
-			return fName;
-		}
-
-		public Image getImage() {
-			return CompareUI.getImage(getType());
-		}
-
-		/**
-		 * Returns true if other is ITypedElement and names are equal.
-		 * @see IComparator#equals
-		 */
-		public boolean equals(Object other) {
-			if (other instanceof ITypedElement)
-				return fName.equals(((ITypedElement) other).getName());
-			return super.equals(other);
-		}
-
-		public int hashCode() {
-			return fName.hashCode();
-		}
-	}
-
-	static class ZipFolder extends ZipResource {
-
-		private HashMap fChildren= new HashMap(10);
-
-		ZipFolder(String name) {
-			super(name);
-		}
-
-		public String getType() {
-			return ITypedElement.FOLDER_TYPE;
-		}
-
-		public Object[] getChildren() {
-			Object[] children= new Object[fChildren.size()];
-			Iterator iter= fChildren.values().iterator();
-			for (int i= 0; iter.hasNext(); i++)
-				children[i]= iter.next();
-			return children;
-		}
-
-		ZipFile createContainer(String path) {
-			String entry= path;
-			int pos= path.indexOf('/');
-			if (pos < 0)
-				pos= path.indexOf('\\');
-			if (pos >= 0) {
-				entry= path.substring(0, pos);
-				path= path.substring(pos + 1);
-			} else if (entry.length() > 0) {
-				ZipFile ze= new ZipFile(entry);
-				fChildren.put(entry, ze);
-				return ze;
-			} else
-				return null;
-
-			ZipFolder folder= null;
-			if (fChildren != null) {
-				Object o= fChildren.get(entry);
-				if (o instanceof ZipFolder)
-					folder= (ZipFolder) o;
-			}
-
-			if (folder == null) {
-				folder= new ZipFolder(entry);
-				fChildren.put(entry, folder);
-			}
-
-			return folder.createContainer(path);
-		}
-	}
-
-	static class ZipFile extends ZipResource implements IStreamContentAccessor {
-
-		private byte[] fContents;
-
-		ZipFile(String name) {
-			super(name);
-		}
-
-		public String getType() {
-			String s= this.getName();
-			int pos= s.lastIndexOf('.');
-			if (pos >= 0)
-				return s.substring(pos + 1);
-			return ITypedElement.UNKNOWN_TYPE;
-		}
-
-		public Object[] getChildren() {
-			return null;
-		}
-		
-		public InputStream getContents() {
-			if (fContents == null)
-				fContents= new byte[0];
-			return new ByteArrayInputStream(fContents);
-		}
-
-		byte[] getBytes() {
-			return fContents;
-		}
-
-		void setBytes(byte[] buffer) {
-			fContents= buffer;
-		}
-
-		void appendBytes(byte[] buffer, int length) {
-	    	if (length > 0) {
-				int oldLen= 0;
-				if (fContents != null)
-					oldLen= fContents.length;
-				byte[] newBuf= new byte[oldLen + length];
-				if (oldLen > 0)
-		    		System.arraycopy(fContents, 0, newBuf, 0, oldLen);
-	    		System.arraycopy(buffer, 0, newBuf, oldLen, length);
-	    		fContents= newBuf;
-	    	}
-		}
-	}
-	
-	private String fTitle;
-
-	/**
-	 * Create a new ZipFileStructureCreator.
-	 */
-	public ZipFileStructureCreator() {
-		this(Utilities.getString("ZipStructureCreator.name")); //$NON-NLS-1$
-	}
-	
-	/**
-	 * Create a new ZipFileStructureCreator with the given title.
-	 * The title is returned by the method <code>getName()</code>.
-	 * @param title the title of this strcuture creator
-	 */
-	public ZipFileStructureCreator(String title) {
-		fTitle= title;
-	}
-
-	public String getName() {
-		return fTitle;
-	}
-
-	public IStructureComparator getStructure(Object input) {
-
-		InputStream is= null;
-		
-		if (input instanceof IStreamContentAccessor) {
-			IStreamContentAccessor sca= (IStreamContentAccessor) input;
-			try {
-				is= sca.getContents();
-			} catch (CoreException ex) {
-			}
-		}
-
-		if (is == null)
-			return null;
-
-		ZipInputStream zip= new ZipInputStream(is);
-		ZipFolder root= new ZipFolder(""); //$NON-NLS-1$
-		try {
-			for (;;) {
-				ZipEntry entry= zip.getNextEntry();
-				if (entry == null)
-					break;
-
-				ZipFile ze= root.createContainer(entry.getName());
-				if (ze != null) {
-					int length= (int) entry.getSize();
-					if (length >= 0) {
-						byte[] buffer= new byte[length];
-						int offset= 0;
-	
-						do {
-							int n= zip.read(buffer, offset, length);
-							offset += n;
-							length -= n;
-						} while (length > 0);
-	
-						ze.setBytes(buffer);
-					} else {
-						byte[] buffer= new byte[1024];		
-						int n;
-						do {
-							n= zip.read(buffer, 0, 1024);
-							ze.appendBytes(buffer, n);
-						} while (n >= 0);
-					}
-				}
-				zip.closeEntry();
-			}
-		} catch (IOException ex) {
-			return null;
-		} finally {
-			try {
-				zip.close();
-			} catch (IOException ex) {
-			}
-		}
-
-		if (root.fChildren.size() == 1) {
-			Iterator iter= root.fChildren.values().iterator();
-			return (IStructureComparator) iter.next();
-		}
-		return root;
-	}
-
-	public String getContents(Object o, boolean ignoreWhitespace) {
-		if (o instanceof ZipFile) {
-			byte[] bytes= ((ZipFile)o).getBytes();
-			if (bytes != null)
-				return new String(bytes);
-			return ""; //$NON-NLS-1$
-		}
-		return null;
-	}
-
-	/**
-	 * Returns <code>false</code> since we cannot update a zip archive.
-	 * @return <code>false</code>
-	 */
-	public boolean canSave() {
-		return false;
-	}
-
-	/**
-	 * Called whenever a copy operation has been performed on a tree node.
-	 * This implementation throws an <code>AssertionFailedException</code>
-	 * since we cannot update a zip archive.
-	 *
-	 * @param structure the node for which to save the new content
-	 * @param input the object from which the structure tree was created in <code>getStructure</code>
-	 */
-	public void save(IStructureComparator structure, Object input) {
-		Assert.isTrue(false); // Cannot update zip archive
-	}
-	
-	public IStructureComparator locate(Object path, Object source) {
-		return null;
-	}
-		
-	/**
-	 * Returns <code>false</code> since this <code>IStructureCreator</code>
-	 * cannot rewrite the diff tree in order to fold certain combinations of
-	 * additons and deletions.
-	 * <p>
-	 * Note: this method is for internal use only. Clients should not call this method. 
-	 * @return <code>false</code>
-	 */
-	public boolean canRewriteTree() {
-		return false;
-	}
-	
-	/**
-	 * Empty implementation since this <code>IStructureCreator</code>
-	 * cannot rewrite the diff tree in order to fold certain combinations of
-	 * additons and deletions.
-	 * <p>
-	 * Note: this method is for internal use only. Clients should not call this method. 
-	 */
-	public void rewriteTree(Differencer diff, IDiffContainer root) {
-	}
-}
-
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/ContentMergeViewer.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/ContentMergeViewer.java
deleted file mode 100644
index e6e83c4..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/ContentMergeViewer.java
+++ /dev/null
@@ -1,978 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.compare.contentmergeviewer;
-
-import java.util.ResourceBundle;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.ui.IKeyBindingService;
-import org.eclipse.ui.IWorkbenchPartSite;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.CoreException;
-
-import org.eclipse.jface.util.*;
-import org.eclipse.jface.action.*;
-import org.eclipse.jface.dialogs.*;
-import org.eclipse.jface.viewers.ContentViewer;
-import org.eclipse.jface.viewers.IContentProvider;
-import org.eclipse.jface.viewers.ISelection;
-
-import org.eclipse.compare.*;
-import org.eclipse.compare.structuremergeviewer.*;
-import org.eclipse.compare.internal.*;
-
-/**
- * An abstract compare and merge viewer with two side-by-side content areas
- * and an optional content area for the ancestor. The implementation makes no
- * assumptions about the content type.
- * <p>
- * <code>ContentMergeViewer</code>
- * <ul>
- * <li>implements the overall layout and defines hooks so that subclasses
- *	can easily provide an implementation for a specific content type,
- * <li>implements the UI for making the areas resizable,
- * <li>has an action for controlling whether the ancestor area is visible or not,
- * <li>has actions for copying one side of the input to the other side,
- * <li>tracks the dirty state of the left and right sides and send out notification
- *	on state changes.
- * </ul>
- * A <code>ContentMergeViewer</code> accesses its
- * model by means of a content provider which must implement the
- * <code>IMergeViewerContentProvider</code> interface.
- * </p>
- * <p>
- * Clients may wish to use the standard concrete subclass <code>TextMergeViewer</code>,
- * or define their own subclass.
- * 
- * @see IMergeViewerContentProvider
- * @see TextMergeViewer
- */
-public abstract class ContentMergeViewer extends ContentViewer
-					implements IPropertyChangeNotifier, ISavable {
-	
-	class SaveAction extends MergeViewerAction {
-				
-		SaveAction(boolean left) {
-			super(true, false, false);
-			Utilities.initAction(this, getResourceBundle(), "action.save."); //$NON-NLS-1$
-		}
-			
-		public void run() {
-			saveContent(getInput());
-		}
-	};
-	
-	/**
-	 * Property names.
-	 */
-	private static final String ANCESTOR_ENABLED= ComparePreferencePage.INITIALLY_SHOW_ANCESTOR_PANE;	
-	
-	/* package */ static final int HORIZONTAL= 1;
-	/* package */ static final int VERTICAL= 2;
-	
-	static final double HSPLIT= 0.5;
-	static final double VSPLIT= 0.3;
-	
-	private class ContentMergeViewerLayout extends Layout {
-		
-		public Point computeSize(Composite c, int w, int h, boolean force) {
-			return new Point(100, 100);
-		}
-		
-		public void layout(Composite composite, boolean force) {
-			
-			// determine some derived sizes
-			int headerHeight= fLeftLabel.computeSize(SWT.DEFAULT, SWT.DEFAULT, true).y;
-			Rectangle r= composite.getClientArea();
-			
-			int centerWidth= getCenterWidth();	
-			int width1= (int)((r.width-centerWidth)*fHSplit);
-			int width2= r.width-width1-centerWidth;
-			
-			int height1= 0;
-			int height2= 0;
-			if (fAncestorEnabled && fShowAncestor) {
-				height1= (int)((r.height-(2*headerHeight))*fVSplit);
-				height2= r.height-(2*headerHeight)-height1;
-			} else {
-				height1= 0;
-				height2= r.height-headerHeight;
-			}		
-							
-			int y= 0;
-			
-			if (fAncestorEnabled && fShowAncestor) {
-				fAncestorLabel.setBounds(0, y, r.width, headerHeight);
-				fAncestorLabel.setVisible(true);
-				y+= headerHeight;
-				handleResizeAncestor(0, y, r.width, height1);
-				y+= height1;
-			} else {
-				fAncestorLabel.setVisible(false);
-				handleResizeAncestor(0, 0, 0, 0);
-			}
-			
-			fLeftLabel.getSize();	// without this resizing would not always work
-			
-			if (centerWidth > 3) {
-				fLeftLabel.setBounds(0, y, width1+1, headerHeight);
-				fDirectionLabel.setVisible(true);
-				fDirectionLabel.setBounds(width1+1, y, centerWidth-1, headerHeight);
-				fRightLabel.setBounds(width1+centerWidth, y, width2, headerHeight);
-			} else {
-				fLeftLabel.setBounds(0, y, width1, headerHeight);
-				fDirectionLabel.setVisible(false);
-				fRightLabel.setBounds(width1, y, r.width-width1, headerHeight);
-			}
-			
-			y+= headerHeight;
-			
-			if (fCenter != null && !fCenter.isDisposed())
-				fCenter.setBounds(width1, y, centerWidth, height2);
-					
-			handleResizeLeftRight(0, y, width1, centerWidth, width2, height2);
-		}
-	}
-
-	class Resizer extends MouseAdapter implements MouseMoveListener {
-				
-		Control fControl;
-		int fX, fY;
-		int fWidth1, fWidth2;
-		int fHeight1, fHeight2;
-		int fDirection;
-		boolean fLiveResize;
-		boolean fIsDown;
-		
-		public Resizer(Control c, int dir) {
-			fDirection= dir;
-			fControl= c;
-			fLiveResize= !(fControl instanceof Sash);
-			fControl.addMouseListener(this);
-			fControl.addMouseMoveListener(this);
-			fControl.addDisposeListener(
-				new DisposeListener() {
-					public void widgetDisposed(DisposeEvent e) {
-						fControl= null;
-					}
-				}
-			);
-		}
-		
-		public void mouseDoubleClick(MouseEvent e) {
-			if ((fDirection & HORIZONTAL) != 0)
-				fHSplit= HSPLIT;
-			if ((fDirection & VERTICAL) != 0)
-				fVSplit= VSPLIT;
-			fComposite.layout(true);
-		}
-		
-		public void mouseDown(MouseEvent e) {
-			Composite parent= fControl.getParent();
-			
-			Point s= parent.getSize();
-			Point as= fAncestorLabel.getSize();
-			Point ys= fLeftLabel.getSize();
-			Point ms= fRightLabel.getSize();
-			
-			fWidth1= ys.x;
-			fWidth2= ms.x;
-			fHeight1= fLeftLabel.getLocation().y-as.y;
-			fHeight2= s.y-(fLeftLabel.getLocation().y+ys.y);
-			
-			fX= e.x;
-			fY= e.y;
-			fIsDown= true;
-		}
-		
-		public void mouseUp(MouseEvent e) {
-			fIsDown= false;
-			if (!fLiveResize)
-				resize(e);
-		}
-		
-		public void mouseMove(MouseEvent e) {
-			if (fIsDown && fLiveResize)
-				resize(e);
-		}
-		
-		private void resize(MouseEvent e) {
-			int dx= e.x-fX;
-			int dy= e.y-fY;
-		
-			int centerWidth= fCenter.getSize().x;
-
-			if (fWidth1 + dx > centerWidth && fWidth2 - dx > centerWidth) {
-				fWidth1+= dx;
-				fWidth2-= dx;
-				if ((fDirection & HORIZONTAL) != 0)
-					fHSplit= (double)fWidth1/(double)(fWidth1+fWidth2);
-			}
-			if (fHeight1 + dy > centerWidth && fHeight2 - dy > centerWidth) {
-				fHeight1+= dy;
-				fHeight2-= dy;
-				if ((fDirection & VERTICAL) != 0)
-					fVSplit= (double)fHeight1/(double)(fHeight1+fHeight2);
-			}
-
-			fComposite.layout(true);
-			fControl.getDisplay().update();
-		}
-	};
-
-	/** Style bits for top level composite */
-	private int fStyles;
-	private ResourceBundle fBundle;
-	private CompareConfiguration fCompareConfiguration;
-	private IPropertyChangeListener fPropertyChangeListener;
-	private ICompareInputChangeListener fCompareInputChangeListener;
-	private ListenerList fListenerList;
-	boolean fConfirmSave= true;
-	
-	private double fHSplit= HSPLIT;		// width ratio of left and right panes
-	private double fVSplit= VSPLIT;		// height ratio of ancestor and bottom panes
-	
-	private boolean fAncestorEnabled= true;	// show ancestor in case of conflicts
-	/* package */ boolean fShowAncestor= false;	// if current input has conflicts
-	private boolean fIsThreeWay= false;
-	private ActionContributionItem fAncestorItem;
-	
-	private Action fCopyLeftToRightAction;	// copy from left to right
-	private Action fCopyRightToLeftAction;	// copy from right to left
-
-	MergeViewerAction fLeftSaveAction;
-	MergeViewerAction fRightSaveAction;
-	
-	private IKeyBindingService fKeyBindingService;
-
-	// SWT widgets
-	/* package */ Composite fComposite;
-	private CLabel fAncestorLabel;
-	private CLabel fLeftLabel;
-	private CLabel fRightLabel;
-	/* package */ CLabel fDirectionLabel;
-	/* package */ Control fCenter;
-		
-	//---- SWT resources to be disposed
-	private Image fRightArrow;
-	private Image fLeftArrow;
-	private Image fBothArrow;
-	//---- end
-	
-	/**
-	 * Creates a new content merge viewer and initializes with a resource bundle and a
-	 * configuration.
-	 *
-	 * @param bundle the resource bundle
-	 * @param cc the configuration object
-	 */
-	protected ContentMergeViewer(int style, ResourceBundle bundle, CompareConfiguration cc) {
-		fStyles= style;
-		fBundle= bundle;
-		
-		fAncestorEnabled= Utilities.getBoolean(cc, ANCESTOR_ENABLED, fAncestorEnabled);
-		fConfirmSave= Utilities.getBoolean(cc, CompareEditor.CONFIRM_SAVE_PROPERTY, fConfirmSave);
-
-		setContentProvider(new MergeViewerContentProvider(cc));
-		
-		fCompareInputChangeListener= new ICompareInputChangeListener() {
-			public void compareInputChanged(ICompareInput input) {
-				ContentMergeViewer.this.internalRefresh(input);
-			}
-		};
-		
-		fCompareConfiguration= cc;
-		if (fCompareConfiguration != null) {
-			fPropertyChangeListener= new IPropertyChangeListener() {
-				public void propertyChange(PropertyChangeEvent event) {
-					ContentMergeViewer.this.propertyChange(event);
-				}
-			};
-			fCompareConfiguration.addPropertyChangeListener(fPropertyChangeListener);
-		}
-			
-		fLeftSaveAction= new SaveAction(true);
-		fLeftSaveAction.setEnabled(false);
-		fRightSaveAction= new SaveAction(false);
-		fRightSaveAction.setEnabled(false);
-	}
-	
-	//---- hooks ---------------------
-	
-	/**
-	 * Returns the viewer's name.
-	 *
-	 * @return the viewer's name
-	 */
-	public String getTitle() {
-		return Utilities.getString(getResourceBundle(), "title"); //$NON-NLS-1$
-	}
-	
-	/**
-	 * Creates the SWT controls for the ancestor, left, and right
-	 * content areas of this compare viewer.
-	 * Implementations typically hold onto the controls
-	 * so that they can be initialized with the input objects in method
-	 * <code>updateContent</code>.
-	 *
-	 * @param composite the container for the three areas
-	 */
-	abstract protected void createControls(Composite composite);
-
-	/**
-	 * Lays out the ancestor area of the compare viewer.
-	 * It is called whenever the viewer is resized or when the sashes between
-	 * the areas are moved to adjust the size of the areas.
-	 *
-	 * @param x the horizontal position of the ancestor area within its container
-	 * @param y the vertical position of the ancestor area within its container
-	 * @param width the width of the ancestor area
-	 * @param height the height of the ancestor area
-	 */
-	abstract protected void handleResizeAncestor(int x, int y, int width, int height);
-	
-	/**
-	 * Lays out the left and right areas of the compare viewer.
-	 * It is called whenever the viewer is resized or when the sashes between
-	 * the areas are moved to adjust the size of the areas.
-	 *
-	 * @param x the horizontal position of the left area within its container
-	 * @param y the vertical position of the left and right area within its container
-	 * @param leftWidth the width of the left area
-	 * @param centerWidth the width of the gap between the left and right areas
-	 * @param rightWidth the width of the right area
-	 * @param height the height of the left and right areas
-	 */
-	abstract protected void handleResizeLeftRight(int x, int y, int leftWidth, int centerWidth,
-			int rightWidth, int height);
-
-	/**
-	 * Contributes items to the given <code>ToolBarManager</code>.
-	 * It is called when this viewer is installed in its container and if the container
-	 * has a <code>ToolBarManager</code>.
-	 * The <code>ContentMergeViewer</code> implementation of this method does nothing.
-	 * Subclasses may reimplement.
-	 *
-	 * @param toolBarManager the toolbar manager to contribute to
-	 */
-	protected void createToolItems(ToolBarManager toolBarManager) {
-	}
-
-	/**
-	 * Initializes the controls of the three content areas with the given input objects.
-	 *
-	 * @param ancestor the input for the ancestor area
-	 * @param left the input for the left area
-	 * @param right the input for the right area
-	 */
-	abstract protected void updateContent(Object ancestor, Object left, Object right);
-		
-	/**
-	 * Copies the content of one side to the other side.
-	 * Called from the (internal) actions for copying the sides of the viewer's input object.
-	 * 
-	 * @param leftToRight if <code>true</code>, the left side is copied to the right side;
-	 * if <code>false</code>, the right side is copied to the left side
-	 */
-	abstract protected void copy(boolean leftToRight);
-
-	/**
-	 * Returns the byte contents of the left or right side. If the viewer
-	 * has no editable content <code>null</code> can be returned.
-	 *
-	 * @param left if <code>true</code>, the byte contents of the left area is returned;
-	 * 	if <code>false</code>, the byte contents of the right area
-	 * @return the content as an array of bytes, or <code>null</code>
-	 */
-	abstract protected byte[] getContents(boolean left);
-
-	//----------------------------
-	
-	/**
-	 * Returns the resource bundle of this viewer.
-	 *
-	 * @return the resource bundle
-	 */
-	protected ResourceBundle getResourceBundle() {
-		return fBundle;
-	}
-	
-	/**
-	 * Returns the compare configuration of this viewer,
-	 * or <code>null</code> if this viewer does not yet have a configuration.
-	 *
-	 * @return the compare configuration, or <code>null</code> if none
-	 */
-	protected CompareConfiguration getCompareConfiguration() {
-		return fCompareConfiguration;
-	}
-	
-	/**
-	 * The <code>ContentMergeViewer</code> implementation of this 
-	 * <code>ContentViewer</code> method
-	 * checks to ensure that the content provider is an <code>IMergeViewerContentProvider</code>.
-	 */
-	public void setContentProvider(IContentProvider contentProvider) {
-		Assert.isTrue(contentProvider instanceof IMergeViewerContentProvider);
-		super.setContentProvider(contentProvider);
-	}
-
-	/* package */ IMergeViewerContentProvider getMergeContentProvider() {
-		return (IMergeViewerContentProvider) getContentProvider();
-	}
-
-	/**
-	 * The <code>ContentMergeViewer</code> implementation of this 
-	 * <code>Viewer</code> method returns the empty selection. Subclasses may override.
-	 */
-	public ISelection getSelection() {
-		return new ISelection() {
-			public boolean isEmpty() {
-				return true;
-			}
-		};
-	}
-	
-	/**
-	 * The <code>ContentMergeViewer</code> implementation of this 
-	 * <code>Viewer</code> method does nothing. Subclasses may reimplement.
-	 */
-	public void setSelection(ISelection s, boolean reveal) {
-	}
-
-	/* package */ void propertyChange(PropertyChangeEvent event) {
-		
-		String key= event.getProperty();
-
-		if (key.equals(ANCESTOR_ENABLED)) {
-			fAncestorEnabled= Utilities.getBoolean(getCompareConfiguration(), ANCESTOR_ENABLED, fAncestorEnabled);
-			fComposite.layout(true);
-			return;
-		}
-	}
-	
-	void setAncestorVisibility(boolean visible, boolean enabled) {
-		if (fAncestorItem != null) {
-			Action action= (Action) fAncestorItem.getAction();
-			if (action != null) {
-				action.setChecked(visible);
-				action.setEnabled(enabled);
-			}
-		}
-		if (fCompareConfiguration != null)
-			fCompareConfiguration.setProperty(ANCESTOR_ENABLED, new Boolean(visible));
-	}
-
-	//---- input
-			 
-	/* package */ boolean isThreeWay() {
-		return fIsThreeWay;
-	}
-	
-	/**
-	 * Internal hook method called when the input to this viewer is
-	 * initially set or subsequently changed.
-	 * <p>
-	 * The <code>ContentMergeViewer</code> implementation of this <code>Viewer</code>
-	 * method tries to save the old input by calling <code>doSave(...)</code> and
-	 * then calls <code>internalRefresh(...)</code>.
-	 *
-	 * @param input the new input of this viewer, or <code>null</code> if there is no new input
-	 * @param oldInput the old input element, or <code>null</code> if there was previously no input
-	 */
-	protected final void inputChanged(Object input, Object oldInput) {
-		
-		if (input != oldInput)
-			if (oldInput instanceof ICompareInput)
-				((ICompareInput)oldInput).removeCompareInputChangeListener(fCompareInputChangeListener);
-		
-		boolean success= doSave(input, oldInput);
-		
-		if (input != oldInput)
-			if (input instanceof ICompareInput)
-				((ICompareInput)input).addCompareInputChangeListener(fCompareInputChangeListener);
-		
-		if (success) {
-			setLeftDirty(false);
-			setRightDirty(false);
-		}
-
-		if (input != oldInput)
-			internalRefresh(input);
-	}
-	
-	/**
-	 * This method is called from the <code>Viewer</code> method <code>inputChanged</code>
-	 * to save any unsaved changes of the old input.
-	 * <p>
-	 * The <code>ContentMergeViewer</code> implementation of this
-	 * method calls <code>saveContent(...)</code>. If confirmation has been turned on
-	 * with <code>setConfirmSave(true)</code>, a confirmation alert is posted before saving.
-	 * </p>
-	 * Clients can override this method and are free to decide whether
-	 * they want to call the inherited method.
-	 * @param newInput the new input of this viewer, or <code>null</code> if there is no new input
-	 * @param oldInput the old input element, or <code>null</code> if there was previously no input
-	 * @return <code>true</code> if saving was successful, or if the user didn't want to save (by pressing 'NO' in the confirmation dialog).
-	 * @since 2.0
-	 */
-	protected boolean doSave(Object newInput, Object oldInput) {
-		
-		// before setting the new input we have to save the old
-		if (fLeftSaveAction.isEnabled() || fRightSaveAction.isEnabled()) {
-			
-			// post alert
-			if (fConfirmSave) {
-				Shell shell= fComposite.getShell();
-				
-				MessageDialog dialog= new MessageDialog(shell,
-					Utilities.getString(getResourceBundle(), "saveDialog.title"), //$NON-NLS-1$
-					null, 	// accept the default window icon
-					Utilities.getString(getResourceBundle(), "saveDialog.message"), //$NON-NLS-1$
-					MessageDialog.QUESTION,
-					new String[] {
-						IDialogConstants.YES_LABEL,
-						IDialogConstants.NO_LABEL,
-					},
-					0);		// default button index
-									
-				switch (dialog.open()) {	// open returns index of pressed button
-				case 0:
-					saveContent(oldInput);
-					break;
-				case 1:
-					setLeftDirty(false);
-					setRightDirty(false);
-					break;
-				case 2:
-					throw new ViewerSwitchingCancelled();
-				}
-			} else
-				saveContent(oldInput);
-			return true;
-		}
-		return false;
-	}
-		
-	/**
-	 * Controls whether <code>doSave(Object, Object)</code> asks for confirmation before saving
-	 * the old input with <code>saveContent(Object)</code>.
-	 * @param enable a value of <code>true</code> enables confirmation
-	 * @since 2.0
-	 */
-	public void setConfirmSave(boolean enable) {
-		fConfirmSave= enable;
-	}
-	
-	/* (non Javadoc)
-	 * see Viewer.refresh
-	 */
-	public void refresh() {
-		internalRefresh(getInput());
-	}
-	
-	private void internalRefresh(Object input) {
-		
-		IMergeViewerContentProvider content= getMergeContentProvider();
-		if (content != null) {
-			Object ancestor= content.getAncestorContent(input);
-			if (input instanceof ICompareInput)	
-				fIsThreeWay= (((ICompareInput)input).getKind() & Differencer.DIRECTION_MASK) != 0;
-			else
-				fIsThreeWay= ancestor != null;
-				
-			if (fAncestorItem != null)
-				fAncestorItem.setVisible(fIsThreeWay);
-				
-			boolean oldFlag= fShowAncestor;
-			fShowAncestor= fIsThreeWay && content.showAncestor(input);
-			
-			if (fAncestorEnabled && oldFlag != fShowAncestor)
-				fComposite.layout(true);
-			
-			ToolBarManager tbm= CompareViewerSwitchingPane.getToolBarManager(fComposite.getParent());
-			if (tbm != null) {
-				updateToolItems();
-				tbm.update(true);
-				tbm.getControl().getParent().layout(true);
-			}
-			
-			updateHeader();
-									
-			Object left= content.getLeftContent(input);
-			Object right= content.getRightContent(input);
-			updateContent(ancestor, left, right);
-		}
-	}
-	
-	//---- layout & SWT control creation
-		
-	/**
-	 * Builds the SWT controls for the three areas of a compare/merge viewer.
-	 * <p>
-	 * Calls the hooks <code>createControls</code> and <code>createToolItems</code>
-	 * to let subclasses build the specific content areas and to add items to
-	 * an enclosing toolbar.
-	 * <p>
-	 * This method must only be called in the constructor of subclasses.
-	 *
-	 * @param parent the parent control
-	 * @return the new control
-	 */
-	protected final Control buildControl(Composite parent) {
-									
-		fComposite= new Composite(parent, fStyles) {
-			public boolean setFocus() {
-				return internalSetFocus();
-			}
-		};
-		fComposite.setData(CompareUI.COMPARE_VIEWER_TITLE, getTitle());
-		
-		hookControl(fComposite);	// hook help & dispose listener
-		
-		fComposite.setLayout(new ContentMergeViewerLayout());
-		
-		int style= SWT.SHADOW_OUT;
-		fAncestorLabel= new CLabel(fComposite, style);
-		
-		fLeftLabel= new CLabel(fComposite, style);
-		new Resizer(fLeftLabel, VERTICAL);
-		
-		fDirectionLabel= new CLabel(fComposite, style);
-		fDirectionLabel.setAlignment(SWT.CENTER);
-		new Resizer(fDirectionLabel, HORIZONTAL | VERTICAL);
-		
-		fRightLabel= new CLabel(fComposite, style);
-		new Resizer(fRightLabel, VERTICAL);
-		
-		if (fCenter == null || fCenter.isDisposed())
-			fCenter= createCenter(fComposite);
-				
-		createControls(fComposite);
-		
-		IWorkbenchPartSite ps= Utilities.findSite(fComposite);
-		fKeyBindingService= ps != null ? ps.getKeyBindingService() : null;
-						
-		ToolBarManager tbm= CompareViewerSwitchingPane.getToolBarManager(parent);
-		if (tbm != null) {
-			tbm.removeAll();
-			
-			// define groups
-			tbm.add(new Separator("modes"));	//$NON-NLS-1$
-			tbm.add(new Separator("merge"));	//$NON-NLS-1$
-			tbm.add(new Separator("navigation"));	//$NON-NLS-1$
-			
-			CompareConfiguration cc= getCompareConfiguration();
-		
-			if (cc.isRightEditable()) {
-				fCopyLeftToRightAction=
-					new Action() {
-						public void run() {
-							copy(true);
-						}
-					};
-				Utilities.initAction(fCopyLeftToRightAction, getResourceBundle(), "action.CopyLeftToRight."); //$NON-NLS-1$
-				tbm.appendToGroup("merge", fCopyLeftToRightAction); //$NON-NLS-1$
-				Utilities.registerAction(fKeyBindingService, fCopyLeftToRightAction, "org.eclipse.compare.copyAllLeftToRight");	//$NON-NLS-1$
-			}
-			
-			if (cc.isLeftEditable()) {
-				fCopyRightToLeftAction=
-					new Action() {
-						public void run() {
-							copy(false);
-						}
-					};
-				Utilities.initAction(fCopyRightToLeftAction, getResourceBundle(), "action.CopyRightToLeft."); //$NON-NLS-1$
-				tbm.appendToGroup("merge", fCopyRightToLeftAction); //$NON-NLS-1$
-				Utilities.registerAction(fKeyBindingService, fCopyRightToLeftAction, "org.eclipse.compare.copyAllRightToLeft");	//$NON-NLS-1$
-			}
-			
-			Action a= new ChangePropertyAction(fBundle, fCompareConfiguration, "action.EnableAncestor.", ANCESTOR_ENABLED); //$NON-NLS-1$
-			a.setChecked(fAncestorEnabled);
-			fAncestorItem= new ActionContributionItem(a);
-			fAncestorItem.setVisible(false);
-			tbm.appendToGroup("modes", fAncestorItem); //$NON-NLS-1$
-			
-			createToolItems(tbm);
-			updateToolItems();
-			
-			tbm.update(true);
-		}
-	
-		return fComposite;
-	}
-	
-	/* package */ boolean internalSetFocus() {
-		return false;
-	}
-	
-	/* package */ int getCenterWidth() {
-		return 3;
-	}
-	
-	/* package */ boolean getAncestorEnabled() {
-		return fAncestorEnabled;
-	}
-	
-	/* package */ Control createCenter(Composite parent) {
-		Sash sash= new Sash(parent, SWT.VERTICAL);
-		new Resizer(sash, HORIZONTAL);
-		return sash;
-	}
-	
-	/* package */ Control getCenter() {
-		return fCenter;
-	}
-		
-	/* 
-	 * @see Viewer.getControl()
-	 */
-	public Control getControl() {
-		return fComposite;
-	}
-	
-	/**
-	 * Called on the viewer disposal.
-	 * Unregisters from the compare configuration.
-	 * Clients may extend if they have to do additional cleanup.
-	 */
-	protected void handleDispose(DisposeEvent event) {
-		
-		if (fKeyBindingService != null) {
-			if (fCopyLeftToRightAction != null)
-				fKeyBindingService.unregisterAction(fCopyLeftToRightAction);
-			if (fCopyRightToLeftAction != null)
-				fKeyBindingService.unregisterAction(fCopyRightToLeftAction);
-			fKeyBindingService= null;
-		}
-		
-		Object input= getInput();	
-		if (input instanceof ICompareInput)
-			((ICompareInput)input).removeCompareInputChangeListener(fCompareInputChangeListener);
-		
-		if (fCompareConfiguration != null && fPropertyChangeListener != null) {
-			fCompareConfiguration.removePropertyChangeListener(fPropertyChangeListener);
-			fPropertyChangeListener= null;
-		}
-
-		fAncestorLabel= null;
-		fLeftLabel= null;
-		fDirectionLabel= null;
-		fRightLabel= null;
-		fCenter= null;
-				
-		if (fRightArrow != null) {
-			fRightArrow.dispose();
-			fRightArrow= null;
-		}
-		if (fLeftArrow != null) {
-			fLeftArrow.dispose();
-			fLeftArrow= null;
-		}
-		if (fBothArrow != null) {
-			fBothArrow.dispose();
-			fBothArrow= null;
-		}
-		
-		super.handleDispose(event);
-  	}
-  	
-	/**
-	 * Updates the enabled state of the toolbar items.
-	 * <p>
-	 * This method is called whenever the state of the items needs updating.
-	 * <p>
-	 * Subclasses may extend this method, although this is generally not required.
-	 */
-	protected void updateToolItems() {
-										
-		IMergeViewerContentProvider content= getMergeContentProvider();
-		
-		Object input= getInput();
-		
-		if (fCopyLeftToRightAction != null) {
-			boolean enable= content.isRightEditable(input);
-//			if (enable && input instanceof ICompareInput) {
-//				ITypedElement e= ((ICompareInput) input).getLeft();
-//				if (e == null)
-//					enable= false;
-//			}
-			fCopyLeftToRightAction.setEnabled(enable);
-		}
-		
-		if (fCopyRightToLeftAction != null) {
-			boolean enable= content.isLeftEditable(input);
-//			if (enable && input instanceof ICompareInput) {
-//				ITypedElement e= ((ICompareInput) input).getRight();
-//				if (e == null)
-//					enable= false;
-//			}
-			fCopyRightToLeftAction.setEnabled(enable);
-		}
-	}
-	
-	/**
-	 * Updates the headers of the three areas
-	 * by querying the content provider for a name and image for
-	 * the three sides of the input object.
-	 * <p>
-	 * This method is called whenever the header must be updated.
-	 * <p>
-	 * Subclasses may extend this method, although this is generally not required.
-	 */
-	protected void updateHeader() {
-						
-		IMergeViewerContentProvider content= getMergeContentProvider();
-		Object input= getInput();
-
-		if (fAncestorLabel != null) {
-			fAncestorLabel.setImage(content.getAncestorImage(input));
-			fAncestorLabel.setText(content.getAncestorLabel(input));
-		}
-		if (fLeftLabel != null) {
-			fLeftLabel.setImage(content.getLeftImage(input));
-			fLeftLabel.setText(content.getLeftLabel(input));
-		}
-		if (fRightLabel != null) {
-			fRightLabel.setImage(content.getRightImage(input));
-			fRightLabel.setText(content.getRightLabel(input));
-		}
-	}
-	
-//	private Image loadImage(String name) {
-//		ImageDescriptor id= ImageDescriptor.createFromFile(ContentMergeViewer.class, name);
-//		if (id != null)
-//			return id.createImage();
-//		return null;
-//	}
-		
-	/**
-	 * Calculates the height of the header.
-	 */
-	/* package */ int getHeaderHeight() {
-		int headerHeight= fLeftLabel.computeSize(SWT.DEFAULT, SWT.DEFAULT, true).y;
-		headerHeight= Math.max(headerHeight, fDirectionLabel.computeSize(SWT.DEFAULT, SWT.DEFAULT, true).y);		
-		return headerHeight;
-	}
-
-	//---- merge direction
-	
-	/**
-	 * Returns true if both sides are editable.
-	 */
-	/* package */ boolean canToggleMergeDirection() {
-		IMergeViewerContentProvider content= getMergeContentProvider();
-		Object input= getInput();
-		return content.isLeftEditable(input) && content.isRightEditable(input);
-	}
-	
-	//---- dirty state & saving state
-	
-	/* (non Javadoc)
-	 * see IPropertyChangeNotifier.addPropertyChangeListener
-	 */
-	public void addPropertyChangeListener(IPropertyChangeListener listener) {
-		if (fListenerList == null)
-			fListenerList= new ListenerList();
-		fListenerList.add(listener);
-	}
-	
-	/* (non Javadoc)
-	 * see IPropertyChangeNotifier.removePropertyChangeListener
-	 */
-	public void removePropertyChangeListener(IPropertyChangeListener listener) {
-		if (fListenerList != null) {
-			fListenerList.remove(listener);
-			if (fListenerList.isEmpty())
-				fListenerList= null;
-		}
-	}
-	
-	/* package */ void fireDirtyState(boolean state) {
-		Utilities.firePropertyChange(fListenerList, this, CompareEditorInput.DIRTY_STATE, null, new Boolean(state));
-	}
-	
-	/**
-	 * Sets the dirty state of the left side of this viewer.
-	 * If the new value differs from the old
-	 * all registered listener are notified with
-	 * a <code>PropertyChangeEvent</code> with the
-	 * property name <code>CompareEditorInput.DIRTY_STATE</code>.
-	 *
-	 * @param dirty the state of the left side dirty flag
-	 */
-	protected void setLeftDirty(boolean dirty) {
-		if (fLeftSaveAction.isEnabled() != dirty) {
-			fLeftSaveAction.setEnabled(dirty);
-			fireDirtyState(dirty);
-		}
-	}
-	
-	/**
-	 * Sets the dirty state of the right side of this viewer.
-	 * If the new value differs from the old
-	 * all registered listener are notified with
-	 * a <code>PropertyChangeEvent</code> with the
-	 * property name <code>CompareEditorInput.DIRTY_STATE</code>.
-	 *
-	 * @param dirty the state of the right side dirty flag
-	 */
-	protected void setRightDirty(boolean dirty) {
-		if (fRightSaveAction.isEnabled() != dirty) {
-			fRightSaveAction.setEnabled(dirty);
-			fireDirtyState(dirty);
-		}
-	}
-	
-	/**
-	 * Save the viewers's content.
-	 * Note: this method is for internal use only. Clients should not call this method. 
-	 * @since 2.0
-	 */
-	public void save(IProgressMonitor pm) throws CoreException {
-		saveContent(getInput());
-	}
-	
-	/**
-	 * Save modified content back to input elements via the content provider.
-	 */
-	/* package */ void saveContent(Object oldInput) {
-				
-		// write back modified contents
-		IMergeViewerContentProvider content= (IMergeViewerContentProvider) getContentProvider();
-		
-		boolean leftEmpty= content.getLeftContent(oldInput) == null;
-		boolean rightEmpty= content.getRightContent(oldInput) == null;
-
-		if (fCompareConfiguration.isLeftEditable() && fLeftSaveAction.isEnabled()) {
-			byte[] bytes= getContents(true);
-			if (leftEmpty && bytes != null && bytes.length == 0)
-				bytes= null;
-			setLeftDirty(false);
-			content.saveLeftContent(oldInput, bytes);
-		}
-		
-		if (fCompareConfiguration.isRightEditable() && fRightSaveAction.isEnabled()) {
-			byte[] bytes= getContents(false);
-			if (rightEmpty && bytes != null && bytes.length == 0)
-				bytes= null;
-			setRightDirty(false);
-			content.saveRightContent(oldInput, bytes);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/DelayedProgressMonitor.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/DelayedProgressMonitor.java
deleted file mode 100644
index 45d4482..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/DelayedProgressMonitor.java
+++ /dev/null
@@ -1,146 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.contentmergeviewer;
-
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.core.runtime.IProgressMonitor;
-import java.lang.reflect.InvocationTargetException;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.operation.ModalContext;
-import org.eclipse.jface.dialogs.ProgressMonitorDialog;
-
-
-class DelayedProgressMonitor implements IProgressMonitor {
-	
-	ProgressMonitorDialog fProgressDialog;
-	IProgressMonitor fRealProgressMonitor;
-	String fTaskName;
-	String fSubTaskName;
-	int fTotalWork;
-	int fWorked;
-	boolean fCancelable;
-	Shell fShell;
-	int fTime;
-	
-	
-	DelayedProgressMonitor(Shell shell) {
-		fShell= shell;
-	}
-
-	/*
-	 * @see IProgressMonitor#beginTask(String, int)
-	 */
-	public void beginTask(String name, int totalWork) {
-		fTaskName= name;
-		fTotalWork= totalWork;
-		fTime= 0;
-	}
-
-	/*
-	 * @see IProgressMonitor#done()
-	 */
-	public void done() {
-		if (fRealProgressMonitor != null)
-			fRealProgressMonitor.done();
-	}
-
-	/*
-	 * @see IProgressMonitor#internalWorked(double)
-	 */
-	public void internalWorked(double work) {
-		if (fRealProgressMonitor != null) {
-			fRealProgressMonitor.internalWorked(work);
-		}
-	}
-	
-	private void checkTimeout() {
-		if (fRealProgressMonitor == null) {
-			
-			//if (fTime++ < 100)
-			//	return;
-			
-			fProgressDialog= new ProgressMonitorDialog(fShell);
-			fProgressDialog.setCancelable(true);
-			fProgressDialog.open();
-			fRealProgressMonitor= fProgressDialog.getProgressMonitor();
-			fRealProgressMonitor.beginTask(fTaskName, fTotalWork);
-			if (fSubTaskName != null)
-				fRealProgressMonitor.subTask(fSubTaskName);
-			fRealProgressMonitor.worked(fWorked);
-		}
-	}
-
-	/*
-	 * @see IProgressMonitor#isCanceled()
-	 */
-	public boolean isCanceled() {
-		checkTimeout();
-		if (fRealProgressMonitor != null)
-			return fRealProgressMonitor.isCanceled();
-		return false;
-	}
-
-	/*
-	 * @see IProgressMonitor#setCanceled(boolean)
-	 */
-	public void setCanceled(boolean value) {
-		if (fRealProgressMonitor != null)
-			fRealProgressMonitor.setCanceled(value);
-		else
-			fCancelable= value;
-	}
-
-	/*
-	 * @see IProgressMonitor#setTaskName(String)
-	 */
-	public void setTaskName(String name) {
-		if (fRealProgressMonitor != null)
-			fRealProgressMonitor.setTaskName(name);
-		else
-			fTaskName= name;
-	}
-
-	/*
-	 * @see IProgressMonitor#subTask(String)
-	 */
-	public void subTask(String name) {
-		if (fRealProgressMonitor != null)
-			fRealProgressMonitor.subTask(name);
-		else
-			fSubTaskName= name;
-	}
-
-	/*
-	 * @see IProgressMonitor#worked(int)
-	 */
-	public void worked(int work) {
-		if (fRealProgressMonitor != null)
-			fRealProgressMonitor.internalWorked(work);
-		else {
-			fWorked+= work;
-			checkTimeout();
-		}
-	}
-	
-	public static void run(Shell shell, boolean fork, boolean cancelable, IRunnableWithProgress runnable)
-						throws InvocationTargetException, InterruptedException {
-		
-		DelayedProgressMonitor pm= new DelayedProgressMonitor(shell);
-		pm.checkTimeout();
-		try {
-			ModalContext.run(runnable, fork, pm, shell.getDisplay());
-		} finally {
-			if (pm.fProgressDialog != null)
-				pm.fProgressDialog.close();
-		}
-	}
-}
-
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/IDocumentRange.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/IDocumentRange.java
deleted file mode 100644
index 851749d..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/IDocumentRange.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.contentmergeviewer;
-
-import org.eclipse.jface.text.Position;
-import org.eclipse.jface.text.IDocument;
-
-
-/**
- * Defines a subrange in a document.
- * <p>
- * It is used by text viewers that can work on a subrange of a document. For example,
- * a text viewer for Java compilation units might use this to restrict the view
- * to a single method.
- * </p>
- * <p>
- * Clients may implement this interface.
- * </p>
- *
- * @see TextMergeViewer
- * @see org.eclipse.compare.structuremergeviewer.DocumentRangeNode
- */
-public interface IDocumentRange {
-	
-	/**
-	 * The position category typically used for an <code>IDocumentRange</code> position
-	 * (value <code>"DocumentRangeCategory"</code>).
-	 * @since 2.0
-	 */
-	public static final String RANGE_CATEGORY= "DocumentRangeCategory";	//$NON-NLS-1$
-
-	/**
-	 * Returns the underlying document.
-	 * 
-	 * @return the underlying document
-	 */
-	IDocument getDocument();
-	
-	/**
-	 * Returns a position that specifies a subrange in the underlying document,
-	 * or <code>null</code> if this document range spans the whole underlying document.
-	 * 
-	 * @return a position that specifies a subrange in the underlying document, or <code>null</code>
-	 */
-	Position getRange();
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/IMergeViewerContentProvider.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/IMergeViewerContentProvider.java
deleted file mode 100644
index d4a2066..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/IMergeViewerContentProvider.java
+++ /dev/null
@@ -1,155 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.contentmergeviewer;
-
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.jface.viewers.IContentProvider;
-
-
-/** 
- * A content provider that mediates between a <code>ContentMergeViewer</code>'s model
- * and the viewer itself.
- * <p>
- * Clients may implement this interface.
- * </p>
- * 
- * @see ContentMergeViewer
- */
-public interface IMergeViewerContentProvider extends IContentProvider {
-	
-	//---- ancestor side
-
-	/**
-	 * Returns the label for the ancestor side of a <code>ContentMergeViewer</code>.
-	 *
-	 * @param input the input object of the <code>ContentMergeViewer</code>
-	 * @return the label for the ancestor side of a <code>ContentMergeViewer</code>
-	 */
-	String getAncestorLabel(Object input);
-
-	/**
-	 * Returns an optional image for the ancestor side of a <code>ContentMergeViewer</code>.
-	 *
-	 * @param input the input object of the <code>ContentMergeViewer</code>
-	 * @return the image for the ancestor side of a <code>ContentMergeViewer</code>,
-	 *   or <code>null</code> if none
-	 */
-	Image getAncestorImage(Object input);
-
-	/**
-	 * Returns the contents for the ancestor side of a <code>ContentMergeViewer</code>.
-	 * The interpretation of the returned object depends on the concrete <code>ContentMergeViewer</code>.
-	 *
-	 * @param input the input object of the <code>ContentMergeViewer</code>
-	 * @return the content for the ancestor side of a <code>ContentMergeViewer</code>,
-	 *   or <code>null</code> if none
-	 */
-	Object getAncestorContent(Object input);
-
-	/**
-	 * Returns whether the ancestor side of the given input element should be shown.
-	 *
-	 * @return <code>true</code> if the ancestor side of the given input element should be shown
-	 */
-	boolean showAncestor(Object input);
-	
-	//---- left side
-
-	/**
-	 * Returns the label for the left side of a <code>ContentMergeViewer</code>.
-	 *
-	 * @param input the input object of the <code>ContentMergeViewer</code>
-	 * @return the label for the left side of a <code>ContentMergeViewer</code>
-	 */
-	String getLeftLabel(Object input);
-
-	/**
-	 * Returns an optional image for the left side of a <code>ContentMergeViewer</code>.
-	 *
-	 * @param input the input object of the <code>ContentMergeViewer</code>
-	 * @return the image for the left side of a <code>ContentMergeViewer</code>,
-	 *   or <code>null</code> if none
-	 */
-	Image getLeftImage(Object input);
-
-	/**
-	 * Returns the contents for the left side of a <code>ContentMergeViewer</code>.
-	 * The interpretation of the returned object depends on the concrete <code>ContentMergeViewer</code>.
-	 *
-	 * @param input the input object of the <code>ContentMergeViewer</code>
-	 * @return the content for the left side of a <code>ContentMergeViewer</code>,
-	 *   or <code>null</code> if none
-	 */
-	Object getLeftContent(Object input);
-
-	/**
-	 * Returns whether the left side is editable.
-	 *
-	 * @param input the input object of the <code>ContentMergeViewer</code>
-	 * @return <code>true</code> if the left side of a <code>ContentMergeViewer</code> is editable	 
-	 */
-	boolean isLeftEditable(Object input);
-
-	/**
-	 * Saves new contents for the left side of the <code>ContentMergeViewer</code>.
-	 *
-	 * @param input the input object of the <code>ContentMergeViewer</code>
-	 * @param bytes the new contents to save for the left side
-	 */
-	void saveLeftContent(Object input, byte[] bytes);
-
-	//---- right side
-
-	/**
-	 * Returns the label for the right side of a <code>ContentMergeViewer</code>.
-	 *
-	 * @param input the input object of the <code>ContentMergeViewer</code>
-	 * @return the label for the right side of a <code>ContentMergeViewer</code>
-	 */
-	String getRightLabel(Object input);
-
-	/**
-	 * Returns an optional image for the right side of a <code>ContentMergeViewer</code>.
-	 *
-	 * @param input the input object of the <code>ContentMergeViewer</code>
-	 * @return the image for the right side of a <code>ContentMergeViewer</code>,
-	 *   or <code>null</code> if none
-	 */
-	Image getRightImage(Object input);
-
-	/**
-	 * Returns the contents for the right side of a <code>ContentMergeViewer</code>.
-	 * The interpretation of the returned object depends on the concrete <code>ContentMergeViewer</code>.
-	 *
-	 * @param input the input object of the <code>ContentMergeViewer</code>
-	 * @return the content for the right side of a <code>ContentMergeViewer</code>,
-	 *   or <code>null</code> if none
-	 */
-	Object getRightContent(Object input);
-
-	/**
-	 * Returns whether the right side is editable.
-	 *
-	 * @param input the input object of the <code>ContentMergeViewer</code>
-	 * @return <code>true</code> if the right side of a <code>ContentMergeViewer</code> is editable	 
-	 */
-	boolean isRightEditable(Object input);
-
-	/**
-	 * Saves new contents for the right side of the <code>ContentMergeViewer</code>.
-	 *
-	 * @param input the input object of the <code>ContentMergeViewer</code>
-	 * @param bytes the new contents to save for the right side
-	 */
-	void saveRightContent(Object input, byte[] bytes);
-}
-
-
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/ITokenComparator.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/ITokenComparator.java
deleted file mode 100644
index 27354bf..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/ITokenComparator.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.contentmergeviewer;
-
-import org.eclipse.compare.rangedifferencer.IRangeComparator;
-
-
-/**
- * For performing a so-called "token compare" on a line of text.
- * This interface extends the <code>IRangeComparator</code> interface
- * so that it can be used by the <code>TextMergeViewer</code>.
- * <p>
- * <code>TextMergeViewer</code> activates the token compare when navigating into
- * a range of differing lines. At first the lines are selected as a block.
- * When navigating into this block the token compare shows for every line 
- * the differing token by selecting them.
- * <p>
- * <code>TextMergeViewer</code>'s default token comparator works on characters separated
- * by whitespace. If a different strategy is needed (for example, to use Java tokens in
- * a Java-aware merge viewer), clients may create their own token
- * comparators by implementing this interface (and overriding the
- * <code>TextMergeViewer.createTokenComparator</code> factory method).
- * </p>
- *
- * @see TextMergeViewer
- */
-public interface ITokenComparator extends IRangeComparator {
-
-	/**
-	 * Returns the start character position of the token with the given index.
-	 * If the index is out of range (but not negative) the character position
-	 * behind the last character (the length of the input string) is returned.
-	 *
-	 * @param index index of the token for which to return the start position
-	 * @return the start position of the token with the given index
-	 * @throws java.lang.IndexOutOfBoundsException if index is negative
-	 */
-	int getTokenStart(int index);
-
-	/**
-	 * Returns the character length of the token with the given index.
-	 * If the index is out of range (but not negative) the value 0 is returned.
-	 *
-	 * @param index index of the token for which to return the start position
-	 * @return the character length of the token with the given index
-	 * @throws java.lang.IndexOutOfBoundsException if index is negative
-	 */
-	int getTokenLength(int index);
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewer.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewer.java
deleted file mode 100644
index 14a2010..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewer.java
+++ /dev/null
@@ -1,4125 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     channingwalton@mac.com - curved line code
- *******************************************************************************/
-package org.eclipse.compare.contentmergeviewer;
-
-import java.util.List;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.HashMap;
-import java.util.ResourceBundle;
-import java.io.UnsupportedEncodingException;
-import java.text.MessageFormat;
-
-import java.lang.reflect.InvocationTargetException;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Cursor;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.custom.*;
-
-import org.eclipse.jface.action.*;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.text.*;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.CoreException;
-
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IKeyBindingService;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.IWorkbenchPartSite;
-import org.eclipse.ui.help.WorkbenchHelp;
-
-import org.eclipse.compare.*;
-import org.eclipse.compare.internal.ICompareContextIds;
-import org.eclipse.compare.internal.MergeSourceViewer;
-import org.eclipse.compare.internal.BufferedCanvas;
-import org.eclipse.compare.internal.Utilities;
-import org.eclipse.compare.internal.TokenComparator;
-import org.eclipse.compare.internal.DocLineComparator;
-import org.eclipse.compare.internal.ComparePreferencePage;
-import org.eclipse.compare.internal.INavigatable;
-import org.eclipse.compare.internal.CompareNavigator;
-import org.eclipse.compare.internal.TimeoutContext;
-import org.eclipse.compare.internal.DocumentManager;
-import org.eclipse.compare.internal.CompareMessages;
-import org.eclipse.compare.rangedifferencer.*;
-import org.eclipse.compare.structuremergeviewer.*;
-
-/**
- * A text merge viewer uses the <code>RangeDifferencer</code> to perform a
- * textual, line-by-line comparison of two (or three) input documents.
- * It is based on the <code>ContentMergeViewer</code> and uses <code>TextViewer</code>s
- * to implement the ancestor, left, and right content areas.
- * <p>
- * In the three-way compare case ranges of differing lines are highlighted and framed
- * with different colors to show whether the difference is an incoming, outgoing, or conflicting change.
- * The <code>TextMergeViewer</code> supports the notion of a current "differing range"
- * and provides toolbar buttons to navigate from one range to the next (or previous).
- * <p>
- * If there is a current "differing range" and the underlying document is editable
- * the <code>TextMergeViewer</code> enables actions in context menu and toolbar to
- * copy a range from one side to the other side, thereby performing a merge operation.
- * <p>
- * In addition to a line-by-line comparison the <code>TextMergeViewer</code>
- * uses a token based compare on differing lines.
- * The token compare is activated when navigating into
- * a range of differing lines. At first the lines are selected as a block.
- * When navigating into this block the token compare shows for every line 
- * the differing token by selecting them.
- * <p>
- * The <code>TextMergeViewer</code>'s default token compare works on characters separated
- * by whitespace. If a different strategy is needed (for example, Java tokens in
- * a Java-aware merge viewer), clients can create their own token
- * comparators by implementing the <code>ITokenComparator</code> interface and overriding the
- * <code>TextMergeViewer.createTokenComparator</code> factory method).
- * <p>
- * Access to the <code>TextMergeViewer</code>'s model is by means of an
- * <code>IMergeViewerContentProvider</code>. Its <code>get<it>X</it></code>Content</code> methods must return
- * either an <code>IDocument</code>, an <code>IDocumentRange</code>, or an <code>IStreamContentAccessor</code>.
- * In the <code>IDocumentRange</code> case the <code>TextMergeViewer</code>
- * works on a subrange of a document. In the <code>IStreamContentAccessor</code> case
- * a document is created internally and initialized from the stream.
- * <p>
- * A <code>TextMergeViewer</code> can be used as is. However clients may subclass
- * to customize the behavior. For example a <code>MergeTextViewer</code> for Java would override
- * the <code>configureTextViewer</code> method to configure the <code>TextViewer</code> for Java source code,
- * the <code>createTokenComparator</code> method to create a Java specific tokenizer.
- *
- * @see org.eclipse.compare.rangedifferencer.RangeDifferencer
- * @see org.eclipse.jface.text.TextViewer
- * @see ITokenComparator
- * @see IDocumentRange
- * @see org.eclipse.compare.IStreamContentAccessor
- */
-public class TextMergeViewer extends ContentMergeViewer  {
-	
-	private static final boolean DEBUG= false;
-	
-	private static final String[] GLOBAL_ACTIONS= {
-		IWorkbenchActionConstants.UNDO,
-		IWorkbenchActionConstants.REDO,
-		IWorkbenchActionConstants.CUT,
-		IWorkbenchActionConstants.COPY,
-		IWorkbenchActionConstants.PASTE,
-		IWorkbenchActionConstants.DELETE,
-		IWorkbenchActionConstants.SELECT_ALL,
-		IWorkbenchActionConstants.SAVE
-	};
-	private static final String[] TEXT_ACTIONS= {
-		MergeSourceViewer.UNDO_ID,
-		MergeSourceViewer.REDO_ID,
-		MergeSourceViewer.CUT_ID,
-		MergeSourceViewer.COPY_ID,
-		MergeSourceViewer.PASTE_ID,
-		MergeSourceViewer.DELETE_ID,
-		MergeSourceViewer.SELECT_ALL_ID,
-		MergeSourceViewer.SAVE_ID
-	};
-					
-	private static final String BUNDLE_NAME= "org.eclipse.compare.contentmergeviewer.TextMergeViewerResources"; //$NON-NLS-1$
-			
-	// constants
-	/** Width of left and right vertical bar */
-	private static final int MARGIN_WIDTH= 6;
-	/** Width of center bar */
-	private static final int CENTER_WIDTH= 34;
-	/** Width of birds eye view */
-	private static final int BIRDS_EYE_VIEW_WIDTH= 12;
-	/** Width of birds eye view */
-	private static final int BIRDS_EYE_VIEW_INSET= 2;
-	/** */
-	private static final int RESOLVE_SIZE= 5;
-	/** if true copying conflicts from one side to other concatenates both sides */
-	private static final boolean APPEND_CONFLICT= true;
-
-	/** line width of change borders */
-	private static final int LW= 1;
-	/** Selects between smartTokenDiff and mergingTokenDiff */
-	private static final boolean USE_MERGING_TOKEN_DIFF= false;
-	/** When calculating differences show Progress after this timeout (in milliseconds) */
-	private static final int TIMEOUT= 2000;
-		
-	// determines whether a change between left and right is considered incoming or outgoing
-	private boolean fLeftIsLocal;
-	private boolean fShowCurrentOnly= false;
-	private boolean fShowCurrentOnly2= false;
-	private int fMarginWidth= MARGIN_WIDTH;
-	private int fTopInset;
-	
-	// Colors
-	private RGB fBackground;
-	private RGB fForeground;
-	private boolean fPollSystemForeground= true;
-	private boolean fPollSystemBackground= true;
-	
-	private RGB SELECTED_INCOMING;
-	private RGB INCOMING;
-	private RGB INCOMING_FILL;
-	
-	private RGB SELECTED_CONFLICT;
-	private RGB CONFLICT;
-	private RGB CONFLICT_FILL;
-	
-	private RGB SELECTED_OUTGOING;
-	private RGB OUTGOING;
-	private RGB OUTGOING_FILL;
-	
-	private RGB RESOLVED;
-
-	private boolean fEndOfDocReached;
-	private IDocumentListener fDocumentListener;
-	
-	private IPreferenceStore fPreferenceStore;
-	private IPropertyChangeListener fPreferenceChangeListener;
-	
-	/** All diffs for calculating scrolling position (includes line ranges without changes) */
-	private ArrayList fAllDiffs;
-	/** Subset of above: just real differences. */
-	private ArrayList fChangeDiffs;
-	/** The current diff */
-	private Diff fCurrentDiff;
-	
-	private HashMap fNewAncestorRanges= new HashMap();
-	private HashMap fNewLeftRanges= new HashMap();
-	private HashMap fNewRightRanges= new HashMap();
-	
-	private MergeSourceViewer fAncestor;
-	private MergeSourceViewer fLeft;
-	private MergeSourceViewer fRight;
-	
-	private int fLeftLineCount;
-	private int fRightLineCount;
-	
-	private boolean fInScrolling;
-	
-	private int fPts[]= new int[8];	// scratch area for polygon drawing
-	
-	private boolean fIgnoreAncestor= false;
-	private ActionContributionItem fIgnoreAncestorItem;
-	private boolean fHiglightRanges;
-	
-	private boolean fShowPseudoConflicts= false;
-	
-	private boolean fUseSplines= true;
-	private boolean fUseSingleLine= true;
-	private boolean fUseResolveUI= fUseSingleLine;	// resolve UI only for single lines	private boolean fShowSummeryIcon;
-
-	private String fSymbolicFontName;
-
-	private ActionContributionItem fNextItem;	// goto next difference
-	private ActionContributionItem fPreviousItem;	// goto previous difference
-	private ActionContributionItem fCopyDiffLeftToRightItem;
-	private ActionContributionItem fCopyDiffRightToLeftItem;
-	
-	private IKeyBindingService fKeyBindingService;
-	
-	private boolean fSynchronizedScrolling= true;
-	private boolean fShowMoreInfo= false;
-	
-	private MergeSourceViewer fFocusPart;
-	
-	private boolean fSubDoc= true;
-	private IPositionUpdater fPositionUpdater;
-	private boolean fIsMotif;	
-	private boolean fIsCarbon;	
-		
-
-	// SWT widgets
-	private BufferedCanvas fAncestorCanvas;
-	private BufferedCanvas fLeftCanvas;
-	private BufferedCanvas fRightCanvas;
-	private Canvas fScrollCanvas;
-	private ScrollBar fVScrollBar;
-	private Canvas fBirdsEyeCanvas;
-	private Canvas fSummaryHeader;
-	private HeaderPainter fHeaderPainter;
-	
-	// SWT resources to be disposed
-	private Map fColors;
-	private Cursor fBirdsEyeCursor;
-				
-	// points for center curves
-	private double[] fBasicCenterCurve;
-	
-	private Button fCenterButton;
-	private Diff fButtonDiff;
-					
-	class HeaderPainter implements PaintListener {
-		
-		private static final int INSET= BIRDS_EYE_VIEW_INSET;
-
-		private RGB fIndicatorColor;
-		private Color fSeparatorColor;
-		
-		public HeaderPainter() {
-			fSeparatorColor= getColor(fSummaryHeader.getDisplay(), ViewForm.borderInsideRGB);
-		}
-		
-		/**
-		 * Returns true on color change
-		 */
-		public boolean setColor(RGB color) {
-			RGB oldColor= fIndicatorColor;
-			fIndicatorColor= color;
-			if (color == null)
-				return oldColor != null;
-			if (oldColor != null)
-				return !color.equals(oldColor);
-			return true;
-		}
-		
-		private void drawBevelRect(GC gc, int x, int y, int w, int h, Color topLeft, Color bottomRight) {
-			gc.setForeground(topLeft);
-			gc.drawLine(x, y, x + w -1, y);
-			gc.drawLine(x, y, x, y + h -1);
-		
-			gc.setForeground(bottomRight);
-			gc.drawLine(x + w, y, x + w, y + h);
-			gc.drawLine(x, y + h, x + w, y + h);
-		}
-		
-		public void paintControl(PaintEvent e) {
-			
-			Point s= fSummaryHeader.getSize();
-			
-			if (fIndicatorColor != null) {
-				Display d= fSummaryHeader.getDisplay();
-				e.gc.setBackground(getColor(d, fIndicatorColor));
-				int min= Math.min(s.x, s.y)-2*INSET;
-				Rectangle r= new Rectangle((s.x-min)/2, (s.y-min)/2, min, min);
-				e.gc.fillRectangle(r);
-				if (d != null)
-					drawBevelRect(e.gc, r.x, r.y, r.width -1, r.height -1, d.getSystemColor(SWT.COLOR_WIDGET_NORMAL_SHADOW), d.getSystemColor(SWT.COLOR_WIDGET_HIGHLIGHT_SHADOW));
-
-				e.gc.setForeground(fSeparatorColor);
-				e.gc.setLineWidth(1);
-				e.gc.drawLine(0+1, s.y-1, s.x-1-1, s.y-1);
-			}
-		}
-	};
-
-	/**
-	 * The position updater used to adapt the positions representing
-	 * the child document ranges to changes of the parent document.
-	 */
-	class ChildPositionUpdater extends DefaultPositionUpdater {
-		
-		/**
-		 * Creates the position updated.
-		 */
-		protected ChildPositionUpdater(String category) {
-			super(category);
-		}
-		
-		/**
-		 * Child document ranges cannot be deleted other then by calling
-		 * freeChildDocument.
-		 */
-		protected boolean notDeleted() {
-			return true;
-		}
-		
-		/**
-		 * If an insertion happens at a child document's start offset, the
-		 * position is extended rather than shifted. Also, if something is added 
-		 * right behind the end of the position, the position is extended rather
-		 * than kept stable.
-		 */
-		protected void adaptToInsert() {
-			
-			if (fPosition == fLeft.getRegion() || fPosition == fRight.getRegion()) {
-				int myStart= fPosition.offset;
-				int myEnd=   fPosition.offset + fPosition.length;
-				myEnd= Math.max(myStart, myEnd);
-				
-				int yoursStart= fOffset;
-				int yoursEnd=   fOffset + fReplaceLength -1;
-				yoursEnd= Math.max(yoursStart, yoursEnd);
-				
-				if (myEnd < yoursStart)
-					return;
-				
-				if (myStart <= yoursStart)
-					fPosition.length += fReplaceLength;
-				else
-					fPosition.offset += fReplaceLength;
-			} else {
-				super.adaptToInsert();
-			}			
-		}
-	}
-	
-	/**
-	 * A Diff represents synchronized character ranges in two or three Documents.
-	 * The MergeTextViewer uses Diffs to find differences in line and token ranges.
-	 */
-	/* package */ class Diff {
-		/** character range in ancestor document */
-		Position fAncestorPos;
-		/** character range in left document */
-		Position fLeftPos;
-		/** character range in right document */
-		Position fRightPos;
-		/** if this is a TokenDiff fParent points to the enclosing LineDiff */
-		Diff fParent;	
-		/** if Diff has been resolved */
-		boolean fResolved;
-		int fDirection;
-		boolean fIsToken= false;
-		/** child token diffs */
-		ArrayList fDiffs;
-		boolean fIsWhitespace= false;
-
-		/**
-		 * Create Diff from two ranges and an optional parent diff.
-		 */
-		Diff(Diff parent, int dir, IDocument ancestorDoc, Position aRange, int ancestorStart, int ancestorEnd,
-							 IDocument leftDoc, Position lRange, int leftStart, int leftEnd,
-							 IDocument rightDoc, Position rRange, int rightStart, int rightEnd) {
-			fParent= parent != null ? parent : this;
-			fDirection= dir;
-			
-			fLeftPos= createPosition(leftDoc, lRange, leftStart, leftEnd);
-			fRightPos= createPosition(rightDoc, rRange, rightStart, rightEnd);
-			if (ancestorDoc != null)
-				fAncestorPos= createPosition(ancestorDoc, aRange, ancestorStart, ancestorEnd);
-		}
-		
-		Position getPosition(char type) {
-			switch (type) {
-			case 'A':
-				return fAncestorPos;
-			case 'L':
-				return fLeftPos;
-			case 'R':
-				return fRightPos;
-			}
-			return null;
-		}
-		
-		boolean isInRange(char type, int pos) {
-			Position p= getPosition(type);
-			return (pos >= p.offset) && (pos < (p.offset+p.length));
-		}
-		
-		String changeType() {
-			boolean leftEmpty= fLeftPos.length == 0;
-			boolean rightEmpty= fRightPos.length == 0;
-			
-			if (fDirection == RangeDifference.LEFT) {
-				if (!leftEmpty && rightEmpty)
-					return CompareMessages.getString("TextMergeViewer.changeType.addition"); //$NON-NLS-1$
-				if (leftEmpty && !rightEmpty)
-					return CompareMessages.getString("TextMergeViewer.changeType.deletion"); //$NON-NLS-1$
-			} else {
-				if (leftEmpty && !rightEmpty)
-					return CompareMessages.getString("TextMergeViewer.changeType.addition"); //$NON-NLS-1$
-				if (!leftEmpty && rightEmpty)
-					return CompareMessages.getString("TextMergeViewer.changeType.deletion"); //$NON-NLS-1$
-			}
-			return CompareMessages.getString("TextMergeViewer.changeType.change"); //$NON-NLS-1$
-		}
-		
-		Image getImage() {
-			int code= Differencer.CHANGE;
-			switch (fDirection) {
-			case RangeDifference.RIGHT:
-				code+= Differencer.LEFT;
-				break;
-			case RangeDifference.LEFT:
-				code+= Differencer.RIGHT;
-				break;
-			case RangeDifference.ANCESTOR:
-			case RangeDifference.CONFLICT:
-				code+= Differencer.CONFLICTING;
-				break;
-			}
-			if (code != 0)
-				return getCompareConfiguration().getImage(code);
-			return null;
-		}
-		
-		Position createPosition(IDocument doc, Position range, int start, int end) {
-			try {
-				int l= end-start;
-				if (range != null) {
-					int dl= range.length;
-					if (l > dl)
-						l= dl;					
-				} else {
-					int dl= doc.getLength();
-					if (start+l > dl)
-						l= dl-start;
-				}
-					
-				Position p= null;
-				try {
-					p= new Position(start, l);
-				} catch (RuntimeException ex) {
-					//System.out.println("Diff.createPosition: " + start + " " + l);
-				}
-				
-				try {
-					doc.addPosition(IDocumentRange.RANGE_CATEGORY, p);
-				} catch (BadPositionCategoryException ex) {
-				}
-				return p;
-			} catch (BadLocationException ee) {
-				//System.out.println("Diff.createPosition: " + start + " " + end);
-			}
-			return null;
-		}
-
-		void add(Diff d) {
-			if (fDiffs == null)
-				fDiffs= new ArrayList();
-			fDiffs.add(d);
-		}
-		
-		boolean isDeleted() {
-			if (fAncestorPos != null && fAncestorPos.isDeleted())
-				return true;
-			return fLeftPos.isDeleted() || fRightPos.isDeleted();
-		}
-		
-		void setResolved(boolean r) {
-			fResolved= r;
-			if (r)
-				fDiffs= null;
-		}
-
-		boolean isResolved() {
-			if (!fResolved && fDiffs != null) {
-				Iterator e= fDiffs.iterator();
-				while (e.hasNext()) {
-					Diff d= (Diff) e.next();
-					if (!d.isResolved())
-						return false;
-				}
-				return true;
-			}
-			return fResolved;
-		}
-		
-//		private boolean isIncoming() {
-//			switch (fDirection) {
-//			case RangeDifference.RIGHT:
-//				if (fLeftIsLocal)
-//					return true;
-//				break;
-//			case RangeDifference.LEFT:
-//				if (!fLeftIsLocal)
-//					return true;
-//				break;
-//			}
-//			return false;
-//		}
-		
-		private boolean isIncomingOrConflicting() {
-			switch (fDirection) {
-			case RangeDifference.RIGHT:
-				if (fLeftIsLocal)
-					return true;
-				break;
-			case RangeDifference.LEFT:
-				if (!fLeftIsLocal)
-					return true;
-				break;
-			case RangeDifference.CONFLICT:
-				return true;
-			}
-			return false;
-		}
-		
-//		private boolean isUnresolvedIncoming() {
-//			if (fResolved)
-//				return false;
-//			return isIncoming();
-//		}
-		
-		private boolean isUnresolvedIncomingOrConflicting() {
-			if (fResolved)
-				return false;
-			return isIncomingOrConflicting();
-		}
-				
-		Position getPosition(MergeSourceViewer w) {
-			if (w == fLeft)
-				return fLeftPos;
-			if (w == fRight)
-				return fRightPos;
-			if (w == fAncestor)
-				return fAncestorPos;
-			return null;
-		}
-		
-		/**
-		 * Returns true if given character range overlaps with this Diff.
-		 */
-		boolean contains(MergeSourceViewer w, int start, int end) {
-			Position h= getPosition(w);
-			if (h != null) {
-				int offset= h.getOffset();
-				if (start >= offset) {
-					int endPos= offset+h.getLength();
-					if (end < endPos)
-						return true;
-					if (endPos == w.getDocument().getLength())
-						return true;
-				}
-			}
-			return false;
-		}
-				
-		int getMaxDiffHeight(boolean withAncestor) {
-			Point region= new Point(0, 0);
-			int h= fLeft.getLineRange(fLeftPos, region).y;
-			if (withAncestor)
-				h= Math.max(h, fAncestor.getLineRange(fAncestorPos, region).y);
-			return Math.max(h, fRight.getLineRange(fRightPos, region).y);
-		}
-		
-		int getAncestorHeight() {
-			Point region= new Point(0, 0);			
-			return fAncestor.getLineRange(fAncestorPos, region).y;
-		}
-
-		int getLeftHeight() {
-			Point region= new Point(0, 0);			
-			return fLeft.getLineRange(fLeftPos, region).y;
-		}
-
-		int getRightHeight() {
-			Point region= new Point(0, 0);			
-			return fRight.getLineRange(fRightPos, region).y;
-		}
-	}
-
-	//---- MergeTextViewer
-	
-	/**
-	 * Creates a text merge viewer under the given parent control.
-	 *
-	 * @param parent the parent control
-	 * @param configuration the configuration object
-	 */
-	public TextMergeViewer(Composite parent, CompareConfiguration configuration) {
-		this(parent, SWT.NULL, configuration);
-	}
-	
-	/**
-	 * Creates a text merge viewer under the given parent control.
-	 *
-	 * @param parent the parent control
-	 * @param style SWT style bits for top level composite of this viewer
-	 * @param configuration the configuration object
-	 */
-	public TextMergeViewer(Composite parent, int style, CompareConfiguration configuration) {
-		super(style, ResourceBundle.getBundle(BUNDLE_NAME), configuration);
-		
-		fSymbolicFontName= getClass().getName();
-		
-		String platform= SWT.getPlatform();
-		fIsMotif= "motif".equals(platform); //$NON-NLS-1$
-		fIsCarbon= "carbon".equals(platform); //$NON-NLS-1$
-		
-		if (fIsMotif)
-			fMarginWidth= 0;
-			
-		Display display= parent.getDisplay();
-		
-		fPreferenceChangeListener= new IPropertyChangeListener() {
-			public void propertyChange(PropertyChangeEvent event) {
-				TextMergeViewer.this.propertyChange(event);
-			}
-		};
-
-		fPreferenceStore= configuration.getPreferenceStore();
-		if (fPreferenceStore != null) {
-			fPreferenceStore.addPropertyChangeListener(fPreferenceChangeListener);
-			
-			checkForColorUpdate(display);
-
-			fLeftIsLocal= Utilities.getBoolean(configuration, "LEFT_IS_LOCAL", false); //$NON-NLS-1$
-			fSynchronizedScrolling= fPreferenceStore.getBoolean(ComparePreferencePage.SYNCHRONIZE_SCROLLING);
-			fShowMoreInfo= fPreferenceStore.getBoolean(ComparePreferencePage.SHOW_MORE_INFO);
-			fShowPseudoConflicts= fPreferenceStore.getBoolean(ComparePreferencePage.SHOW_PSEUDO_CONFLICTS);
-			//fUseSplines= fPreferenceStore.getBoolean(ComparePreferencePage.USE_SPLINES);
-			fUseSingleLine= fPreferenceStore.getBoolean(ComparePreferencePage.USE_SINGLE_LINE);
-			fUseResolveUI= fUseSingleLine;
-			//fUseResolveUI= fPreferenceStore.getBoolean(ComparePreferencePage.USE_RESOLVE_UI);
-		}
-		
-		fDocumentListener= new IDocumentListener() {
-			
-			public void documentAboutToBeChanged(DocumentEvent e) {
-			}
-			
-			public void documentChanged(DocumentEvent e) {
-				TextMergeViewer.this.documentChanged(e);
-			}
-		};
-		
-		buildControl(parent);
-		
-		INavigatable nav= new INavigatable() {
-			public boolean gotoDifference(boolean next) {
-				return navigate(next, false, false);
-			}
-		};
-		fComposite.setData(INavigatable.NAVIGATOR_PROPERTY, nav);
-		
-		fBirdsEyeCursor= new Cursor(parent.getDisplay(), SWT.CURSOR_HAND);
-		
-		JFaceResources.getFontRegistry().addListener(fPreferenceChangeListener);
-		updateFont();
-	}
-	
-	private void updateFont() {
-		Font f= JFaceResources.getFont(fSymbolicFontName);
-		if (f != null) {
-			if (fAncestor != null)
-				fAncestor.setFont(f);
-			if (fLeft != null)
-				fLeft.setFont(f);
-			if (fRight != null)
-				fRight.setFont(f);
-		}
-	}
-	
-	private void checkForColorUpdate(Display display) {
-		if (fPollSystemForeground) {
-			RGB fg= display.getSystemColor(SWT.COLOR_LIST_FOREGROUND).getRGB();
-			if (fForeground == null || !fg.equals(fForeground)) {
-				fForeground= fg;
-				updateColors(display);
-			}
-		}
-		if (fPollSystemBackground) {
-			RGB bg= display.getSystemColor(SWT.COLOR_LIST_BACKGROUND).getRGB();
-			if (fBackground == null || !bg.equals(fBackground)) {
-				fBackground= bg;
-				updateColors(display);
-			}
-		}
-	}
-	
-	/**
-	 * Sets the viewer's background color to the given RGB value.
-	 * If the value is <code>null</code> the system's default background color is used.
-	 * @param background the background color or <code>null</code> to use the system's default background color
-	 * @since 2.0
-	 */
-	public void setBackgroundColor(RGB background) {
-		fPollSystemBackground= (background == null);
-		fBackground= background;
-		updateColors(null);
-	}
-	
-	private RGB getBackground(Display display) {
-		if (fBackground != null)
-			return fBackground;
-		if (display == null)
-			display= fComposite.getDisplay();
-		return display.getSystemColor(SWT.COLOR_LIST_BACKGROUND).getRGB();
-	}
-	
-	/**
-	 * Sets the viewer's foreground color to the given RGB value.
-	 * If the value is <code>null</code> the system's default foreground color is used.
-	 * @param foreground the foreground color or <code>null</code> to use the system's default foreground color
-	 * @since 2.0
-	 */
-	public void setForegroundColor(RGB foreground) {
-		fPollSystemForeground= (foreground == null);
-		fForeground= foreground;
-		updateColors(null);
-	}
-	
-	private RGB getForeground(Display display) {
-		if (fForeground != null)
-			return fForeground;
-		if (display == null)
-			display= fComposite.getDisplay();
-		return display.getSystemColor(SWT.COLOR_LIST_FOREGROUND).getRGB();
-	}
-	
-	private void updateColors(Display display) {
-		
-		if (display == null)
-			display= fComposite.getDisplay();
-		
-		Color color= null;
-		if (fBackground != null)
-			color= getColor(display, fBackground);
-		
-		if (fAncestor != null)
-			fAncestor.setBackgroundColor(color);
-		if (fLeft != null)
-			fLeft.setBackgroundColor(color);
-		if (fRight != null)
-			fRight.setBackgroundColor(color);
-						
-		RGB bg= getBackground(display);
-		SELECTED_INCOMING= new RGB(0, 0, 255);
-		INCOMING= interpolate(SELECTED_INCOMING, bg, 0.6);
-		INCOMING_FILL= interpolate(SELECTED_INCOMING, bg, 0.97);
-
-		SELECTED_CONFLICT= new RGB(255, 0, 0);
-		CONFLICT= interpolate(SELECTED_CONFLICT, bg, 0.6);
-		CONFLICT_FILL= interpolate(SELECTED_CONFLICT, bg, 0.97);
-	
-		SELECTED_OUTGOING= getForeground(display);
-		OUTGOING= interpolate(SELECTED_OUTGOING, bg, 0.6);
-		OUTGOING_FILL= interpolate(SELECTED_OUTGOING, bg, 0.97);
-		
-		RESOLVED= new RGB(0, 255, 0);
-				
-		refreshBirdsEyeView();
-		invalidateLines();
-		
-		updateAllDiffBackgrounds(display);
-	}
-	
-	/**
-	 * Invalidates the current presentation by invalidating the three text viewers.
-	 * @since 2.0
-	 */
-	public void invalidateTextPresentation() {
-		if (fAncestor != null)
-			fAncestor.invalidateTextPresentation();
-		if (fLeft != null)
-			fLeft.invalidateTextPresentation();
-		if (fRight != null)
-			fRight.invalidateTextPresentation();
-	}
-	
-	/**
-	 * Configures the passed text viewer.
-	 * This method is called after the three text viewers have been created for the
-	 * content areas.
-	 * The <code>TextMergeViewer</code> implementation of this method does nothing.
-	 * Subclasses may reimplement to provide a specific configuration for the text viewer.
-	 *
-	 * @param textViewer the text viewer to configure
-	 */
-	protected void configureTextViewer(TextViewer textViewer) {
-	}
-				
-	/**
-	 * Creates an <code>ITokenComparator</code> which is used to show the
-	 * intra line differences.
-	 * The <code>TextMergeViewer</code> implementation of this method returns a 
-	 * tokenizer that breaks a line into words separated by whitespace.
-	 * Subclasses may reimplement to provide a specific tokenizer.
-	 *
-	 * @return a ITokenComparator which is used for a second level token compare.
-	 */
-	protected ITokenComparator createTokenComparator(String s) {
-		return new TokenComparator(s);
-	}
-	
-	/**
-	 * Returns a document partitioner which is suitable for the underlying content type.
-	 * This method is only called if the input provided by the content provider is a
-	 * <code>IStreamContentAccessor</code> and an internal document must be created. This
-	 * document is initialized with the partitioner returned from this method.
-	 * <p>
-	 * The <code>TextMergeViewer</code> implementation of this method returns 
-	 * <code>null</code>. Subclasses may reimplement to create a partitioner for a 
-	 * specific content type.
-	 *
-	 * @return a document partitioner, or <code>null</code>
-	 */
-	protected IDocumentPartitioner getDocumentPartitioner() {
-		return null;
-	}
-	
-	/**
-	 * Called on the viewer disposal.
-	 * Unregisters from the compare configuration.
-	 * Clients may extend if they have to do additional cleanup.
-	 */
-	protected void handleDispose(DisposeEvent event) {
-		
-		if (fKeyBindingService != null) {
-			IAction a;
-			if (fNextItem != null) {
-				a= fNextItem.getAction();
-				if (a != null)
-					fKeyBindingService.unregisterAction(a);
-			}
-			if (fPreviousItem != null) {
-				a= fPreviousItem.getAction();
-				if (a != null)
-					fKeyBindingService.unregisterAction(a);
-			}
-			if (fCopyDiffLeftToRightItem != null) {
-				a= fCopyDiffLeftToRightItem.getAction();
-				if (a != null)
-					fKeyBindingService.unregisterAction(a);
-			}
-			if (fCopyDiffRightToLeftItem != null) {
-				a= fCopyDiffRightToLeftItem.getAction();
-				if (a != null)
-					fKeyBindingService.unregisterAction(a);
-			}
-			fKeyBindingService= null;
-		}
-		
-		Object input= getInput();
-		DocumentManager.remove(getDocument2('A', input));
-		DocumentManager.remove(getDocument2('L', input));
-		DocumentManager.remove(getDocument2('R', input));
-		
-		if (DEBUG)
-			DocumentManager.dump();
-
-		if (fPreferenceChangeListener != null) {
-			JFaceResources.getFontRegistry().removeListener(fPreferenceChangeListener);
-			if (fPreferenceStore != null)
-				fPreferenceStore.removePropertyChangeListener(fPreferenceChangeListener);
-			fPreferenceChangeListener= null;
-		}
-		
-		fLeftCanvas= null;
-		fRightCanvas= null;
-		fVScrollBar= null;
-		fBirdsEyeCanvas= null;
-		fSummaryHeader= null;
-
-		unsetDocument(fAncestor);
-		unsetDocument(fLeft);
-		unsetDocument(fRight);
-		
-		if (fColors != null) {
-			Iterator i= fColors.values().iterator();
-			while (i.hasNext()) {
-				Color color= (Color) i.next();
-				if (!color.isDisposed())
-					color.dispose();
-			}
-			fColors= null;
-		}
-		
-		if (fBirdsEyeCursor != null) {
-			fBirdsEyeCursor.dispose();
-			fBirdsEyeCursor= null;
-		}
-		
-		super.handleDispose(event);
-  	}
-  	  	  				 		
-	//-------------------------------------------------------------------------------------------------------------
-	//--- internal ------------------------------------------------------------------------------------------------
-	//-------------------------------------------------------------------------------------------------------------
-	
-	/**
-	 * Creates the specific SWT controls for the content areas.
-	 * Clients must not call or override this method.
-	 */
-	protected void createControls(Composite composite) {
-		
-		WorkbenchHelp.setHelp(composite, ICompareContextIds.TEXT_MERGE_VIEW);
-		
-		// 1st row
-		if (fMarginWidth > 0) {
-			fAncestorCanvas= new BufferedCanvas(composite, SWT.NONE) {
-				public void doPaint(GC gc) {
-					paintSides(gc, fAncestor, fAncestorCanvas, false);
-				}
-			};
-			fAncestorCanvas.addMouseListener(
-				new MouseAdapter() {
-					public void mouseDown(MouseEvent e) {
-						setCurrentDiff2(handleMouseInSides(fAncestorCanvas, fAncestor, e.y), false);
-					}
-				}
-			);
-		}
-									
-		fAncestor= createPart(composite);
-		fAncestor.setEditable(false);
-		
-		fSummaryHeader= new Canvas(composite, SWT.NONE);
-		fHeaderPainter= new HeaderPainter();
-		fSummaryHeader.addPaintListener(fHeaderPainter);
-		updateResolveStatus();
-				
-		// 2nd row
-		if (fMarginWidth > 0) {
-			fLeftCanvas= new BufferedCanvas(composite, SWT.NONE) {
-				public void doPaint(GC gc) {
-					paintSides(gc, fLeft, fLeftCanvas, false);
-				}
-			};
-			fLeftCanvas.addMouseListener(
-				new MouseAdapter() {
-					public void mouseDown(MouseEvent e) {
-						setCurrentDiff2(handleMouseInSides(fLeftCanvas, fLeft, e.y), false);
-					}
-				}
-			);
-		}
-		
-		fLeft= createPart(composite);
-		fLeft.getTextWidget().getVerticalBar().setVisible(!fSynchronizedScrolling);
-		fLeft.addAction(MergeSourceViewer.SAVE_ID, fLeftSaveAction);
-			
-		fRight= createPart(composite);
-		fRight.getTextWidget().getVerticalBar().setVisible(!fSynchronizedScrolling);
-		fRight.addAction(MergeSourceViewer.SAVE_ID, fRightSaveAction);
-		
-		if (fMarginWidth > 0) {
-			fRightCanvas= new BufferedCanvas(composite, SWT.NONE) {
-				public void doPaint(GC gc) {
-					paintSides(gc, fRight, fRightCanvas, fSynchronizedScrolling);
-				}
-			};
-			fRightCanvas.addMouseListener(
-				new MouseAdapter() {
-					public void mouseDown(MouseEvent e) {
-						setCurrentDiff2(handleMouseInSides(fRightCanvas, fRight, e.y), false);
-					}
-				}
-			);
-		}
-		
-		fScrollCanvas= new Canvas(composite, SWT.V_SCROLL);
-		//Rectangle trim= fScrollCanvas.computeTrim(0, 0, 0, 0);
-		Rectangle trim= fLeft.getTextWidget().computeTrim(0, 0, 0, 0);
-		fTopInset= trim.y;
-		
-		fVScrollBar= fScrollCanvas.getVerticalBar();
-		fVScrollBar.setIncrement(1);
-		fVScrollBar.setVisible(true);
-		fVScrollBar.addListener(SWT.Selection,
-			new Listener() {
-				public void handleEvent(Event e) {
-					int vpos= ((ScrollBar)e.widget).getSelection();
-					scrollVertical(vpos, vpos, vpos, null);
-				}
-			}
-		);
-		
-		fBirdsEyeCanvas= new BufferedCanvas(composite, SWT.NONE) {
-			public void doPaint(GC gc) {
-				paintBirdsEyeView(this, gc);
-			}
-		};
-		//fBirdsEyeCanvas.setBackground(composite.getDisplay().getSystemColor(SWT.COLOR_YELLOW));
-		fBirdsEyeCanvas.addMouseListener(
-			new MouseAdapter() {
-				public void mouseDown(MouseEvent e) {
-					setCurrentDiff2(handlemouseInBirdsEyeView(fBirdsEyeCanvas, e.y), true);
-				}
-			}
-		);
-		fBirdsEyeCanvas.addMouseMoveListener(
-			new MouseMoveListener() {
-				
-				private Cursor fLastCursor;
-				
-				public void mouseMove(MouseEvent e) {
-					Cursor cursor= null;
-					Diff diff= handlemouseInBirdsEyeView(fBirdsEyeCanvas, e.y);
-					if (diff != null && diff.fDirection != Differencer.NO_CHANGE)
-						cursor= fBirdsEyeCursor;
-					if (fLastCursor != cursor) {
-						fBirdsEyeCanvas.setCursor(cursor);
-						fLastCursor= cursor;
-					}
-				}
-			}
-		);
-	}
-	
-	private void setCurrentDiff2(Diff diff, boolean reveal) {
-		if (diff != null && diff.fDirection != Differencer.NO_CHANGE) {
-			//fCurrentDiff= null;
-			setCurrentDiff(diff, reveal);
-		}
-	}
-	
-	private Diff handleMouseInSides(Canvas canvas, MergeSourceViewer tp, int my) {
-
-		int lineHeight= tp.getTextWidget().getLineHeight();
-		int visibleHeight= tp.getViewportHeight();
-
-		if (! fHiglightRanges)
-			return null;
-
-		if (fChangeDiffs != null) {
-			int shift= tp.getVerticalScrollOffset() + (2-LW);
-
-			Point region= new Point(0, 0);
-			Iterator e= fChangeDiffs.iterator();
-			while (e.hasNext()) {
-				Diff diff= (Diff) e.next();
-				if (diff.isDeleted())
-					continue;
-
-				if (fShowCurrentOnly2 && !isCurrentDiff(diff))
-					continue;
-
-				tp.getLineRange(diff.getPosition(tp), region);
-				int y= (region.x * lineHeight) + shift;
-				int h= region.y * lineHeight;
-
-				if (y+h < 0)
-					continue;
-				if (y >= visibleHeight)
-					break;
-					
-				if (my >= y && my < y+h)
-					return diff;
-			}
-		}
-		return null;
-	}
-	
-	private Diff getDiffUnderMouse(Canvas canvas, int mx, int my, Rectangle r) {
-
-		if (! fSynchronizedScrolling)
-			return null;
-
-		int lineHeight= fLeft.getTextWidget().getLineHeight();
-		int visibleHeight= fRight.getViewportHeight();
-
-		Point size= canvas.getSize();
-		int w= size.x;
-
-		if (! fHiglightRanges)
-			return null;
-
-		if (fChangeDiffs != null) {
-			int lshift= fLeft.getVerticalScrollOffset();
-			int rshift= fRight.getVerticalScrollOffset();
-
-			Point region= new Point(0, 0);
-
-			Iterator e= fChangeDiffs.iterator();
-			while (e.hasNext()) {
-				Diff diff= (Diff) e.next();
-				if (diff.isDeleted())
-					continue;
-
-				if (fShowCurrentOnly2 && !isCurrentDiff(diff))
-					continue;
-
-				fLeft.getLineRange(diff.fLeftPos, region);
-				int ly= (region.x * lineHeight) + lshift;
-				int lh= region.y * lineHeight;
-
-				fRight.getLineRange(diff.fRightPos, region);
-				int ry= (region.x * lineHeight) + rshift;
-				int rh= region.y * lineHeight;
-
-				if (Math.max(ly+lh, ry+rh) < 0)
-					continue;
-				if (Math.min(ly, ry) >= visibleHeight)
-					break;
-
-				int cx= (w-RESOLVE_SIZE)/2;
-				int cy= ((ly+lh/2) + (ry+rh/2) - RESOLVE_SIZE)/2; 
-				if (my >= cy && my < cy+RESOLVE_SIZE && mx >= cx && mx < cx+RESOLVE_SIZE) {
-					if (r != null) {
-						r.x= cx+RESOLVE_SIZE/2-10;
-						r.y= cy+RESOLVE_SIZE/2-10;
-						r.width= 20;
-						r.height= 20;
-					}
-					return diff;
-				}
-			}
-		}
-		return null;
-	}
-
-	private Diff handlemouseInBirdsEyeView(Canvas canvas, int my) {
-		int yy, hh;
-		
-		Point size= canvas.getSize();
-		
-		int virtualHeight= fSynchronizedScrolling ? getVirtualHeight() : getRightHeight();		
-		if (virtualHeight < getViewportHeight())
-			return null;
-		
-		int y= 0;
-		if (fAllDiffs != null) {
-			Iterator e= fAllDiffs.iterator();
-			for (int i= 0; e.hasNext(); i++) {
-				Diff diff= (Diff) e.next();
-				int h= fSynchronizedScrolling ? diff.getMaxDiffHeight(fShowAncestor)
-											  : diff.getRightHeight();
-				if (useChange(diff.fDirection) && !diff.fIsWhitespace) {
-									
-					yy= (y*size.y)/virtualHeight;
-					hh= (h*size.y)/virtualHeight;
-					if (hh < 3)
-						hh= 3;
-						
-					if (my >= yy && my < yy+hh)
-						return diff;
-				}
-				y+= h;
-			}
-		}
-		return null;
-	}
-	
-	private void paintBirdsEyeView(Canvas canvas, GC gc) {
-		
-		Color c;
-		Rectangle r= new Rectangle(0, 0, 0, 0);
-		int yy, hh;
-		
-		Point size= canvas.getSize();
-		
-		int virtualHeight= fSynchronizedScrolling ? getVirtualHeight() : getRightHeight();		
-		if (virtualHeight < getViewportHeight())
-			return;
-				
-		Display display= canvas.getDisplay();
-		int y= 0;
-		if (fAllDiffs != null) {
-			Iterator e= fAllDiffs.iterator();
-			for (int i= 0; e.hasNext(); i++) {
-				Diff diff= (Diff) e.next();
-				int h= fSynchronizedScrolling ? diff.getMaxDiffHeight(fShowAncestor)
-											  : diff.getRightHeight();
-								
-				if (useChange(diff.fDirection) && !diff.fIsWhitespace) {
-					
-					yy= (y*size.y)/virtualHeight;
-					hh= (h*size.y)/virtualHeight;
-					if (hh < 3)
-						hh= 3;
-					
-					c= getColor(display, getFillColor(diff));
-					if (c != null) {
-						gc.setBackground(c);
-						gc.fillRectangle(BIRDS_EYE_VIEW_INSET, yy, size.x-(2*BIRDS_EYE_VIEW_INSET),hh);
-					}
-					c= getColor(display, getStrokeColor(diff));
-					if (c != null) {
-						gc.setForeground(c);
-						r.x= BIRDS_EYE_VIEW_INSET;
-						r.y= yy;
-						r.width= size.x-(2*BIRDS_EYE_VIEW_INSET)-1;
-						r.height= hh;
-						if (diff == fCurrentDiff ||
-								(fCurrentDiff != null && diff == fCurrentDiff.fParent)) {
-							gc.setLineWidth(2);
-							r.x++;
-							r.y++;
-							r.width--;
-							r.height--;
-						} else {
-							gc.setLineWidth(1);
-						}
-						gc.drawRectangle(r);
-					}
-				}
-				
-				y+= h;
-			}
-		}
-	}
-	
-	private void refreshBirdsEyeView() {
-		if (fBirdsEyeCanvas != null)
-			fBirdsEyeCanvas.redraw();
-	}
-	
-	/**
-	 * Called whenever setFocus() is called on the ContentViewer's top level SWT Composite.
-	 * This implementation sets the focus to the first enabled text widget.
-	 */
-	/* package */ boolean internalSetFocus() {
-		if (fFocusPart == null) {
-			if (fLeft != null && fLeft.getEnabled()) {
-				fFocusPart= fLeft;
-			} else if (fRight != null && fRight.getEnabled()) {
-				fFocusPart= fRight;
-			} else if (fAncestor != null && fAncestor.getEnabled()) {
-				fFocusPart= fAncestor;
-			}
-		}
-		if (fFocusPart != null) {
-			StyledText st= fFocusPart.getTextWidget();
-			if (st != null)
-				return st.setFocus();
-		}
-		return false;	// could not set focus
-	}
-	
-	
-	class HoverResizer extends Resizer {
-		Canvas fCanvas;
-		public HoverResizer(Canvas c, int dir) {
-			super(c, dir);
-			fCanvas= c;
-		}
-		public void mouseMove(MouseEvent e) {
-			if (!fIsDown && showResolveUI() && handleMouseMoveOverCenter(fCanvas, e.x, e.y))
-				return;
-			super.mouseMove(e);
-		}
-	}
-	
-	/**
-	 * Creates the central Canvas.
-	 * Called from ContentMergeViewer.
-	 */
-	/* package */ Control createCenter(Composite parent) {
-		if (fSynchronizedScrolling) {
-			final Canvas canvas= new BufferedCanvas(parent, SWT.NONE) {
-				public void doPaint(GC gc) {
-					paintCenter(this, gc);
-				}
-			};
-			if (!fUseResolveUI) {
-				new Resizer(canvas, HORIZONTAL);
-			} else {
-				
-				new HoverResizer(canvas, HORIZONTAL);
-								
-				fCenterButton= new Button(canvas, "carbon".equals(SWT.getPlatform()) ? SWT.FLAT : SWT.PUSH);	//$NON-NLS-1$
-				fCenterButton.setText("<");	 //$NON-NLS-1$
-				fCenterButton.pack();
-				fCenterButton.setVisible(false);
-				fCenterButton.addSelectionListener(
-					new SelectionAdapter() {
-						public void widgetSelected(SelectionEvent e) {
-							fCenterButton.setVisible(false);
-							if (fButtonDiff != null) {
-								setCurrentDiff(fButtonDiff, false);
-								copy(fCurrentDiff, false, fCurrentDiff.fDirection == RangeDifference.CONFLICT);
-							}
-						}
-					}
-				);				
-			}
-			
-			return canvas;
-		}
-		return super.createCenter(parent);
-	}
-	
-	private boolean handleMouseMoveOverCenter(Canvas canvas, int x, int y) {
-		Rectangle r= new Rectangle(0, 0, 0, 0);
-		Diff diff= getDiffUnderMouse(canvas, x, y, r);
-		if (diff != null && !diff.isUnresolvedIncomingOrConflicting())
-			diff= null;
-		if (diff != fButtonDiff) {
-			if (diff != null) {
-				if (fLeft.isEditable()) {
-					fButtonDiff= diff;
-					fCenterButton.setText("<");		//$NON-NLS-1$
-					String tt= fCopyDiffRightToLeftItem.getAction().getToolTipText();
-					fCenterButton.setToolTipText(tt);
-					fCenterButton.setBounds(r);
-					fCenterButton.setVisible(true);
-				} else if (fRight.isEditable()) {
-					fButtonDiff= diff;
-					fCenterButton.setText(">");		//$NON-NLS-1$
-					String tt= fCopyDiffLeftToRightItem.getAction().getToolTipText();
-					fCenterButton.setToolTipText(tt);
-					fCenterButton.setBounds(r);
-					fCenterButton.setVisible(true);										
-				} else
-					fButtonDiff= null;
-			} else {
-				fCenterButton.setVisible(false);
-				fButtonDiff= null;
-			}
-		}
-		return fButtonDiff != null;
-	}
-	
-	/**
-	 * Returns width of central canvas.
-	 * Overridden from ContentMergeViewer.
-	 */
-	/* package */ int getCenterWidth() {
-		if (fSynchronizedScrolling)
-			return CENTER_WIDTH;
-		return super.getCenterWidth();
-	}
-
-	/**
-	 * Creates and initializes a text part.
-	 */
-	private MergeSourceViewer createPart(Composite parent) {
-		
-		final MergeSourceViewer part= new MergeSourceViewer(parent, getResourceBundle());
-		final StyledText te= part.getTextWidget();
-		
-		if (!fConfirmSave)
-			part.hideSaveAction();
-		
-		te.addPaintListener(
-			new PaintListener() {
-				public void paintControl(PaintEvent e) {
-					paint(e, part);
-				}
-			}
-		);		
-		te.addKeyListener(
-			new KeyAdapter() {
-				public void keyPressed(KeyEvent e) {
-					handleSelectionChanged(part);
-				}
-			}
-		);
-		te.addMouseListener(
-			new MouseAdapter() {
-				public void mouseDown(MouseEvent e) {
-					//syncViewport(part);
-					handleSelectionChanged(part);
-				}
-			}
-		);		
-					
-		te.addFocusListener(
-			new FocusAdapter() {
-				public void focusGained(FocusEvent fe) {
-					fFocusPart= part;
-					connectGlobalActions(fFocusPart);
-				}
-				public void focusLost(FocusEvent fe) {
-					connectGlobalActions(null);
-				}
-			}
-		);
-		
-		part.addViewportListener(
-			new IViewportListener() {
-				public void viewportChanged(int verticalPosition) {
-					syncViewport(part);
-				}
-			}
-		);
-		
-		Font font= JFaceResources.getFont(fSymbolicFontName);
-		if (font != null)
-			te.setFont(font);
-		
-		if (fBackground != null)	// not default
-			te.setBackground(getColor(parent.getDisplay(), fBackground));			
-		
-		configureTextViewer(part);
-		
-		return part;
-	}
-	
-	private void connectGlobalActions(MergeSourceViewer part) {
-		IActionBars actionBars= Utilities.findActionBars(fComposite);
-		if (actionBars != null) {
-			for (int i= 0; i < GLOBAL_ACTIONS.length; i++) {
-				IAction action= null; 
-				if (part != null) {
-					action= part.getAction(TEXT_ACTIONS[i]);
-					if (action == null && TEXT_ACTIONS[i].equals(MergeSourceViewer.SAVE_ID)) {			
-						if (part == fLeft)
-							action= fLeftSaveAction;
-						else
-							action= fRightSaveAction;
-					}
-				}
-				actionBars.setGlobalActionHandler(GLOBAL_ACTIONS[i], action);
-			}
-			actionBars.updateActionBars();
-		}
-	}
-	
-	ITypedElement getLeg(char type, Object input) {
-		if (input instanceof ICompareInput) {
-			switch (type) {
-			case 'A':
-				return ((ICompareInput)input).getAncestor();
-			case 'L':
-				return ((ICompareInput)input).getLeft();
-			case 'R':
-				return ((ICompareInput)input).getRight();
-			}
-		}
-		return null;
-	}
-
-	IDocument getDocument(char type, Object input) {
-		ITypedElement te= getLeg(type, input);
-		if (te instanceof IDocument)
-			return (IDocument) te;
-		if (te instanceof IDocumentRange)
-			return ((IDocumentRange) te).getDocument();
-		if (te instanceof IStreamContentAccessor)
-			return DocumentManager.get(te);
-		return null;
-	}
-	
-	IDocument getDocument2(char type, Object input) {
-		IDocument doc= getDocument(type, input);
-		if (doc != null)
-			return doc;
-			
-		if (input instanceof IDiffElement) {
-			IDiffContainer parent= ((IDiffElement)input).getParent();
-			return getDocument(type, parent);
-		}
-		return null;
-	}
-	
-	/**
-	 * Returns true if the given inputs map to the same documents
-	 */
-	boolean sameDoc(char type, Object newInput, Object oldInput) {
-		IDocument newDoc= getDocument2(type, newInput);
-		IDocument oldDoc= getDocument2(type, oldInput);
-		return newDoc == oldDoc;
-	}
-	
-	/**
-	 * Overridden to prevent save confirmation if new input is sub document of current input.
-	 * @param newInput the new input of this viewer, or <code>null</code> if there is no new input
-	 * @param oldInput the old input element, or <code>null</code> if there was previously no input
-	 * @return <code>true</code> if saving was successful, or if the user didn't want to save (by pressing 'NO' in the confirmation dialog).
-	 * @since 2.0
-	 */
-	protected boolean doSave(Object newInput, Object oldInput) {
-		
-		if (oldInput != null && newInput != null) {
-			// check whether underlying documents have changed.
-			if (sameDoc('A', newInput, oldInput) &&
-					sameDoc('L', newInput, oldInput) &&
-						sameDoc('R', newInput, oldInput)) {
-				if (DEBUG) System.out.println("----- Same docs !!!!");	//$NON-NLS-1$
-				return false;
-			}
-		}
-		
-		if (DEBUG) System.out.println("***** New docs !!!!");	//$NON-NLS-1$
-		
-		IDocument aDoc= getDocument2('A', oldInput);
-		DocumentManager.remove(aDoc);
-		IDocument lDoc= getDocument2('L', oldInput);
-		DocumentManager.remove(lDoc);
-		IDocument rDoc= getDocument2('R', oldInput);
-		DocumentManager.remove(rDoc);
-		
-		if (DEBUG)
-			DocumentManager.dump();
-		
-		return super.doSave(newInput, oldInput);
-	}
-	
-	private ITypedElement getParent(char type) {
-		Object input= getInput();
-		if (input instanceof IDiffElement) {
-			IDiffContainer parent= ((IDiffElement)input).getParent();
-			return getLeg(type, parent);
-		}
-		return null;
-	}
-		
-	/**
-	 * Initializes the text viewers of the three content areas with the given input objects.
-	 * Subclasses may extend.
-	 */
-	protected void updateContent(Object ancestor, Object left, Object right) {
-		
-		boolean emptyInput= (ancestor == null && left == null && right == null);
-
-		int n= 0;
-		if (left != null)
-			n++;
-		if (right != null)
-			n++;
-		fHiglightRanges= n > 1;
-		
-		// clear stuff
-		fCurrentDiff= null;
-	 	fChangeDiffs= null;
-		fAllDiffs= null;
-		fEndOfDocReached= false;
-		
-		CompareConfiguration cc= getCompareConfiguration();
-		IMergeViewerContentProvider cp= getMergeContentProvider();
-		
-		boolean rightEditable= cc.isRightEditable() && cp.isRightEditable(getInput());
-		boolean leftEditable= cc.isLeftEditable() && cp.isLeftEditable(getInput());
-		
-		fRight.setEditable(rightEditable);
-		fLeft.setEditable(leftEditable);
-																					
-		// set new documents
-		setDocument(fLeft, 'L', left);
-		fLeftLineCount= fLeft.getLineCount();
-		setDocument(fRight, 'R', right);
-		fRightLineCount= fRight.getLineCount();
-		
-		setDocument(fAncestor, 'A', ancestor);
-					
-		doDiff();
-				
-		invalidateLines();
-		updateVScrollBar();
-		refreshBirdsEyeView();
-		
-		if (!emptyInput && !fComposite.isDisposed()) {
-			if (true) {	// see #13844
-				selectFirstDiff();
-			} else {
-				// delay so that StyledText widget gets a chance to resize itself
-				// (otherwise selectFirstDiff would not know its visible area)
-				fComposite.getDisplay().asyncExec(
-					new Runnable() {
-						public void run() {
-							selectFirstDiff();
-						}
-					}
-				);
-			}
-		}
-	}
-	
-	private void updateDiffBackground(Diff diff) {
-		
-		if (! fHiglightRanges)
-			return;
-		
-		if (diff == null || diff.fIsToken)
-			return;
-			
-		if (fShowCurrentOnly && !isCurrentDiff(diff))
-			return;
-						
-		Color c= getColor(null, getFillColor(diff));
-		if (c == null)
-			return;
-			
-		if (isThreeWay())
-			fAncestor.setLineBackground(diff.fAncestorPos, c);
-		fLeft.setLineBackground(diff.fLeftPos, c);
-		fRight.setLineBackground(diff.fRightPos, c);
-	}
-	
-	private void updateAllDiffBackgrounds(Display display) {
-		if (fChangeDiffs != null) {
-			boolean threeWay= isThreeWay();
-			Iterator iter= fChangeDiffs.iterator();
-			while (iter.hasNext()) {
-				Diff diff= (Diff) iter.next();
-				Color c= getColor(display, getFillColor(diff));
-				if (threeWay)
-					fAncestor.setLineBackground(diff.fAncestorPos, c);
-				fLeft.setLineBackground(diff.fLeftPos, c);
-				fRight.setLineBackground(diff.fRightPos, c);
-			}
-		}
-	}
-	
-	boolean isCurrentDiff(Diff diff) {
-		if (diff == null)
-			return false;
-		if (diff == fCurrentDiff)
-			return true;
-		if (fCurrentDiff != null && fCurrentDiff.fParent == diff)
-			return true;
-		return false;
-	}
-	
-	/**
-	 * Called whenver one of the documents changes.
-	 * Sets the dirty state of this viewer and updates the lines.
-	 * Implements IDocumentListener.
-	 */
-	private void documentChanged(DocumentEvent e) {
-		
-		IDocument doc= e.getDocument();
-		
-		if (doc == fLeft.getDocument()) {
-			setLeftDirty(true);
-		} else if (doc == fRight.getDocument()) {
-			setRightDirty(true);
-		}
-
-		updateLines(doc);
-	}
-	
-//	private static ITypedElement getLeg(ICompareInput input, char type) {
-//		switch (type) {
-//		case 'A':
-//			return input.getAncestor();
-//		case 'L':
-//			return input.getLeft();
-//		case 'R':
-//			return input.getRight();
-//		}
-//		return null;			
-//	}
-	
-	/**
-	 * This method is called if a range of text on one side is copied into an empty subdocument
-	 * on the other side. The method returns the position where the subdocument is placed into the base document.
-	 * This default implementation determines the position by using the text range differencer.
-	 * However this position is not always optimal for specific types of text.
-	 * So subclasses (which are awrae of the type of text they are dealing with) 
-	 * may override this method to find a better position where to insert a newly added
-	 * piece of text.
-	 * @param type the side for which the insertion position should be determined: 'A' for ancestor, 'L' for left hand side, 'R' for right hand side.
-	 * @param input the current input object of this viewer
-	 * @since 2.0
-	 */
-	protected int findInsertionPosition(char type, ICompareInput input) {
-			
-		ITypedElement other= null;
-		char otherType= 0;
-		
-		switch (type) {
-		case 'A':
-			other= input.getLeft();
-			otherType= 'L';
-			if (other == null) {
-				other= input.getRight();
-				otherType= 'R';
-			}
-			break;
-		case 'L':
-			other= input.getRight();
-			otherType= 'R';
-			if (other == null) {
-				other= input.getAncestor();
-				otherType= 'A';
-			}
-			break;
-		case 'R':
-			other= input.getLeft();
-			otherType= 'L';
-			if (other == null) {
-				other= input.getAncestor();
-				otherType= 'A';
-			}
-			break;
-		}
-		
-		if (other instanceof IDocumentRange) {
-			IDocumentRange dr= (IDocumentRange) other;
-			Position p= dr.getRange();	
-			Diff diff= findDiff(otherType, p.offset);
-			if (diff != null) {
-				switch (type) {
-				case 'A':
-					if (diff.fAncestorPos != null)
-						return diff.fAncestorPos.offset;
-					break;
-				case 'L':
-					if (diff.fLeftPos != null)
-						return diff.fLeftPos.offset;
-					break;
-				case 'R':
-					if (diff.fRightPos != null)
-						return diff.fRightPos.offset;
-					break;
-				}
-			}
-		}
-		return 0;
-	}
-	
-	/**
-	 * Returns true if a new Document could be installed.
-	 */
-	private boolean setDocument(MergeSourceViewer tp, char type, Object o) {
-		
-		if (tp == null)
-			return false;
-				
-		IDocument newDoc= null;
-		Position range= null;
-		
-		if (o instanceof IDocumentRange) {
-			newDoc= ((IDocumentRange)o).getDocument();
-			range= ((IDocumentRange)o).getRange();
-
-		} else if (o instanceof IDocument) {
-			newDoc= (IDocument) o;
-			
-		} else if (o instanceof IStreamContentAccessor) {
-			
-			newDoc= DocumentManager.get(o);
-			if (newDoc == null) {
-				IStreamContentAccessor sca= (IStreamContentAccessor) o;
-				String s= null;
-			
-				try {
-					s= Utilities.readString(sca.getContents());
-				} catch (CoreException ex) {
-				}
-	
-				newDoc= new Document(s != null ? s : ""); //$NON-NLS-1$
-				DocumentManager.put(o, newDoc);
-				IDocumentPartitioner partitioner= getDocumentPartitioner();
-				if (partitioner != null) {
-					newDoc.setDocumentPartitioner(partitioner);
-					partitioner.connect(newDoc);
-				}
-			}
-		} else if (o == null) {	// deletion on one side
-			
-			ITypedElement parent= getParent(type);	// we try to find an insertion position within the deletion's parent
-			
-			if (parent instanceof IDocumentRange) {
-				newDoc= ((IDocumentRange)parent).getDocument();
-				newDoc.addPositionCategory(IDocumentRange.RANGE_CATEGORY);
-				Object input= getInput();
-				range= getNewRange(type, input);
-				if (range == null) {
-					int pos= 0;
-					if (input instanceof ICompareInput)
-						pos= findInsertionPosition(type, (ICompareInput)input);
-					range= new Position(pos, 0);
-					try {
-						newDoc.addPosition(IDocumentRange.RANGE_CATEGORY, range);
-					} catch (BadPositionCategoryException ex) {
-						if (DEBUG) System.out.println("BadPositionCategoryException: " + ex);	//$NON-NLS-1$
-					} catch (BadLocationException ex) {
-						if (DEBUG) System.out.println("BadLocationException: " + ex);	//$NON-NLS-1$
-					}
-					addNewRange(type, input, range);
-				}
-			} else if (parent instanceof IDocument) {
-				newDoc= ((IDocumentRange)o).getDocument();
-			}
-		}
-
-		boolean enabled= true;
-		if (newDoc == null) {
-			//System.out.println("setDocument: create new Document");
-			newDoc= new Document(""); //$NON-NLS-1$
-			enabled= false;
-		}
-		
-		IDocument oldDoc= tp.getDocument();
-		
-		if (newDoc != oldDoc) {
-			
-			// got a new document
-			
-			unsetDocument(tp);
-			
-			if (newDoc != null) {
-				newDoc.addPositionCategory(IDocumentRange.RANGE_CATEGORY);
-				if (fPositionUpdater == null)
-					fPositionUpdater= new ChildPositionUpdater(IDocumentRange.RANGE_CATEGORY);
-				else
-					newDoc.removePositionUpdater(fPositionUpdater);
-				newDoc.addPositionUpdater(fPositionUpdater);
-			}
-
-			// install new document
-			if (newDoc != null) {
-						
-				tp.setRegion(range);
-				if (fSubDoc) {
-					if (range != null) {
-						IRegion r= normalizeDocumentRegion(newDoc, toRegion(range));
-						tp.setDocument(newDoc, r.getOffset(), r.getLength());
-					} else
-						tp.setDocument(newDoc);
-				} else
-					tp.setDocument(newDoc);
-								
-				newDoc.addDocumentListener(fDocumentListener);
-			}
-			
-		} else {	// same document but different range
-			
-			tp.setRegion(range);
-			if (fSubDoc) {
-				if (range != null) {
-					IRegion r= normalizeDocumentRegion(newDoc, toRegion(range));
-					tp.setVisibleRegion(r.getOffset(), r.getLength());
-				} else
-					tp.resetVisibleRegion();
-			} else
-				tp.resetVisibleRegion();
-		}
-		
-		tp.setEnabled(enabled);
-
-		return enabled;
-	}
-	
-	private Position getNewRange(char type, Object input) {
-		switch (type) {
-		case 'A':
-			return (Position) fNewAncestorRanges.get(input);
-		case 'L':
-			return (Position) fNewLeftRanges.get(input);
-		case 'R':
-			return (Position) fNewRightRanges.get(input);
-		}
-		return null;
-	}
-	
-	private void addNewRange(char type, Object input, Position range) {
-		switch (type) {
-		case 'A':
-			fNewAncestorRanges.put(input, range);
-			break;
-		case 'L':
-			fNewLeftRanges.put(input, range);
-			break;
-		case 'R':
-			fNewRightRanges.put(input, range);
-			break;
-		}
-	}
-
-	private void unsetDocument(MergeSourceViewer tp) {
-		IDocument oldDoc= tp.getDocument();
-		if (oldDoc != null) {
-			// deinstall old positions
-			if (fPositionUpdater != null)
-				oldDoc.removePositionUpdater(fPositionUpdater);
-			try {
-				oldDoc.removePositionCategory(IDocumentRange.RANGE_CATEGORY);
-			} catch (BadPositionCategoryException ex) {
-			}
-			
-			oldDoc.removeDocumentListener(fDocumentListener);
-		}
-	}
-	
-	/**
-	 * Returns the contents of the underlying document as an array of bytes.
-	 * 
-	 * @param left if <code>true</code> the contents of the left side is returned; otherwise the right side
-	 * @return the contents of the left or right document or null
-	 */
-	protected byte[] getContents(boolean left) {
-		MergeSourceViewer v= left ? fLeft : fRight;
-		if (v != null) {
-			IDocument d= v.getDocument();
-			if (d != null) {
-				String contents= d.get();
-				if (contents != null) {
-					byte[] bytes;
-					try {
-						bytes= contents.getBytes(ResourcesPlugin.getEncoding());
-					} catch(UnsupportedEncodingException ex) {
-						// use default encoding
-						bytes= contents.getBytes();
-					}
-					return bytes;
-				}
-			}
-		}	
-		return null;	
-	}
-				
-	private IRegion normalizeDocumentRegion(IDocument doc, IRegion region) {
-		
-		if (region == null || doc == null)
-			return region;
-			
-		int maxLength= doc.getLength();
-		
-		int start= region.getOffset();
-		if (start < 0)
-			start= 0;
-		else if (start > maxLength)
-			start= maxLength;
-			
-		int length= region.getLength();
-		if (length < 0)
-			length= 0;
-		else if (start + length > maxLength)
-			length= maxLength - start;
-			
-		return new Region(start, length);
-	}
-		
-	protected final void handleResizeAncestor(int x, int y, int width, int height) {
-		if (width > 0) {
-			Rectangle trim= fLeft.getTextWidget().computeTrim(0, 0, 0, 0);
-			int scrollbarHeight= trim.height;
-			if (Utilities.okToUse(fAncestorCanvas))
-				fAncestorCanvas.setVisible(true);
-			if (fAncestor.isControlOkToUse())
-				fAncestor.getTextWidget().setVisible(true);
-			
-			if (fAncestorCanvas != null) {
-				fAncestorCanvas.setBounds(x, y, fMarginWidth, height-scrollbarHeight);
-				x+= fMarginWidth;
-				width-= fMarginWidth;
-			}
-			fAncestor.getTextWidget().setBounds(x, y, width, height);
-		} else {
-			if (Utilities.okToUse(fAncestorCanvas))
-				fAncestorCanvas.setVisible(false);
-			if (fAncestor.isControlOkToUse()) {
-				StyledText t= fAncestor.getTextWidget();
-				t.setVisible(false);
-				t.setBounds(0, 0, 0, 0);
-				if (fFocusPart == fAncestor) {
-					fFocusPart= fLeft;
-					fFocusPart.getTextWidget().setFocus();
-				}
-			}
-		}
-	}
-
-	/**
-	 * Lays out everything.
-	 */
-  	protected final void handleResizeLeftRight(int x, int y, int width1, int centerWidth, int width2,  int height) {
-  				
-  		if (fBirdsEyeCanvas != null)
-  			width2-= BIRDS_EYE_VIEW_WIDTH;
-  			
-		Rectangle trim= fLeft.getTextWidget().computeTrim(0, 0, 0, 0);
-		int scrollbarHeight= trim.height;
-		if (fIsCarbon)
-			scrollbarHeight-= 3;	// get rid of the focus ring
-
-		Composite composite= (Composite) getControl();
-
-		int leftTextWidth= width1;
-		if (fLeftCanvas != null) {
-			fLeftCanvas.setBounds(x, y, fMarginWidth, height-scrollbarHeight);
-			x+= fMarginWidth;
-			leftTextWidth-= fMarginWidth;
-		}
-		
-		fLeft.getTextWidget().setBounds(x, y, leftTextWidth, height);
-		x+= leftTextWidth;
-		
-		if (fCenter == null || fCenter.isDisposed())
-			fCenter= createCenter(composite);
-		fCenter.setBounds(x, y, centerWidth, height-scrollbarHeight);
-		x+= centerWidth;
-		
-		if (!fSynchronizedScrolling) {	// canvas is to the left of text
-			if (fRightCanvas != null) {
-				fRightCanvas.setBounds(x, y, fMarginWidth, height-scrollbarHeight);
-				fRightCanvas.redraw();
-				x+= fMarginWidth;
-			}
-			// we draw the canvas to the left of the text widget
-		}
-		
-		int scrollbarWidth= 0;
-		if (fSynchronizedScrolling && fScrollCanvas != null) {
-			//scrollbarWidth= fScrollCanvas.computeTrim(0, 0, 0, 0).width;
-			scrollbarWidth= fLeft.getTextWidget().computeTrim(0, 0, 0, 0).width;
-			if (fIsCarbon)
-				scrollbarWidth-= 6;	// get rid of the focus ring
-		}
-		int rightTextWidth= width2-scrollbarWidth;
-		if (fRightCanvas != null)
-			rightTextWidth-= fMarginWidth;
-		fRight.getTextWidget().setBounds(x, y, rightTextWidth, height);
-		x+= rightTextWidth;
-			
-		if (fSynchronizedScrolling) {
-			if (fRightCanvas != null) {	// canvas is to the right of the text
-				fRightCanvas.setBounds(x, y, fMarginWidth, height-scrollbarHeight);
-				x+= fMarginWidth;
-			}
-			if (fScrollCanvas != null)
-				fScrollCanvas.setBounds(x, y, scrollbarWidth, height-scrollbarHeight);
-		}
-		
-  		if (fBirdsEyeCanvas != null) {
-  			int verticalScrollbarButtonHeight= scrollbarWidth;
-			int horizontalScrollbarButtonHeight= scrollbarHeight;
-			if (fIsCarbon) {
-				verticalScrollbarButtonHeight+= 2;
-				horizontalScrollbarButtonHeight= 18;
-			}
-  			if (fSummaryHeader != null)
-				fSummaryHeader.setBounds(x+scrollbarWidth, y, BIRDS_EYE_VIEW_WIDTH, verticalScrollbarButtonHeight);
-  			y+= verticalScrollbarButtonHeight;
-  			fBirdsEyeCanvas.setBounds(x+scrollbarWidth, y, BIRDS_EYE_VIEW_WIDTH, height-(2*verticalScrollbarButtonHeight+horizontalScrollbarButtonHeight));
-   		}
-		
-		// doesn't work since TextEditors don't have their correct size yet.
-		updateVScrollBar(); 
-		refreshBirdsEyeView();
-	}
-							
-	/**
-	 * Track selection changes to update the current Diff.
-	 */
-	private void handleSelectionChanged(MergeSourceViewer tw) {
-		Point p= tw.getSelectedRange();
-		Diff d= findDiff(tw, p.x, p.x+p.y);
-		updateStatus(d);
-		setCurrentDiff(d, false);	// don't select or reveal
-	}
-
-	private static IRegion toRegion(Position position) {
-		if (position != null)
-			return new Region(position.getOffset(), position.getLength());
-		return null;
-	}
-	
-	//---- the differencing
-
-	private static int maxWork(IRangeComparator a, IRangeComparator l, IRangeComparator r) {
-		int ln= l.getRangeCount();
-		int rn= r.getRangeCount();
-		if (a != null) {
-			int an= a.getRangeCount();
-			return (2 * Math.max(an, ln)) + (2 * Math.max(an, rn));
-		}
-		return 2 * Math.max(ln, rn);
-	}
-	
-	/**
-	 * Perform a two level 2- or 3-way diff.
-	 * The first level is based on line comparison, the second level on token comparison.
-	 */
-	private void doDiff() {
-						
-		fAllDiffs= new ArrayList();
-		fChangeDiffs= new ArrayList();
-		fCurrentDiff= null;
-		
-		IDocument aDoc= null;
-		IDocument lDoc= fLeft.getDocument();
-		IDocument rDoc= fRight.getDocument();
-		if (lDoc == null || rDoc == null)
-			return;
-			
-		Position aRegion= null;
-		Position lRegion= fLeft.getRegion();
-		Position rRegion= fRight.getRegion();
-				
-		boolean threeWay= isThreeWay();
-		
-		if (threeWay && !fIgnoreAncestor) {
-			aDoc= fAncestor.getDocument();
-			aRegion= fAncestor.getRegion();
-		}
-		
-		fAncestor.resetLineBackground();
-		fLeft.resetLineBackground();
-		fRight.resetLineBackground();
-		
-		boolean ignoreWhiteSpace= Utilities.getBoolean(getCompareConfiguration(), CompareConfiguration.IGNORE_WHITESPACE, false);		
-		
-		DocLineComparator sright= new DocLineComparator(rDoc, toRegion(rRegion), ignoreWhiteSpace);
-		DocLineComparator sleft= new DocLineComparator(lDoc, toRegion(lRegion), ignoreWhiteSpace);
-		DocLineComparator sancestor= null;
-		if (aDoc != null)
-			sancestor= new DocLineComparator(aDoc, toRegion(aRegion), ignoreWhiteSpace);
-			
-		if (!fSubDoc && rRegion != null && lRegion != null) {
-			// we have to add a diff for the ignored lines
-			
-			int astart= 0;
-			int as= 0;
-			if (aRegion != null) {
-				astart= aRegion.getOffset();
-				as= Math.max(0, astart-1);
-			}
-			int ys= Math.max(0, lRegion.getOffset()-1);
-			int ms= Math.max(0, rRegion.getOffset()-1);
-			
-			if (as > 0 || ys > 0 || ms > 0) {
-				Diff diff= new Diff(null, RangeDifference.NOCHANGE,
-					aDoc, aRegion, 0, astart,
-					lDoc, lRegion, 0, lRegion.getOffset(),
-					rDoc, rRegion, 0, rRegion.getOffset());
-				fAllDiffs.add(diff);
-			}
-		}
-		
-		final ResourceBundle bundle= getResourceBundle();
-			
-		final Object[] result= new Object[1];
-		final DocLineComparator sa= sancestor, sl= sleft, sr= sright;
-		IRunnableWithProgress runnable= new IRunnableWithProgress() {
-			public void run(IProgressMonitor monitor) throws InterruptedException, InvocationTargetException {
-				String progressTitle= Utilities.getString(bundle, "compareProgressTask.title"); //$NON-NLS-1$
-				monitor.beginTask(progressTitle, maxWork(sa, sl, sr));
-				try {
-					result[0]= RangeDifferencer.findRanges(monitor, sa, sl, sr);
-				} catch (OutOfMemoryError ex) {
-					System.gc();
-					throw new InvocationTargetException(ex);
-				}
-				if (monitor.isCanceled())	{ // cancelled
-					throw new InterruptedException();
-				}
-				monitor.done();
-			}
-		};
-		
-		RangeDifference[] e= null;
-		try {
-			TimeoutContext.run(true, TIMEOUT, getControl().getShell(), runnable);
-			e= (RangeDifference[]) result[0];
-		} catch (InvocationTargetException ex) {
-			String title= Utilities.getString(bundle, "tooComplexError.title"); //$NON-NLS-1$
-			String format= Utilities.getString(bundle, "tooComplexError.format"); //$NON-NLS-1$
-			String msg= MessageFormat.format(format, new Object[] { Integer.toString(TIMEOUT/1000) } );
-			MessageDialog.openError(fComposite.getShell(), title, msg);
-			e= null;
-		} catch (InterruptedException ex) {
-			// 
-		}
-					
-		if (e == null) {
-			// we create a NOCHANGE range for the whole document
-			Diff diff= new Diff(null, RangeDifference.NOCHANGE,
-				aDoc, aRegion, 0, aDoc != null ? aDoc.getLength() : 0,
-				lDoc, lRegion, 0, lDoc.getLength(),
-				rDoc, rRegion, 0, rDoc.getLength());	
-				
-			fAllDiffs.add(diff);
-		} else {
-			for (int i= 0; i < e.length; i++) {
-				String a= null, s= null, d= null;
-				RangeDifference es= e[i];
-				
-				int kind= es.kind();
-				
-				int ancestorStart= 0;
-				int ancestorEnd= 0;
-				if (sancestor != null) {
-					ancestorStart= sancestor.getTokenStart(es.ancestorStart());
-					ancestorEnd= getTokenEnd2(sancestor, es.ancestorStart(), es.ancestorLength());
-				}
-				
-				int leftStart= sleft.getTokenStart(es.leftStart());
-				int leftEnd= getTokenEnd2(sleft, es.leftStart(), es.leftLength());
-				
-				int rightStart= sright.getTokenStart(es.rightStart());
-				int rightEnd= getTokenEnd2(sright, es.rightStart(), es.rightLength());
-				
-				Diff diff= new Diff(null, kind,
-					aDoc, aRegion, ancestorStart, ancestorEnd,
-					lDoc, lRegion, leftStart, leftEnd,
-					rDoc, rRegion, rightStart, rightEnd);	
-				
-				fAllDiffs.add(diff);	// remember all range diffs for scrolling
-		
-				if (ignoreWhiteSpace) {
-					if (sancestor != null)
-						a= extract2(aDoc, sancestor, es.ancestorStart(), es.ancestorLength());
-					s= extract2(lDoc, sleft, es.leftStart(), es.leftLength());
-					d= extract2(rDoc, sright, es.rightStart(), es.rightLength());
-				
-					if ((a == null || a.trim().length() == 0) && s.trim().length() == 0 && d.trim().length() == 0) {
-						diff.fIsWhitespace= true;
-						continue;
-					}
-				}
-		
-				if (useChange(kind)) {
-					fChangeDiffs.add(diff);	// here we remember only the real diffs
-					updateDiffBackground(diff);
-		
-					if (s == null)
-						s= extract2(lDoc, sleft, es.leftStart(), es.leftLength());
-					if (d == null)
-						d= extract2(rDoc, sright, es.rightStart(), es.rightLength());
-					
-					if (s.length() > 0 && d.length() > 0) {
-						if (a == null && sancestor != null)
-							a= extract2(aDoc, sancestor, es.ancestorStart(), es.ancestorLength());
-						if (USE_MERGING_TOKEN_DIFF)
-							mergingTokenDiff(diff, aDoc, a, rDoc, d, lDoc, s);
-						else
-							simpleTokenDiff(diff, aDoc, a, rDoc, d, lDoc, s);
-					}
-				}
-			}
-		}
-		
-		if (!fSubDoc && rRegion != null && lRegion != null) {
-			// we have to add a diff for the ignored lines
-			
-			int aEnd= 0;
-			int aLen= 0;
-			if (aRegion != null && aDoc != null) {
-				aEnd= aRegion.getOffset()+aRegion.getLength();
-				aLen= aDoc.getLength();
-			}
-			Diff diff= new Diff(null, RangeDifference.NOCHANGE,
-				aDoc, aRegion, aEnd, aLen,
-				lDoc, lRegion, lRegion.getOffset()+lRegion.getLength(), lDoc.getLength(),
-				rDoc, rRegion, rRegion.getOffset()+rRegion.getLength(), rDoc.getLength());
-			fAllDiffs.add(diff);
-		}		
-	}
-	
-	private Diff findDiff(char type, int pos) {
-								
-		IDocument aDoc= null;
-		IDocument lDoc= fLeft.getDocument();
-		IDocument rDoc= fRight.getDocument();
-		if (lDoc == null || rDoc == null)
-			return null;
-			
-		Position aRegion= null;
-		Position lRegion= null;
-		Position rRegion= null;
-				
-		boolean threeWay= isThreeWay();
-		
-		if (threeWay && !fIgnoreAncestor)
-			aDoc= fAncestor.getDocument();
-
-		boolean ignoreWhiteSpace= Utilities.getBoolean(getCompareConfiguration(), CompareConfiguration.IGNORE_WHITESPACE, false);		
-		
-		DocLineComparator sright= new DocLineComparator(rDoc, toRegion(rRegion), ignoreWhiteSpace);
-		DocLineComparator sleft= new DocLineComparator(lDoc, toRegion(lRegion), ignoreWhiteSpace);
-		DocLineComparator sancestor= null;
-		if (aDoc != null)
-			sancestor= new DocLineComparator(aDoc, toRegion(aRegion), ignoreWhiteSpace);
-			
-		final ResourceBundle bundle= getResourceBundle();
-			
-		final Object[] result= new Object[1];
-		final DocLineComparator sa= sancestor, sl= sleft, sr= sright;
-		IRunnableWithProgress runnable= new IRunnableWithProgress() {
-			public void run(IProgressMonitor monitor) throws InterruptedException, InvocationTargetException {
-				String progressTitle= Utilities.getString(bundle, "compareProgressTask.title"); //$NON-NLS-1$
-				monitor.beginTask(progressTitle, maxWork(sa, sl, sr));
-				try {
-					result[0]= RangeDifferencer.findRanges(monitor, sa, sl, sr);
-				} catch (OutOfMemoryError ex) {
-					System.gc();
-					throw new InvocationTargetException(ex);
-				}
-				if (monitor.isCanceled())	{ // cancelled
-					throw new InterruptedException();
-				}
-				monitor.done();
-			}
-		};
-		
-		RangeDifference[] e= null;
-		try {
-			TimeoutContext.run(true, TIMEOUT, getControl().getShell(), runnable);
-			e= (RangeDifference[]) result[0];
-		} catch (InvocationTargetException ex) {
-			String title= Utilities.getString(bundle, "tooComplexError.title"); //$NON-NLS-1$
-			String format= Utilities.getString(bundle, "tooComplexError.format"); //$NON-NLS-1$
-			String msg= MessageFormat.format(format, new Object[] { Integer.toString(TIMEOUT/1000) } );
-			MessageDialog.openError(fComposite.getShell(), title, msg);
-			e= null;
-		} catch (InterruptedException ex) {
-			// 
-		}
-					
-		if (e != null) {
-			for (int i= 0; i < e.length; i++) {
-				RangeDifference es= e[i];
-				
-				int kind= es.kind();
-				
-				int ancestorStart= 0;
-				int ancestorEnd= 0;
-				if (sancestor != null) {
-					ancestorStart= sancestor.getTokenStart(es.ancestorStart());
-					ancestorEnd= getTokenEnd2(sancestor, es.ancestorStart(), es.ancestorLength());
-				}
-				
-				int leftStart= sleft.getTokenStart(es.leftStart());
-				int leftEnd= getTokenEnd2(sleft, es.leftStart(), es.leftLength());
-				
-				int rightStart= sright.getTokenStart(es.rightStart());
-				int rightEnd= getTokenEnd2(sright, es.rightStart(), es.rightLength());
-				
-				Diff diff= new Diff(null, kind,
-					aDoc, aRegion, ancestorStart, ancestorEnd,
-					lDoc, lRegion, leftStart, leftEnd,
-					rDoc, rRegion, rightStart, rightEnd);	
-
-				if (diff.isInRange(type, pos))
-					return diff;
-			}
-		}
-		
-		return null;
-	}
-	
-	/**
-	 * Returns true if kind of change should be shown.
-	 */
-	private boolean useChange(int kind) {
-		if (kind == RangeDifference.NOCHANGE)
-			return false;
-		if (kind == RangeDifference.ANCESTOR)
-			return fShowPseudoConflicts;
-		return true;
-	}
-	
-	private int getTokenEnd(ITokenComparator tc, int start, int count) {
-		if (count <= 0)
-			return tc.getTokenStart(start);
-		int index= start + count - 1;
-		return tc.getTokenStart(index) + tc.getTokenLength(index);
-	}
-	
-	private static int getTokenEnd2(ITokenComparator tc, int start, int length) {
-		return tc.getTokenStart(start + length);
-	}
-
-	/**
-	 * Returns the content of lines in the specified range as a String.
-	 * This includes the line separators.
-	 *
-	 * @param doc the document from which to extract the characters
-	 * @param start index of first line
-	 * @param length number of lines
-	 * @return the contents of the specified line range as a String
-	 */
-	private String extract2(IDocument doc, ITokenComparator tc, int start, int length) {
-		int count= tc.getRangeCount();
-		if (length > 0 && count > 0) {
-			
-//			
-//			int startPos= tc.getTokenStart(start);
-//			int endPos= startPos;
-//			
-//			if (length > 1)
-//				endPos= tc.getTokenStart(start + (length-1));
-//			endPos+= tc.getTokenLength(start + (length-1));
-//				
-
-			int startPos= tc.getTokenStart(start);
-			int endPos;
-			
-			if (length == 1) {
-				endPos= startPos + tc.getTokenLength(start);
-			} else {
-				endPos= tc.getTokenStart(start + length);
-			}
-
-			try {
-				return doc.get(startPos, endPos - startPos);
-			} catch (BadLocationException e) {
-			}
-
-		}
-		return ""; //$NON-NLS-1$
-	}
-
-	/**
-	 * Performs a token based 3-way diff on the character range specified by the given baseDiff.
-	 */
-	private void simpleTokenDiff(final Diff baseDiff,
-				IDocument ancestorDoc, String a,
-				IDocument rightDoc, String d,
-				IDocument leftDoc, String s) {
-
-		int ancestorStart= 0;
-		ITokenComparator sa= null;
-		if (ancestorDoc != null) {
-			ancestorStart= baseDiff.fAncestorPos.getOffset();
-			sa= createTokenComparator(a);
-		}
-		
-		int rightStart= baseDiff.fRightPos.getOffset();	
-		ITokenComparator sm= createTokenComparator(d);
-		
-		int leftStart= baseDiff.fLeftPos.getOffset();
-		ITokenComparator sy= createTokenComparator(s);
-		
-		RangeDifference[] e= RangeDifferencer.findRanges(sa, sy, sm);
-		for (int i= 0; i < e.length; i++) {
-			RangeDifference es= e[i];
-			int kind= es.kind();
-			if (kind != RangeDifference.NOCHANGE) {
-				
-				int ancestorStart2= ancestorStart;
-				int ancestorEnd2= ancestorStart;
-				if (ancestorDoc != null) {
-					ancestorStart2 += sa.getTokenStart(es.ancestorStart());
-					ancestorEnd2 += getTokenEnd(sa, es.ancestorStart(), es.ancestorLength());
-				}
-				
-				int leftStart2= leftStart + sy.getTokenStart(es.leftStart());
-				int leftEnd2= leftStart + getTokenEnd(sy, es.leftStart(), es.leftLength());
-				
-				int rightStart2= rightStart + sm.getTokenStart(es.rightStart());
-				int rightEnd2= rightStart + getTokenEnd(sm, es.rightStart(), es.rightLength());
-				
-				Diff diff= new Diff(baseDiff, kind,
-						ancestorDoc, null, ancestorStart2, ancestorEnd2,
-						leftDoc, null, leftStart2, leftEnd2,
-						rightDoc, null, rightStart2, rightEnd2);
-				
-				// ensure that token diff is smaller than basediff
-				int leftS= baseDiff.fLeftPos.offset;
-				int leftE= baseDiff.fLeftPos.offset+baseDiff.fLeftPos.length;
-				int rightS= baseDiff.fRightPos.offset;
-				int rightE= baseDiff.fRightPos.offset+baseDiff.fRightPos.length;
-				if (leftS != leftStart2 || leftE != leftEnd2 ||
-							rightS != rightStart2 || rightE != rightEnd2) {
-					diff.fIsToken= true;
-					// add to base Diff
-					baseDiff.add(diff);
-				}
-			}
-		}
-	}
-	
-	/**
-	 * Performs a "smart" token based 3-way diff on the character range specified by the given baseDiff.
-	 * It is "smart" because it tries to minimize the number of token diffs by merging them.
-	 */
-	private void mergingTokenDiff(Diff baseDiff, 
-				IDocument ancestorDoc, String a,
-				IDocument rightDoc, String d,
-				IDocument leftDoc, String s) {
-		ITokenComparator sa= null;
-		int ancestorStart= 0;
-		if (ancestorDoc != null) {
-			sa= createTokenComparator(a);
-			ancestorStart= baseDiff.fAncestorPos.getOffset();
-		}
-		
-		int rightStart= baseDiff.fRightPos.getOffset();	
-		ITokenComparator sm= createTokenComparator(d);
-		
-		int leftStart= baseDiff.fLeftPos.getOffset();
-		ITokenComparator sy= createTokenComparator(s);
-		
-		RangeDifference[] r= RangeDifferencer.findRanges(sa, sy, sm);
-		for (int i= 0; i < r.length; i++) {
-			RangeDifference  es= r[i];
-			// determine range of diffs in one line
-			int start= i;
-			int leftLine= -1;
-			int rightLine= -1;
-			try {
-				leftLine= leftDoc.getLineOfOffset(leftStart+sy.getTokenStart(es.leftStart()));
-				rightLine= rightDoc.getLineOfOffset(rightStart+sm.getTokenStart(es.rightStart()));
-			} catch (BadLocationException e) {
-			}
-			i++;
-			for (; i < r.length; i++) {
-				es= r[i];
-				try {
-					if (leftLine != leftDoc.getLineOfOffset(leftStart+sy.getTokenStart(es.leftStart())))
-						break;
-					if (rightLine != rightDoc.getLineOfOffset(rightStart+sm.getTokenStart(es.rightStart())))
-						break;
-				} catch (BadLocationException e) {
-				}
-			}
-			int end= i;
-			
-			// find first diff from left
-			RangeDifference first= null;
-			for (int ii= start; ii < end; ii++) {
-				es= r[ii];
-				if (useChange(es.kind())) {
-					first= es;
-					break;
-				}
-			}
-			
-			// find first diff from mine
-			RangeDifference last= null;
-			for (int ii= end-1; ii >= start; ii--) {
-				es= r[ii];
-				if (useChange(es.kind())) {
-					last= es;
-					break;
-				}
-			}
-			
-			if (first != null && last != null) {
-				
-				int ancestorStart2= 0;
-				int ancestorEnd2= 0;
-				if (ancestorDoc != null) {
-					ancestorStart2= ancestorStart+sa.getTokenStart(first.ancestorStart());
-					ancestorEnd2= ancestorStart+getTokenEnd(sa, last.ancestorStart(), last.ancestorLength());
-				}
-				
-				int leftStart2= leftStart+sy.getTokenStart(first.leftStart());
-				int leftEnd2= leftStart+getTokenEnd(sy, last.leftStart(), last.leftLength());
-				
-				int rightStart2= rightStart+sm.getTokenStart(first.rightStart());
-				int rightEnd2= rightStart+getTokenEnd(sm, last.rightStart(), last.rightLength());
-				Diff diff= new Diff(baseDiff, first.kind(),
-							ancestorDoc, null, ancestorStart2, ancestorEnd2+1,
-							leftDoc, null, leftStart2, leftEnd2+1,
-							rightDoc, null, rightStart2, rightEnd2+1);	
-				diff.fIsToken= true;
-				baseDiff.add(diff);
-			}
-		}
-	}
-	
-	//---- update UI stuff
-	
-	private void updateControls() {
-		
-		boolean leftToRight= false;
-		boolean rightToLeft= false;
-		
-		updateStatus(fCurrentDiff);
-		updateResolveStatus();
-
-		if (fCurrentDiff != null) {
-			IMergeViewerContentProvider cp= getMergeContentProvider();
-			if (cp != null) {
-				rightToLeft= cp.isLeftEditable(getInput());
-				leftToRight= cp.isRightEditable(getInput());
-			}			
-		}
-		
-		if (fDirectionLabel != null) {
-			if (fHiglightRanges && fCurrentDiff != null && isThreeWay() && !fIgnoreAncestor) {
-				fDirectionLabel.setImage(fCurrentDiff.getImage());
-			} else {
-				fDirectionLabel.setImage(null);
-			}
-		}
-		
-		if (fCopyDiffLeftToRightItem != null)
-			((Action)fCopyDiffLeftToRightItem.getAction()).setEnabled(leftToRight);
-		if (fCopyDiffRightToLeftItem != null)
-			((Action)fCopyDiffRightToLeftItem.getAction()).setEnabled(rightToLeft);
-			
-		boolean enableNavigation= false;
-		if (fCurrentDiff == null && fChangeDiffs != null && fChangeDiffs.size() > 0)
-			enableNavigation= true;
-		else if (fChangeDiffs != null && fChangeDiffs.size() > 1)
-			enableNavigation= true;
-		else if (fCurrentDiff != null && fCurrentDiff.fDiffs != null)
-			enableNavigation= true;
-		else if (fCurrentDiff != null && fCurrentDiff.fIsToken)
-			enableNavigation= true;
-		
-		if (fNextItem != null) {
-			IAction a= fNextItem.getAction();
-			a.setEnabled(enableNavigation);
-		}
-		if (fPreviousItem != null) {
-			IAction a= fPreviousItem.getAction();
-			a.setEnabled(enableNavigation);
-		}	
-	}
-	
-	private void updateResolveStatus() {
-			
-		RGB rgb= null;
-		
-		if (showResolveUI()) {
-			// we only show red or green if there is at least one incoming or conflicting change
-			int incomingOrConflicting= 0;
-			int unresolvedIncoming= 0;
-			int unresolvedConflicting= 0;
-
-			if (fChangeDiffs != null) {
-				Iterator e= fChangeDiffs.iterator();
-				while (e.hasNext()) {
-					Diff d= (Diff) e.next();
-					if (d.isIncomingOrConflicting() /* && useChange(d.fDirection) && !d.fIsWhitespace */) {
-						incomingOrConflicting++;
-						if (!d.fResolved) {
-							if (d.fDirection == RangeDifference.CONFLICT) {
-								unresolvedConflicting++;
-								break; // we can stop here because a conflict has the maximum priority
-							} else {
-								unresolvedIncoming++;
-							}
-						}
-					}
-				}
-			}
-		
-			if (incomingOrConflicting > 0) {
-				if (unresolvedConflicting > 0)
-					rgb= SELECTED_CONFLICT;
-				else if (unresolvedIncoming > 0)
-					rgb= SELECTED_INCOMING;
-				else
-					rgb= RESOLVED;
-			}
-		}
-		
-		if (fHeaderPainter.setColor(rgb))
-			fSummaryHeader.redraw();
-	}
-
-	private void updateStatus(Diff diff) {
-		
-		if (! fShowMoreInfo)
-			return;
-		
-		IActionBars bars= Utilities.findActionBars(fComposite);
-		if (bars == null)
-			return;
-		IStatusLineManager slm= bars.getStatusLineManager();
-		if (slm == null)
-			return;
-					
-		String diffDescription;
-		
-		if (diff == null) {
-			diffDescription= CompareMessages.getString("TextMergeViewer.diffDescription.noDiff.format");	//$NON-NLS-1$
-		} else {
-			
-			if (diff.fIsToken)		// we don't show special info for token diffs
-				diff= diff.fParent;
-		
-			String format= CompareMessages.getString("TextMergeViewer.diffDescription.diff.format");	//$NON-NLS-1$
-			diffDescription= MessageFormat.format(format, 
-				new String[] {
-					getDiffType(diff),						// 0: diff type
-					getDiffNumber(diff),					// 1: diff number
-					getDiffRange(fLeft, diff.fLeftPos),		// 2: left start line
-					getDiffRange(fRight, diff.fRightPos)	// 3: left end line
-				}
-			);
-		}
-		
-		String format= CompareMessages.getString("TextMergeViewer.statusLine.format");	//$NON-NLS-1$
-		String s= MessageFormat.format(format, 
-			new String[] {
-				getCursorPosition(fLeft),	// 0: left column
-				getCursorPosition(fRight),	// 1: right column
-				diffDescription				// 2: diff description
-			}
-		);
-	
-		slm.setMessage(s);
-	}
-
-	private void clearStatus() {
-		
-		IActionBars bars= Utilities.findActionBars(fComposite);
-		if (bars == null)
-			return;
-		IStatusLineManager slm= bars.getStatusLineManager();
-		if (slm == null)
-			return;
-						
-		slm.setMessage(null);
-	}
-	
-	private String getDiffType(Diff diff) {
-		String s= ""; 	//$NON-NLS-1$
-		switch(diff.fDirection) {
-		case RangeDifference.LEFT:
-			s= CompareMessages.getString("TextMergeViewer.direction.outgoing");	//$NON-NLS-1$
-			break;
-		case RangeDifference.RIGHT:
-			s= CompareMessages.getString("TextMergeViewer.direction.incoming");	//$NON-NLS-1$
-			break;
-		case RangeDifference.CONFLICT:
-			s= CompareMessages.getString("TextMergeViewer.direction.conflicting");	//$NON-NLS-1$
-			break;
-		}
-		String format= CompareMessages.getString("TextMergeViewer.diffType.format");	//$NON-NLS-1$
-		return MessageFormat.format(format, new String[] { s, diff.changeType() } );
-	}
-	
-	private String getDiffNumber(Diff diff) {
-		// find the diff's number
-		int diffNumber= 0;
-		if (fChangeDiffs != null) {
-			Iterator e= fChangeDiffs.iterator();
-			while (e.hasNext()) {
-				Diff d= (Diff) e.next();
-				diffNumber++;
-				if (d == diff)
-					break;
-			}
-		}
-		return Integer.toString(diffNumber);
-	}
-	
-	private String getDiffRange(MergeSourceViewer v, Position pos) {
-		Point p= v.getLineRange(pos, new Point(0, 0));
-		int startLine= p.x+1;
-		int endLine= p.x+p.y;
-		
-		String format;
-		if (endLine < startLine)
-			format= CompareMessages.getString("TextMergeViewer.beforeLine.format");	//$NON-NLS-1$
-		else
-			format= CompareMessages.getString("TextMergeViewer.range.format");	//$NON-NLS-1$
-		return MessageFormat.format(format,
-					new String[] { Integer.toString(startLine),
-									Integer.toString(endLine) } );
-	}
-	
-	/**
-	 * Returns a description of the cursor position.
-	 * 
-	 * @return a description of the cursor position
-	 */
-	private String getCursorPosition(MergeSourceViewer v) {
-		if (v != null) {
-			StyledText styledText= v.getTextWidget();
-			
-			IDocument document= v.getDocument();
-			if (document != null) {
-				int offset= v.getVisibleRegion().getOffset();
-				int caret= offset + styledText.getCaretOffset();
-				
-				try {
-					
-					int line=document.getLineOfOffset(caret);
-					
-					int lineOffset= document.getLineOffset(line);
-					int occurrences= 0;
-					for (int i= lineOffset; i < caret; i++)
-						if ('\t' == document.getChar(i))
-							++ occurrences;
-							
-					int tabWidth= styledText.getTabs();
-					int column= caret - lineOffset + (tabWidth -1) * occurrences;
-					
-					String format= CompareMessages.getString("TextMergeViewer.cursorPosition.format");	//$NON-NLS-1$
-					return MessageFormat.format(format,
-						new String[] { Integer.toString(line + 1), Integer.toString(column + 1) } );
-					
-				} catch (BadLocationException x) {
-				}
-			}
-		}
-		return "";	//$NON-NLS-1$
-	}
-
-	protected void updateHeader() {
-		
-		super.updateHeader();
-				
-		updateControls();
-	}
-
-	/**
-	 * Creates the two items for copying a difference range from one side to the other 
-	 * and adds them to the given toolbar manager.
-	 */
-	protected void createToolItems(ToolBarManager tbm) {
-
-		IWorkbenchPartSite ps= Utilities.findSite(fComposite);
-		fKeyBindingService= ps != null ? ps.getKeyBindingService() : null;
-		
-		final String ignoreAncestorActionKey= "action.IgnoreAncestor.";	//$NON-NLS-1$
-		Action ignoreAncestorAction= new Action() {
-			public void run() {
-				setIgnoreAncestor(! fIgnoreAncestor);
-				Utilities.initToggleAction(this, getResourceBundle(), ignoreAncestorActionKey, fIgnoreAncestor);
-			}
-		};
-		ignoreAncestorAction.setChecked(fIgnoreAncestor);
-		Utilities.initAction(ignoreAncestorAction, getResourceBundle(), ignoreAncestorActionKey);
-		Utilities.initToggleAction(ignoreAncestorAction, getResourceBundle(), ignoreAncestorActionKey, fIgnoreAncestor);
-		
-		fIgnoreAncestorItem= new ActionContributionItem(ignoreAncestorAction);
-		fIgnoreAncestorItem.setVisible(false);
-		tbm.appendToGroup("modes", fIgnoreAncestorItem); //$NON-NLS-1$
-
-		tbm.add(new Separator());
-					
-		Action a= new Action() {
-			public void run() {
-				navigate(true, true, true);
-			}
-		};
-		Utilities.initAction(a, getResourceBundle(), "action.NextDiff."); //$NON-NLS-1$
-		fNextItem= new ActionContributionItem(a);
-		tbm.appendToGroup("navigation", fNextItem); //$NON-NLS-1$
-		Utilities.registerAction(fKeyBindingService, a, "org.eclipse.compare.selectNextChange");	//$NON-NLS-1$
-		
-		a= new Action() {
-			public void run() {
-				navigate(false, true, true);
-			}
-		};
-		Utilities.initAction(a, getResourceBundle(), "action.PrevDiff."); //$NON-NLS-1$
-		fPreviousItem= new ActionContributionItem(a);
-		tbm.appendToGroup("navigation", fPreviousItem); //$NON-NLS-1$
-		Utilities.registerAction(fKeyBindingService, a, "org.eclipse.compare.selectPreviousChange");	//$NON-NLS-1$
-
-		
-		CompareConfiguration cc= getCompareConfiguration();
-		
-		if (cc.isRightEditable()) {
-			a= new Action() {
-				public void run() {
-					copyDiffLeftToRight();
-				}
-			};
-			Utilities.initAction(a, getResourceBundle(), "action.CopyDiffLeftToRight."); //$NON-NLS-1$
-			fCopyDiffLeftToRightItem= new ActionContributionItem(a);
-			fCopyDiffLeftToRightItem.setVisible(true);
-			tbm.appendToGroup("merge", fCopyDiffLeftToRightItem); //$NON-NLS-1$
-			Utilities.registerAction(fKeyBindingService, a, "org.eclipse.compare.copyLeftToRight");	//$NON-NLS-1$
-		}
-		
-		if (cc.isLeftEditable()) {
-			a= new Action() {
-				public void run() {
-					copyDiffRightToLeft();
-				}
-			};
-			Utilities.initAction(a, getResourceBundle(), "action.CopyDiffRightToLeft."); //$NON-NLS-1$
-			fCopyDiffRightToLeftItem= new ActionContributionItem(a);
-			fCopyDiffRightToLeftItem.setVisible(true);
-			tbm.appendToGroup("merge", fCopyDiffRightToLeftItem); //$NON-NLS-1$
-			Utilities.registerAction(fKeyBindingService, a, "org.eclipse.compare.copyRightToLeft");	//$NON-NLS-1$
-		}
-	}
-	
-	/* package */ void propertyChange(PropertyChangeEvent event) {
-		
-		String key= event.getProperty();
-		
-		if (key.equals(CompareConfiguration.IGNORE_WHITESPACE)
-				|| key.equals(ComparePreferencePage.SHOW_PSEUDO_CONFLICTS)) {
-					
-			fShowPseudoConflicts= fPreferenceStore.getBoolean(ComparePreferencePage.SHOW_PSEUDO_CONFLICTS);
-			
-			// clear stuff
-			fCurrentDiff= null;
-		 	fChangeDiffs= null;
-			fAllDiffs= null;
-					
-			doDiff();
-					
-			updateControls();
-			invalidateLines();
-			updateVScrollBar();
-			refreshBirdsEyeView();
-			
-			selectFirstDiff();
-			
-//		} else if (key.equals(ComparePreferencePage.USE_SPLINES)) {
-//			fUseSplines= fPreferenceStore.getBoolean(ComparePreferencePage.USE_SPLINES);
-//			invalidateLines();
-
-		} else if (key.equals(ComparePreferencePage.USE_SINGLE_LINE)) {
-			fUseSingleLine= fPreferenceStore.getBoolean(ComparePreferencePage.USE_SINGLE_LINE);
-			fUseResolveUI= fUseSingleLine;
-			fBasicCenterCurve= null;
-			updateResolveStatus();
-			invalidateLines();
-	
-//		} else if (key.equals(ComparePreferencePage.USE_RESOLVE_UI)) {
-//			fUseResolveUI= fPreferenceStore.getBoolean(ComparePreferencePage.USE_RESOLVE_UI);
-//			updateResolveStatus();
-//			invalidateLines();
-		
-		} else if (key.equals(fSymbolicFontName)) {
-			updateFont();
-			invalidateLines();
-			
-		} else if (key.equals(ComparePreferencePage.SYNCHRONIZE_SCROLLING)) {
-			
-			boolean b= fPreferenceStore.getBoolean(ComparePreferencePage.SYNCHRONIZE_SCROLLING);
-			if (b != fSynchronizedScrolling)
-				toggleSynchMode();
-		
-		} else if (key.equals(ComparePreferencePage.SHOW_MORE_INFO)) {
-			
-			boolean b= fPreferenceStore.getBoolean(ComparePreferencePage.SHOW_MORE_INFO);
-			if (b != fShowMoreInfo) {
-				fShowMoreInfo= b;
-				if (fShowMoreInfo)
-					updateStatus(fCurrentDiff);
-				else
-					clearStatus();
-			}
-		
-		} else
-			super.propertyChange(event);
-	}
-	
-	private void setIgnoreAncestor(boolean ignore) {
-		if (ignore != fIgnoreAncestor) {
-			fIgnoreAncestor= ignore;
-			setAncestorVisibility(false, !fIgnoreAncestor);
-		
-			// clear stuff
-			fCurrentDiff= null;
-		 	fChangeDiffs= null;
-			fAllDiffs= null;
-					
-			doDiff();
-					
-			invalidateLines();
-			updateVScrollBar();
-			refreshBirdsEyeView();
-			
-			selectFirstDiff();
-		}
-	}
-	
-	private void selectFirstDiff() {
-		
-		if (fLeft == null || fRight == null) {
-			return;
-		}
-		if (fLeft.getDocument() == null || fRight.getDocument() == null) {
-			return;
-		}
-		
-		Diff firstDiff= null;
-		if (CompareNavigator.getDirection(fComposite))
-			firstDiff= findNext(fRight, fChangeDiffs, -1, -1, false);
-		else
-			firstDiff= findPrev(fRight, fChangeDiffs, 9999999, 9999999, false);
-		setCurrentDiff(firstDiff, true);
-	}
-	
-	private void toggleSynchMode() {
-		fSynchronizedScrolling= ! fSynchronizedScrolling;
-		
-		scrollVertical(0, 0, 0, null);
-		
-		// throw away central control (Sash or Canvas)
-		Control center= getCenter();
-		if (center != null && !center.isDisposed())
-			center.dispose();
-		
-		fLeft.getTextWidget().getVerticalBar().setVisible(!fSynchronizedScrolling);
-		fRight.getTextWidget().getVerticalBar().setVisible(!fSynchronizedScrolling);
-
-		fComposite.layout(true);
-	}
-					
-	protected void updateToolItems() {
-					
-		if (fIgnoreAncestorItem != null)
-			fIgnoreAncestorItem.setVisible(isThreeWay());
-		
-		super.updateToolItems();
-	}
-	
-	//---- painting lines
-	
-	/**
-	 * 
-	 */
-	private void updateLines(IDocument d) {
-
-		boolean left= false;
-		boolean right= false;
-		
-		// FIXME: this optimization is incorrect because
-		// it doesn't take replace operations into account where
-		// the old and new line count does not differ
-		if (d == fLeft.getDocument()) {
-			int l= fLeft.getLineCount();
-			left= fLeftLineCount != l;
-			fLeftLineCount= l;
-		} else if (d == fRight.getDocument()) {
-			int l= fRight.getLineCount();
-			right= fRightLineCount != l;
-			fRightLineCount= l;
-		}
-		
-		if (left || right) {
-			
-			if (left) {
-				if (fLeftCanvas != null)
-					fLeftCanvas.redraw();
-			} else {
-				if (fRightCanvas != null)
-					fRightCanvas.redraw();
-			}
-			Control center= getCenter();
-			if (center != null)
-				center.redraw();
-
-			updateVScrollBar();
-			refreshBirdsEyeView();
-		}
-	}
-	
-	private void invalidateLines() {
-		if (isThreeWay()) {
-			if (Utilities.okToUse(fAncestorCanvas))
-				fAncestorCanvas.redraw();
-			if (fAncestor != null && fAncestor.isControlOkToUse())
-				fAncestor.getTextWidget().redraw();
-		}
-		
-		if (Utilities.okToUse(fLeftCanvas))
-			fLeftCanvas.redraw();
-			
-		if (fLeft != null && fLeft.isControlOkToUse())
-			fLeft.getTextWidget().redraw();
-			
-		if (Utilities.okToUse(getCenter()))
-			getCenter().redraw();
-			
-		if (fRight != null && fRight.isControlOkToUse())
-			fRight.getTextWidget().redraw();
-			
-		if (Utilities.okToUse(fRightCanvas))
-			fRightCanvas.redraw();
-	}
-	
-	private boolean showResolveUI() {
-		if (!fUseResolveUI || !isThreeWay() || fIgnoreAncestor)
-			return false;
-		CompareConfiguration cc= getCompareConfiguration();
-		if (cc == null)
-			return false;
-		// we only enable the new resolve ui if exactly one side is editable
-		boolean l= cc.isLeftEditable();
-		boolean r= cc.isRightEditable();
-		//return (l && !r) || (r && !l);
-		return l || r;
-	}
-	
-	private void paintCenter(Canvas canvas, GC g) {
-		
-		Display display= canvas.getDisplay();
-		
-		checkForColorUpdate(display);
-		
-		if (! fSynchronizedScrolling)
-			return;
-
-		int lineHeight= fLeft.getTextWidget().getLineHeight();			
-		int visibleHeight= fRight.getViewportHeight();
-
-		Point size= canvas.getSize();
-		int x= 0;
-		int w= size.x;
-				
-		g.setBackground(canvas.getBackground());
-		g.fillRectangle(x+1, 0, w-2, size.y);
-		
-		if (!fIsMotif) {
-			// draw thin line between center ruler and both texts
-			g.setBackground(display.getSystemColor(SWT.COLOR_WIDGET_NORMAL_SHADOW));
-			g.fillRectangle(0, 0, 1, size.y);
-			g.fillRectangle(w-1, 0, 1, size.y);
-		}
-			
-		if (! fHiglightRanges)
-			return;
-
-		boolean showResolveUI= showResolveUI();
-
-		if (fChangeDiffs != null) {
-			int lshift= fLeft.getVerticalScrollOffset();
-			int rshift= fRight.getVerticalScrollOffset();
-					
-			Point region= new Point(0, 0);
-		
-			Iterator e= fChangeDiffs.iterator();
-			while (e.hasNext()) {
-				Diff diff= (Diff) e.next();
-				if (diff.isDeleted())
-					continue;
-				
-				if (fShowCurrentOnly2 && !isCurrentDiff(diff))
-					continue;
-
-				fLeft.getLineRange(diff.fLeftPos, region);
-				int ly= (region.x * lineHeight) + lshift;
-				int lh= region.y * lineHeight;
-	
-				fRight.getLineRange(diff.fRightPos, region);
-				int ry= (region.x * lineHeight) + rshift;
-				int rh= region.y * lineHeight;
-	
-				if (Math.max(ly+lh, ry+rh) < 0)
-					continue;
-				if (Math.min(ly, ry) >= visibleHeight)
-					break;
-	
-				fPts[0]= x;	fPts[1]= ly;	fPts[2]= w;	fPts[3]= ry;
-				fPts[6]= x;	fPts[7]= ly+lh;	fPts[4]= w;	fPts[5]= ry+rh;
-				
-				Color fillColor= getColor(display, getFillColor(diff));
-				Color strokeColor= getColor(display, getStrokeColor(diff));
-				
-				if (fUseSingleLine) {
-					int w2= 3;
-
-					g.setBackground(fillColor);
-					g.fillRectangle(0, ly, w2, lh);		// left
-					g.fillRectangle(w-w2, ry, w2, rh);	// right
-
-					g.setLineWidth(LW);
-					g.setForeground(strokeColor);
-					g.drawRectangle(0-1, ly, w2, lh);	// left
-					g.drawRectangle(w-w2, ry, w2, rh);	// right
-
-					if (fUseSplines) {
-						int[] points= getCenterCurvePoints(w2, ly+lh/2, w-w2, ry+rh/2);
-						for (int i= 1; i < points.length; i++)
-							g.drawLine(w2+i-1, points[i-1], w2+i, points[i]);
-					} else {
-						g.drawLine(w2, ly+lh/2, w-w2, ry+rh/2);
-					}
-				} else {
-					// two lines
-					if (fUseSplines) {
-						g.setBackground(fillColor);
-
-						g.setLineWidth(LW);
-						g.setForeground(strokeColor);
-
-						int[] topPoints= getCenterCurvePoints(fPts[0], fPts[1], fPts[2], fPts[3]);
-						int[] bottomPoints= getCenterCurvePoints(fPts[6], fPts[7], fPts[4], fPts[5]);
-						g.setForeground(fillColor);
-						g.drawLine(0, bottomPoints[0], 0, topPoints[0]);
-						for (int i= 1; i < bottomPoints.length; i++) {
-							g.setForeground(fillColor);
-							g.drawLine(i, bottomPoints[i], i, topPoints[i]);
-							g.setForeground(strokeColor);
-							g.drawLine(i-1, topPoints[i-1], i, topPoints[i]);
-							g.drawLine(i-1, bottomPoints[i-1], i, bottomPoints[i]);
-						}
-					} else {
-						g.setBackground(fillColor);
-						g.fillPolygon(fPts);
-
-						g.setLineWidth(LW);
-						g.setForeground(strokeColor);
-						g.drawLine(fPts[0], fPts[1], fPts[2], fPts[3]);
-						g.drawLine(fPts[6], fPts[7], fPts[4], fPts[5]);
-					}
-				}
-				
-				if (showResolveUI && diff.isUnresolvedIncomingOrConflicting()) {
-					// draw resolve state
-					int cx= (w-RESOLVE_SIZE)/2;
-					int cy= ((ly+lh/2) + (ry+rh/2) - RESOLVE_SIZE)/2;
-					
-					g.setBackground(fillColor);
-					g.fillRectangle(cx, cy, RESOLVE_SIZE, RESOLVE_SIZE);
-					
-					g.setForeground(strokeColor);
-					g.drawRectangle(cx, cy, RESOLVE_SIZE, RESOLVE_SIZE);
-				}
-			}
-		}
-	}
-	
-	private int[] getCenterCurvePoints(int startx, int starty, int endx, int endy) {
-		if (fBasicCenterCurve == null)
-			buildBaseCenterCurve(endx-startx);
-		double height= endy - starty;
-		height= height/2;
-		int width= endx-startx;
-		int[] points= new int[width];
-		for (int i= 0; i < width; i++) {
-			points[i]= (int) (-height * fBasicCenterCurve[i] + height + starty);
-		}
-		return points;
-	}
-
-	private void buildBaseCenterCurve(int w) {
-		double width= w;
-		fBasicCenterCurve= new double[getCenterWidth()];
-		for (int i= 0; i < getCenterWidth(); i++) {
-			double r= ((double) i) / width;
-			fBasicCenterCurve[i]= Math.cos(Math.PI * r);
-		}
-	}
-
-	private void paintSides(GC g, MergeSourceViewer tp, Canvas canvas, boolean right) {
-		
-		Display display= canvas.getDisplay();
-		
-		int lineHeight= tp.getTextWidget().getLineHeight();
-		int visibleHeight= tp.getViewportHeight();
-
-		Point size= canvas.getSize();
-		int x= 0;
-		int w= fMarginWidth;
-		int w2= w/2;
-			
-		g.setBackground(canvas.getBackground());
-		g.fillRectangle(x, 0, w, size.y);
-
-		if (!fIsMotif) {
-			// draw thin line between ruler and text
-			g.setBackground(display.getSystemColor(SWT.COLOR_WIDGET_NORMAL_SHADOW));
-			if (right)
-				g.fillRectangle(0, 0, 1, size.y);
-			else
-				g.fillRectangle(size.x-1, 0, 1, size.y);
-		}
-
-		if (! fHiglightRanges)
-			return;
-
-		if (fChangeDiffs != null) {
-			int shift= tp.getVerticalScrollOffset() + (2-LW);
-				
-			Point region= new Point(0, 0);
-			Iterator e= fChangeDiffs.iterator();
-			while (e.hasNext()) {
-				Diff diff= (Diff) e.next();
-				if (diff.isDeleted())
-					continue;
-				
-				if (fShowCurrentOnly2 && !isCurrentDiff(diff))
-					continue;
-
-				tp.getLineRange(diff.getPosition(tp), region);	
-				int y= (region.x * lineHeight) + shift;
-				int h= region.y * lineHeight;
-	
-				if (y+h < 0)
-					continue;
-				if (y >= visibleHeight)
-					break;
-					
-				g.setBackground(getColor(display, getFillColor(diff)));
-				if (right)
-					g.fillRectangle(x, y, w2, h);
-				else
-					g.fillRectangle(x+w2, y, w2, h);
-	
-				g.setLineWidth(LW);
-				g.setForeground(getColor(display, getStrokeColor(diff)));
-				if (right)
-					g.drawRectangle(x-1, y-1, w2, h);
-				else
-					g.drawRectangle(x+w2, y-1, w2, h);
-			}
-		}
-	}
-	
-	private void paint(PaintEvent event, MergeSourceViewer tp) {
-		
-		if (! fHiglightRanges)
-			return;
-		if (fChangeDiffs == null)
-			return;
-
-		Control canvas= (Control) event.widget;
-		GC g= event.gc;
-		
-		Display display= canvas.getDisplay();
-		
-		int lineHeight= tp.getTextWidget().getLineHeight();			
-		int w= canvas.getSize().x;
-		int shift= tp.getVerticalScrollOffset() + (2-LW);
-		int maxh= event.y+event.height; 	// visibleHeight
-		
-		//if (fIsMotif)
-			shift+= fTopInset;
-				
-		Point range= new Point(0, 0);
-				
-		Iterator e= fChangeDiffs.iterator();	
-		while (e.hasNext()) {
-			Diff diff= (Diff) e.next();
-			if (diff.isDeleted())
-				continue;
-			
-			if (fShowCurrentOnly && !isCurrentDiff(diff))
-				continue;
-
-			tp.getLineRange(diff.getPosition(tp), range);
-			int y= (range.x * lineHeight) + shift;
-			int h= range.y * lineHeight;
-			
-			if (y+h < event.y)
-				continue;
-			if (y > maxh)
-				break;
-			
-			g.setBackground(getColor(display, getStrokeColor(diff)));
-			g.fillRectangle(0, y-1, w, LW);
-			g.fillRectangle(0, y+h-1, w, LW);
-		}
-	}
-
-	private RGB getFillColor(Diff diff) {
-		boolean selected= fCurrentDiff != null && fCurrentDiff.fParent == diff;
-		
-		RGB selected_fill= getBackground(null);
-
-		if (isThreeWay() && !fIgnoreAncestor) {
-			switch (diff.fDirection) {
-			case RangeDifference.RIGHT:
-				if (fLeftIsLocal)
-					return selected ? selected_fill : INCOMING_FILL;
-				return selected ? selected_fill : OUTGOING_FILL;
-			case RangeDifference.ANCESTOR:
-				return selected ? selected_fill : CONFLICT_FILL;
-			case RangeDifference.LEFT:
-				if (fLeftIsLocal)
-					return selected ? selected_fill : OUTGOING_FILL;
-				return selected ? selected_fill : INCOMING_FILL;
-			case RangeDifference.CONFLICT:
-				return selected ? selected_fill : CONFLICT_FILL;
-			}
-			return null;
-		}
-		return selected ? selected_fill : OUTGOING_FILL;
-	}
-	
-	private RGB getStrokeColor(Diff diff) {
-		boolean selected= fCurrentDiff != null && fCurrentDiff.fParent == diff;
-		
-		if (isThreeWay() && !fIgnoreAncestor) {
-			switch (diff.fDirection) {
-			case RangeDifference.RIGHT:
-				if (fLeftIsLocal)
-					return selected ? SELECTED_INCOMING : INCOMING;
-				return selected ? SELECTED_OUTGOING : OUTGOING;
-			case RangeDifference.ANCESTOR:
-				return selected ? SELECTED_CONFLICT : CONFLICT;
-			case RangeDifference.LEFT:
-				if (fLeftIsLocal)
-					return selected ? SELECTED_OUTGOING : OUTGOING;
-				return selected ? SELECTED_INCOMING : INCOMING;
-			case RangeDifference.CONFLICT:
-				return selected ? SELECTED_CONFLICT : CONFLICT;
-			}
-			return null;
-		}
-		return selected ? SELECTED_OUTGOING : OUTGOING;
-	}
-	
-	private Color getColor(Display display, RGB rgb) {
-		if (rgb == null)
-			return null;		
-		if (fColors == null)
-			fColors= new HashMap(20);
-		Color c= (Color) fColors.get(rgb);
-		if (c == null) {
-			c= new Color(display, rgb);
-			fColors.put(rgb, c);
-		}
-		return c;
-	}
-			
-	static RGB interpolate(RGB fg, RGB bg, double scale) {
-		return new RGB(
-			(int)((1.0-scale) * fg.red + scale * bg.red),
-			(int)((1.0-scale) * fg.green + scale * bg.green),
-			(int)((1.0-scale) * fg.blue + scale * bg.blue)
-		);
-	}
-	
-	//---- Navigating and resolving Diffs
-	
-	/**
-	 * Returns true if end (or beginning) of document reached.
-	 */
-	private boolean navigate(boolean down, boolean wrap, boolean deep) {
-
-		Diff diff= null;
-		
-		for (;;) {
-			
-			if (fChangeDiffs != null) {
-				MergeSourceViewer part= fFocusPart;
-				if (part == null)
-					part= fRight;
-				
-				if (part != null) {
-					Point s= part.getSelectedRange();
-					if (down)
-						diff= findNext(part, fChangeDiffs, s.x, s.x+s.y, deep);
-					else
-						diff= findPrev(part, fChangeDiffs, s.x, s.x+s.y, deep);					
-				}		
-			}
-		
-			if (diff == null) {	// at end or beginning
-				if (wrap) {
-					if (!fEndOfDocReached) {
-						fEndOfDocReached= true;
-						if (! endOfDocumentReached(down))
-							return true;
-					}
-					fEndOfDocReached= false;
-					if (fChangeDiffs != null && fChangeDiffs.size() > 0) {
-						if (down)
-							diff= (Diff) fChangeDiffs.get(0);
-						else
-							diff= (Diff) fChangeDiffs.get(fChangeDiffs.size()-1);
-					}
-				} else {
-					fEndOfDocReached= false;	
-					return true;
-				}
-			}
-			
-			setCurrentDiff(diff, true);
-			
-			if (diff != null && diff.fDirection == RangeDifference.ANCESTOR
-									&& !getAncestorEnabled())
-				continue;
-				
-			break;
-		}
-
-		return false;
-	}
-	
-	private boolean endOfDocumentReached(boolean down) {
-		Control c= getControl();
-		if (Utilities.okToUse(c)) {
-			
-			c.getDisplay().beep();
-			
-			String key= down ? "atEnd" : "atBeginning"; //$NON-NLS-1$ //$NON-NLS-2$
-			return MessageDialog.openQuestion(c.getShell(),
-				CompareMessages.getString("TextMergeViewer."+key+".title"),	//$NON-NLS-1$ //$NON-NLS-2$
-				CompareMessages.getString("TextMergeViewer."+key+".message"));	//$NON-NLS-1$ //$NON-NLS-2$
-		}
-		return false;
-	}
-	
-	/**
-	 * Find the Diff that overlaps with the given TextPart's text range.
-	 * If the range doesn't overlap with any range <code>null</code>
-	 * is returned.
-	 */
-	private Diff findDiff(MergeSourceViewer tp, int rangeStart, int rangeEnd) {
-		if (fChangeDiffs != null) {
-			Iterator e= fChangeDiffs.iterator();
-			while (e.hasNext()) {
-				Diff diff= (Diff) e.next();
-				if (diff.contains(tp, rangeStart, rangeEnd))
-					return diff;
-			}
-		}
-		return null;
-	}
-	
-	private static Diff findNext(MergeSourceViewer tp, List v, int start, int end, boolean deep) {
-		for (int i= 0; i < v.size(); i++) {
-			Diff diff= (Diff) v.get(i);
-			Position p= diff.getPosition(tp);
-			if (p != null) {
-				int startOffset= p.getOffset();
-				if (end < startOffset)  // <=
-					return diff;
-				if (deep && diff.fDiffs != null) {
-					Diff d= null;
-					int endOffset= startOffset + p.getLength();
-					if (start == startOffset && (end == endOffset || end == endOffset-1)) {
-						d= findNext(tp, diff.fDiffs, start-1, start-1, deep);
-					} else if (end < endOffset) {
-						d= findNext(tp, diff.fDiffs, start, end, deep);
-					}
-					if (d != null)
-						return d;
-				}
-			}
-		}
-		return null;
-	}
-	
-	private static Diff findPrev(MergeSourceViewer tp, List v, int start, int end, boolean deep) {
-		for (int i= v.size()-1; i >= 0; i--) {
-			Diff diff= (Diff) v.get(i);
-			Position p= diff.getPosition(tp);
-			if (p != null) {
-				int startOffset= p.getOffset();
-				int endOffset= startOffset + p.getLength();
-				if (start > endOffset)
-					return diff;
-				if (deep && diff.fDiffs != null) {
-					Diff d= null;
-					if (start == startOffset && end == endOffset) {
-						d= findPrev(tp, diff.fDiffs, end, end, deep);
-					} else if (start >= startOffset) {
-						d= findPrev(tp, diff.fDiffs, start, end, deep);
-					}
-					if (d != null)
-						return d;
-				}
-			}
-		}
-		return null;
-	}
-		
-	/*
-	 * Set the currently active Diff and update the toolbars controls and lines.
-	 * If <code>revealAndSelect</code> is <code>true</code> the Diff is revealed and
-	 * selected in both TextParts.
-	 */
-	private void setCurrentDiff(Diff d, boolean revealAndSelect) {
-
-//		if (d == fCurrentDiff)
-//			return;
-
-		if (fCenterButton != null)
-			fCenterButton.setVisible(false);
-						
-		fEndOfDocReached= false;	
-
-		Diff oldDiff= fCurrentDiff;
-					
-		if (d != null && revealAndSelect) {
-			
-			// before we set fCurrentDiff we change the selection
-			// so that the paint code uses the old background colors
-			// otherwise selection isn't drawn correctly
-			if (isThreeWay() && !fIgnoreAncestor)
-				fAncestor.setSelection(d.fAncestorPos);
-			fLeft.setSelection(d.fLeftPos);
-			fRight.setSelection(d.fRightPos);
-			
-			// now switch diffs
-			fCurrentDiff= d;
-			revealDiff(d, d.fIsToken);
-		} else {
-			fCurrentDiff= d;
-		}
-		
-		Diff d1= oldDiff != null ? oldDiff.fParent : null;
-		Diff d2= fCurrentDiff != null ? fCurrentDiff.fParent : null;
-		if (d1 != d2) {
-			updateDiffBackground(d1);
-			updateDiffBackground(d2);
-		}
-		
-		updateControls();
-		invalidateLines();
-		refreshBirdsEyeView();
-	}
-	
-	/**
-	 * Smart determines whether 
-	 */
-	private void revealDiff(Diff d, boolean smart) {
-		
-		boolean ancestorIsVisible= false;
-		boolean leftIsVisible= false;
-		boolean rightIsVisible= false;
-
-		if (smart) {
-			Point region= new Point(0, 0);
-			// find the starting line of the diff in all text widgets
-			int ls= fLeft.getLineRange(d.fLeftPos, region).x;
-			int rs= fRight.getLineRange(d.fRightPos, region).x;
-			
-			if (isThreeWay() && !fIgnoreAncestor) {
-				int as= fAncestor.getLineRange(d.fAncestorPos, region).x;
-				if (as >= fAncestor.getTopIndex() && as <= fAncestor.getBottomIndex())
-					ancestorIsVisible= true;
-			}
-
-			if (ls >= fLeft.getTopIndex() && ls <= fLeft.getBottomIndex())
-				leftIsVisible= true;
-
-			if (rs >= fRight.getTopIndex() && rs <= fRight.getBottomIndex())
-				rightIsVisible= true;
-		}
-
-		// vertical scrolling
-		if (!leftIsVisible || !rightIsVisible) {
-			int avpos= 0, lvpos= 0, rvpos= 0;
-			
-			MergeSourceViewer allButThis= null;
-			if (leftIsVisible) {
-				avpos= lvpos= rvpos= realToVirtualPosition(fLeft, fLeft.getTopIndex());
-				allButThis= fLeft;
-			} else if (rightIsVisible) {
-				avpos= lvpos= rvpos= realToVirtualPosition(fRight, fRight.getTopIndex());
-				allButThis= fRight;
-			} else if (ancestorIsVisible) {
-				avpos= lvpos= rvpos= realToVirtualPosition(fAncestor, fAncestor.getTopIndex());
-				allButThis= fAncestor;
-			} else {
-				if (fAllDiffs != null) {
-					int vpos= 0;
-					Iterator e= fAllDiffs.iterator();
-					for (int i= 0; e.hasNext(); i++) {
-						Diff diff= (Diff) e.next();
-						if (diff == d)
-							break;
-						if (fSynchronizedScrolling) {
-							vpos+= diff.getMaxDiffHeight(fShowAncestor);
-						} else {
-							avpos+= diff.getAncestorHeight();
-							lvpos+= diff.getLeftHeight();
-							rvpos+= diff.getRightHeight();
-						}
-					}
-					if (fSynchronizedScrolling)
-						avpos= lvpos= rvpos= vpos;
-				}
-				int delta= fRight.getViewportLines()/4;
-				avpos-= delta;
-				if (avpos < 0)
-					avpos= 0;
-				lvpos-= delta;
-				if (lvpos < 0)
-					lvpos= 0;
-				rvpos-= delta;
-				if (rvpos < 0)
-					rvpos= 0;
-			}
-							
-			scrollVertical(avpos, lvpos, rvpos, allButThis);
-			
-			if (fVScrollBar != null)
-				fVScrollBar.setSelection(avpos);
-		}
-		
-		// horizontal scrolling
-		if (d.fIsToken) {
-			// we only scroll horizontally for token diffs
-			reveal(fAncestor, d.fAncestorPos);
-			reveal(fLeft, d.fLeftPos);
-			reveal(fRight, d.fRightPos);
-		} else {
-			// in all other cases we reset the horizontal offset
-			hscroll(fAncestor);
-			hscroll(fLeft);
-			hscroll(fRight);
-		}
-	}
-	
-	private static void reveal(MergeSourceViewer v, Position p) {
-		if (v != null && p != null) {
-			StyledText st= v.getTextWidget();
-			if (st != null) {
-				Rectangle r= st.getClientArea();
-				if (!r.isEmpty())	// workaround for #7320: Next diff scrolls when going into current diff 
-					v.revealRange(p.offset, p.length);
-			}
-		}
-	}
-	
-	private static void hscroll(MergeSourceViewer v) {
-		if (v != null) {
-			StyledText st= v.getTextWidget();
-			if (st != null)
-				st.setHorizontalIndex(0);
-		}
-	}
-	
-	//--------------------------------------------------------------------------------
-	
-	void copyAllUnresolved(boolean leftToRight) {
-		if (fChangeDiffs != null && isThreeWay() && !fIgnoreAncestor) {
-			IRewriteTarget target= leftToRight ? fRight.getRewriteTarget() : fLeft.getRewriteTarget();
-			boolean compoundChangeStarted= false;
-			Iterator e= fChangeDiffs.iterator();
-			try {
-				while (e.hasNext()) {
-					Diff diff= (Diff) e.next();
-					switch (diff.fDirection) {
-					case RangeDifference.LEFT:
-						if (leftToRight) {
-							if (!compoundChangeStarted) {
-								target.beginCompoundChange();
-								compoundChangeStarted= true;
-							}
-							copy(diff, leftToRight);
-						}
-						break;
-					case RangeDifference.RIGHT:
-						if (!leftToRight) {
-							if (!compoundChangeStarted) {
-								target.beginCompoundChange();
-								compoundChangeStarted= true;
-							}
-							copy(diff, leftToRight);
-						}
-						break;
-					default:
-						continue;
-					}
-				}
-			} finally {
-				if (compoundChangeStarted) {
-					target.endCompoundChange();
-				}
-			}
-		}
-	}
-	
-	/*
-	 * Copy whole document from one side to the other.
-	 */
-	protected void copy(boolean leftToRight) {
-		
-		if (showResolveUI()) {
-			copyAllUnresolved(leftToRight);
-			invalidateLines();
-			return;
-		}
-				
-		if (leftToRight) {
-			if (fLeft.getEnabled()) {
-				// copy text
-				String text= fLeft.getTextWidget().getText();
-				fRight.getTextWidget().setText(text);
-				fRight.setEnabled(true);
-			} else {
-				// delete
-				fRight.getTextWidget().setText(""); //$NON-NLS-1$
-				fRight.setEnabled(false);
-			}
-			fRightLineCount= fRight.getLineCount();
-			setRightDirty(true);
-		} else {
-			if (fRight.getEnabled()) {
-				// copy text
-				String text= fRight.getTextWidget().getText();
-				fLeft.getTextWidget().setText(text);
-				fLeft.setEnabled(true);
-			} else {
-				// delete
-				fLeft.getTextWidget().setText(""); //$NON-NLS-1$
-				fLeft.setEnabled(false);
-			}
-			fLeftLineCount= fLeft.getLineCount();
-			setLeftDirty(true);
-		}
-		doDiff();
-		invalidateLines();
-		updateVScrollBar();
-		selectFirstDiff();
-		refreshBirdsEyeView();
-	}
-
-	private void copyDiffLeftToRight() {
-		copy(fCurrentDiff, true, false);
-	}
-
-	private void copyDiffRightToLeft() {
-		copy(fCurrentDiff, false, false);
-	}
-		
-	/*
-	 * Copy the contents of the given diff from one side to the other.
-	 */
-	private void copy(Diff diff, boolean leftToRight, boolean gotoNext) {
-		if (copy(diff, leftToRight)) {
-			if (gotoNext) {
-				navigate(true, true, true);
-			} else {
-				revealDiff(diff, true);
-				updateControls();
-			}
-		}
-	}
-
-	/*
-	 * Copy the contents of the given diff from one side to the other but
-	 * doesn't reveal anything.
-	 * Returns true if copy was succesful.
-	 */
-	private boolean copy(Diff diff, boolean leftToRight) {
-		
-		if (diff != null && !diff.isResolved()) {
-
-			Position fromPos= null;
-			Position toPos= null;
-			IDocument fromDoc= null;
-			IDocument toDoc= null;
-
-			if (leftToRight) {
-				fRight.setEnabled(true);
-				fromPos= diff.fLeftPos;
-				toPos= diff.fRightPos;
-				fromDoc= fLeft.getDocument();
-				toDoc= fRight.getDocument();
-			} else {
-				fLeft.setEnabled(true);
-				fromPos= diff.fRightPos;
-				toPos= diff.fLeftPos;
-				fromDoc= fRight.getDocument();
-				toDoc= fLeft.getDocument();
-			}
-			
-			if (fromDoc != null) {
-				
-				int fromStart= fromPos.getOffset();
-				int fromLen= fromPos.getLength();
-				
-				int toStart= toPos.getOffset();
-				int toLen= toPos.getLength();
-
-				try {
-					String s= null;
-											
-					switch (diff.fDirection) {
-					case RangeDifference.RIGHT:
-					case RangeDifference.LEFT:
-						s= fromDoc.get(fromStart, fromLen);
-						break;
-					case RangeDifference.ANCESTOR:
-						break;
-					case RangeDifference.CONFLICT:
-						if (APPEND_CONFLICT) {
-							s= toDoc.get(toStart, toLen);
-							s+= fromDoc.get(fromStart, fromLen);
-						} else
-							s= fromDoc.get(fromStart, fromLen);
-						break;
-					}
-					if (s != null) {
-						toDoc.replace(toStart, toLen, s);						
-						toPos.setOffset(toStart);
-						toPos.setLength(s.length());
-					}	
-				
-				} catch (BadLocationException e) {
-				}
-			}
-		
-			diff.setResolved(true);
-			updateResolveStatus();
-			
-			return true;
-		}
-		return false;
-	}
-
-	//---- scrolling
-
-	/**
-	 * Calculates virtual height (in lines) of views by adding the maximum of corresponding diffs.
-	 */
-	private int getVirtualHeight() {
-		int h= 1;
-		if (fAllDiffs != null) {
-			Iterator e= fAllDiffs.iterator();
-			for (int i= 0; e.hasNext(); i++) {
-				Diff diff= (Diff) e.next();
-				h+= diff.getMaxDiffHeight(fShowAncestor);
-			}
-		}
-		return h;
-	}
-	
-	/**
-	 * Calculates height (in lines) of right view by adding the height of the right diffs.
-	 */
-	private int getRightHeight() {
-		int h= 1;
-		if (fAllDiffs != null) {
-			Iterator e= fAllDiffs.iterator();
-			for (int i= 0; e.hasNext(); i++) {
-				Diff diff= (Diff) e.next();
-				h+= diff.getRightHeight();
-			}
-		}
-		return h;
-	}
-	
-	/**
-	 * The height of the TextEditors in lines.
-	 */
-	private int getViewportHeight() {
-		StyledText te= fLeft.getTextWidget();
-		
-		int vh= te.getClientArea().height;
-		if (vh == 0) {
-			Rectangle trim= te.computeTrim(0, 0, 0, 0);
-			int scrollbarHeight= trim.height;
-			
-			int headerHeight= getHeaderHeight();
-	
-			Composite composite= (Composite) getControl();
-			Rectangle r= composite.getClientArea();
-							
-			vh= r.height-headerHeight-scrollbarHeight;
-		}															
-
-		return vh / te.getLineHeight();
-	}
-	
-	/**
-	 * Returns the virtual position for the given view position.
-	 */
-	private int realToVirtualPosition(MergeSourceViewer w, int vpos) {
-
-		if (! fSynchronizedScrolling || fAllDiffs == null)
-			return vpos;
-				
-		int viewPos= 0;		// real view position
-		int virtualPos= 0;	// virtual position
-		Point region= new Point(0, 0);
-		
-		Iterator e= fAllDiffs.iterator();
-		while (e.hasNext()) {
-			Diff diff= (Diff) e.next();
-			Position pos= diff.getPosition(w);
-			w.getLineRange(pos, region);
-			int realHeight= region.y;
-			int virtualHeight= diff.getMaxDiffHeight(fShowAncestor);
-			if (vpos <= viewPos + realHeight) {	// OK, found!
-				vpos-= viewPos;	// make relative to this slot
-				// now scale position within this slot to virtual slot
-				if (realHeight <= 0)
-					vpos= 0;
-				else
-					vpos= (vpos*virtualHeight)/realHeight;
-				return virtualPos+vpos;
-			}
-			viewPos+= realHeight;
-			virtualPos+= virtualHeight;
-		}
-		return virtualPos;
-	}
-		
-	private void scrollVertical(int avpos, int lvpos, int rvpos, MergeSourceViewer allBut) {
-						
-		int s= 0;
-		
-		if (fSynchronizedScrolling) {
-			s= getVirtualHeight() - rvpos;
-			int height= fRight.getViewportLines()/4;
-			if (s < 0)
-				s= 0;
-			if (s > height)
-				s= height;
-		}
-
-		fInScrolling= true;
-				
-		if (isThreeWay() && allBut != fAncestor) {
-			if (fSynchronizedScrolling || allBut == null) {
-				int y= virtualToRealPosition(fAncestor, avpos+s)-s;
-				fAncestor.vscroll(y);
-			}
-		}
-
-		if (allBut != fLeft) {
-			if (fSynchronizedScrolling || allBut == null) {
-				int y= virtualToRealPosition(fLeft, lvpos+s)-s;
-				fLeft.vscroll(y);
-			}
-		}
-
-		if (allBut != fRight) {
-			if (fSynchronizedScrolling || allBut == null) {
-				int y= virtualToRealPosition(fRight, rvpos+s)-s;
-				fRight.vscroll(y);
-			}
-		}
-		
-		fInScrolling= false;
-		
-		if (isThreeWay() && fAncestorCanvas != null)
-			fAncestorCanvas.repaint();
-		
-		if (fLeftCanvas != null)
-			fLeftCanvas.repaint();
-		
-		Control center= getCenter();
-		if (center instanceof BufferedCanvas)
-			((BufferedCanvas)center).repaint();
-		
-		if (fRightCanvas != null)
-			fRightCanvas.repaint();
-	}
-		
-	/**
-	 * Updates Scrollbars with viewports.
-	 */
-	private void syncViewport(MergeSourceViewer w) {
-		
-		if (fInScrolling)
-			return;
-
-		int ix= w.getTopIndex();
-		int ix2= w.getDocumentRegionOffset();
-		
-		int viewPosition= realToVirtualPosition(w, ix-ix2);
-				
-		scrollVertical(viewPosition, viewPosition, viewPosition, w);	// scroll all but the given views
-		
-		if (fVScrollBar != null) {
-			int value= Math.max(0, Math.min(viewPosition, getVirtualHeight() - getViewportHeight()));
-			fVScrollBar.setSelection(value);
-			//refreshBirdEyeView();
-		}
-	}
-
-	/**
-	 */
-	private void updateVScrollBar() {
-		
-		if (Utilities.okToUse(fVScrollBar) && fSynchronizedScrolling) {
-			int virtualHeight= getVirtualHeight();
-			int viewPortHeight= getViewportHeight();
-			int pageIncrement= viewPortHeight-1;
-			int thumb= (viewPortHeight > virtualHeight) ? virtualHeight : viewPortHeight;
-						
-			fVScrollBar.setPageIncrement(pageIncrement);
-			fVScrollBar.setMaximum(virtualHeight);
-			fVScrollBar.setThumb(thumb);
-		}			
-	}
-	
-	/**
-	 * maps given virtual position into a real view position of this view.
-	 */
-	private int virtualToRealPosition(MergeSourceViewer part, int v) {
-			
-		if (! fSynchronizedScrolling || fAllDiffs == null)
-			return v;
-					
-		int virtualPos= 0;
-		int viewPos= 0;
-		Point region= new Point(0, 0);
-		
-		Iterator e= fAllDiffs.iterator();
-		while (e.hasNext()) {
-			Diff diff= (Diff) e.next();
-			Position pos= diff.getPosition(part);
-			int viewHeight= part.getLineRange(pos, region).y;
-			int virtualHeight= diff.getMaxDiffHeight(fShowAncestor);
-			if (v < (virtualPos + virtualHeight)) {
-				v-= virtualPos;		// make relative to this slot
-				if (viewHeight <= 0) {
-					v= 0;
-				} else {
-					v= (v*viewHeight)/virtualHeight;
-				}
-				return viewPos+v;
-			}
-			virtualPos+= virtualHeight;
-			viewPos+= viewHeight;
-		}
-		return viewPos;
-	}
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewerResources.properties b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewerResources.properties
deleted file mode 100644
index 3126d00..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewerResources.properties
+++ /dev/null
@@ -1,98 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-# @(#)TextMergeViewerResources.properties
-#
-# Resource strings for TextMergeViewer.java
-
-title= Text Compare
-
-saveDialog.title= Save Resource
-saveDialog.message= Resource has been modified. Save changes?
-
-compareProgressTask.title= Computing Differences...
-
-tooComplexError.title= Error
-tooComplexError.format= Too many differences. Turn on the ''Ignore White Space'' option or do a structure compare first.
-
-#####################################################
-# Toolbar actions
-#####################################################
-
-action.CopyLeftToRight.label=Copy Left to Right
-action.CopyLeftToRight.tooltip=Copy All from Left to Right
-action.CopyLeftToRight.image=copy_r_co.gif
-
-action.CopyRightToLeft.label=Copy Right to Left
-action.CopyRightToLeft.tooltip=Copy All Non-Conflicting Changes from Right to Left
-action.CopyRightToLeft.image=copy_l_co.gif
-
-action.CopyDiffLeftToRight.label=Copy Current Diff
-action.CopyDiffLeftToRight.tooltip=Copy Current Change from Left to Right
-action.CopyDiffLeftToRight.image=copycont_r_co.gif
-
-action.CopyDiffRightToLeft.label=Copy Current Diff
-action.CopyDiffRightToLeft.tooltip=Copy Current Change from Right to Left
-action.CopyDiffRightToLeft.image=copycont_l_co.gif
-
-action.NextDiff.label=Next
-action.NextDiff.tooltip=Select Next Change
-action.NextDiff.image=next_nav.gif
-
-action.PrevDiff.label=Previous
-action.PrevDiff.tooltip=Select Previous Change
-action.PrevDiff.image=prev_nav.gif
-
-action.EnableAncestor.label=Enable Ancestor Pane
-action.EnableAncestor.tooltip.unchecked=Show Ancestor Pane
-action.EnableAncestor.tooltip.checked=Hide Ancestor Pane
-action.EnableAncestor.description.unchecked=Show Ancestor Pane
-action.EnableAncestor.description.checked=Hide Ancestor Pane
-action.EnableAncestor.image=ancestorpane_co.gif
-
-action.IgnoreAncestor.label=Ignore Ancestor
-action.IgnoreAncestor.tooltip.unchecked=Two-Way Compare (Ignore Ancestor)
-action.IgnoreAncestor.tooltip.checked=Three-Way Compare
-action.IgnoreAncestor.description.unchecked=Two-Way Compare (Ignore Ancestor)
-action.IgnoreAncestor.description.checked=Three-Way Compare
-action.IgnoreAncestor.image=twowaycompare_co.gif
-
-
-#####################################################
-# Context menu actions
-#####################################################
-
-action.undo.label=Undo@Ctrl+Z
-action.undo.tooltip=Undo Last Operation
-
-action.redo.label=Redo@Ctrl+Y
-action.redo.tooltip=Redo Last Operation
-
-action.cut.label=Cut@Ctrl+X
-action.cut.tooltip=Cut Text Selection to Clipboard
-
-action.copy.label=Copy@Ctrl+C
-action.copy.tooltip=Copy Text Selection to Clipboard
-
-action.paste.label=Paste@Ctrl+V
-action.paste.tooltip=Replace Text Selection with Clipboard
-
-action.delete.label=Delete
-action.delete.tooltip=Delete Current Text Selection
-
-action.find.label=Find...@Ctrl+F
-action.find.tooltip=Find Occurrence
-
-action.selectAll.label=Select All@Ctrl+A
-action.selectAll.tooltip=Select All Changes
-
-action.save.label=Save@Ctrl+S
-action.save.tooltip=Save Changes
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/package.html b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/package.html
deleted file mode 100644
index 9f606fb..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/package.html
+++ /dev/null
@@ -1,45 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="Author" content="IBM">
-   <meta name="GENERATOR" content="Mozilla/4.75 [en] (WinNT; U) [Netscape]">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-Support for compare and merge viewers which show the
-content side-by-side.
-<h2>
-Package Specification</h2>
-
-The <b>ContentMergeViewer</b> is an abstract compare and merge viewer
-with two side-by-side content areas and an optional content area for a
-common ancestor (for three-way compare). Because the implementation makes
-no assumptions about the content type it is a subclass responsibility to
-deal with a specific type. Its subclass <b>ImageMergeViewer</b> in
-package org.eclipse.compare.internal shows how to base a simple
-mergeviewer for images on <b>ContentMergeViewer</b>.
-<p>
-
-A <b>ContentMergeViewer</b> accesses its model by means of a content
-provider which must implement the <b>IMergeViewerContentProvider</b> interface.
-<p>
-
-The <b>TextMergeViewer</b> is the standard concrete subclass of
-<b>ContentMergeViewer</b> for comparing and merging text content.
-<br>
-A text merge viewer uses the <b>org.eclipse.compare.rangedifferencer.RangeDifferencer</b>
-to perform a textual, line-by-line comparison of two (or three) input documents.
-For text lines that differ the <b>TextMergeViewer</b> uses an <b>ITokenComparator</b>
-to find longest sequences of matching and non-matching tokens.
-The <b>TextMergeViewer</b>'s
-default token compare works on characters separated by whitespace. If a
-different strategy is needed (for example, Java tokens in a Java-aware
-merge viewer), clients can create their own token comparators by implementing
-the <b>ITokenComparator</b> interface.
-<p>The <b>TextMergeViewer</b> not only works on whole documents but on
-subranges of documents too. In this case the viewer's input must be an
-<b>IDocumentRange</b> instead of an <b>IDocument</b>.
-
-</body>
-</html>
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/AbstractViewer.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/AbstractViewer.java
deleted file mode 100644
index d6c2021..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/AbstractViewer.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.Viewer;
-
-
-public abstract class AbstractViewer extends Viewer {
-
-	public void setInput(Object input) {
-	}
-	
-	public Object getInput() {
-		return null;
-	}
-	
-	public ISelection getSelection() {
-		return null;
-	}
-	
-	public void setSelection(ISelection s, boolean reveal) {
-	}
-	
-	public void refresh() {
-	}
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/AddFromHistoryAction.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/AddFromHistoryAction.java
deleted file mode 100644
index 4f43866..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/AddFromHistoryAction.java
+++ /dev/null
@@ -1,143 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import java.util.ResourceBundle;
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.swt.widgets.Shell;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.dialogs.ProgressMonitorDialog;
-
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-import org.eclipse.ui.IActionDelegate;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.*;
-
-
-public class AddFromHistoryAction implements IActionDelegate {
-	
-	private static final String BUNDLE_NAME= "org.eclipse.compare.internal.AddFromHistoryAction"; //$NON-NLS-1$
-
-	private ISelection fSelection;
-	
-	public AddFromHistoryAction() {
-	}
-	
-	public void selectionChanged(IAction a, ISelection s) {
-		fSelection= s;
-	}
-
-	public void run(IAction action) {
-			
-		ResourceBundle bundle= ResourceBundle.getBundle(BUNDLE_NAME);
-		String title= Utilities.getString(bundle, "title"); //$NON-NLS-1$
-			
-		Shell parentShell= CompareUIPlugin.getShell();
-		AddFromHistoryDialog dialog= null;
-
-		Object[] s= Utilities.getResources(fSelection);
-		
-		for (int i= 0; i < s.length; i++) {
-			Object o= s[i];
-			if (o instanceof IContainer) {
-				IContainer container= (IContainer) o;
-				
-				ProgressMonitorDialog pmdialog= new ProgressMonitorDialog(parentShell);	
-				IProgressMonitor pm= pmdialog.getProgressMonitor();
-				IFile[] states= null;
-				try {
-					states= container.findDeletedMembersWithHistory(IContainer.DEPTH_INFINITE, pm);
-				} catch (CoreException ex) {
-					pm.done();
-				}
-		
-				if (states == null || states.length <= 0) {
-					String msg= Utilities.getString(bundle, "noLocalHistoryError"); //$NON-NLS-1$
-					MessageDialog.openInformation(parentShell, title, msg);
-					return;
-				}
-		
-				if (dialog == null) {
-					dialog= new AddFromHistoryDialog(parentShell, bundle);
-					dialog.setHelpContextId(ICompareContextIds.ADD_FROM_HISTORY_DIALOG);
-				}
-					
-				if (dialog.select(container, states)) {		
-							
-					AddFromHistoryDialog.HistoryInput[] selected= dialog.getSelected();				
-
-					if (selected != null && selected.length > 0) {	
-						try {
-							updateWorkspace(bundle, parentShell, selected);
-	
-						} catch (InterruptedException x) {
-							// Do nothing. Operation has been canceled by user.
-							
-						} catch (InvocationTargetException x) {
-							String reason= x.getTargetException().getMessage();
-							MessageDialog.openError(parentShell, title, Utilities.getFormattedString(bundle, "replaceError", reason));	//$NON-NLS-1$
-						}
-					}
-				}
-			}
-		}
-	}
-	
-	void createContainers(IResource resource) throws CoreException {
-		IContainer container= resource.getParent();
-		if (container instanceof IFolder) {
-			IFolder parent= (IFolder) container;
-			if (parent != null && !parent.exists()) {
-				createContainers(parent);
-				parent.create(false, true, null);
-			}
-		}
-	}
-	
-	private void updateWorkspace(final ResourceBundle bundle, Shell shell,
-					final AddFromHistoryDialog.HistoryInput[] selected)
-									throws InvocationTargetException, InterruptedException {
-		
-		WorkspaceModifyOperation operation= new WorkspaceModifyOperation() {
-			public void execute(IProgressMonitor pm) throws InvocationTargetException {
-				try {
-					String taskName= Utilities.getString(bundle, "taskName"); //$NON-NLS-1$
-					pm.beginTask(taskName, selected.length);
-					
-					for (int i= 0; i < selected.length; i++) {
-						IFile file= selected[i].fFile;
-						IFileState fileState= selected[i].fFileState;
-						createContainers(file);
-						
-						SubProgressMonitor subMonitor= new SubProgressMonitor(pm, 1);
-						try {
-							file.create(fileState.getContents(), false, subMonitor);
-						} finally {
-							subMonitor.done();
-						}
-					}
-				} catch (CoreException e) {
-					throw new InvocationTargetException(e);
-				} finally {
-					pm.done();
-				}
-			}
-		};
-		
-		ProgressMonitorDialog pmdialog= new ProgressMonitorDialog(shell);				
-		pmdialog.run(false, true, operation);									
-	}
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/AddFromHistoryAction.properties b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/AddFromHistoryAction.properties
deleted file mode 100644
index e252071..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/AddFromHistoryAction.properties
+++ /dev/null
@@ -1,45 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-# @(#)AddFromHistoryAction.properties
-#
-# Resources for AddFromHistoryAction.java
-
-title= Restore from Local History
-
-memberPaneTitle= {0} - Available Files in Local History:
-
-treeTitleFormat= Local History of ''{0}''
-dateIcon= obj16/day_obj.gif
-timeIcon= obj16/resource_obj.gif
-
-memberDescription= Check files to restore from the local history:
-editionDescription= Select an edition of a file:
-
-treeFormat= {0}
-workspaceTreeFormat= {0} (Workspace File)
-parseErrorFormat= {0} (Parse Error)
-
-editionLabel= Local History ({0})
-workspaceEditionLabel= Workspace File
-
-targetLabel= {0}
-
-todayFormat= Today ({0})
-yesterdayFormat= Yesterday ({0})
-dayFormat= {0}
-
-buttonLabel= Restore
-
-noLocalHistoryError= No deleted resources in local history for selected container.
-replaceError=Can''t replace resource (reason: {0}).
-
-taskName=Restoring
\ No newline at end of file
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/AddFromHistoryDialog.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/AddFromHistoryDialog.java
deleted file mode 100644
index 028bb02..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/AddFromHistoryDialog.java
+++ /dev/null
@@ -1,463 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import java.io.*;
-import java.text.*;
-import java.util.*;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-
-import org.eclipse.jface.dialogs.*;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.Viewer;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.*;
-
-import org.eclipse.compare.*;
-
-
-public class AddFromHistoryDialog extends ResizableDialog {
-	
-	static class HistoryInput implements ITypedElement, IStreamContentAccessor, IModificationDate {
-		IFile fFile;
-		IFileState fFileState;
-		
-		HistoryInput(IFile file, IFileState fileState) {
-			fFile= file;
-			fFileState= fileState;
-		}
-		public InputStream getContents() throws CoreException {
-			return new BufferedInputStream(fFileState.getContents());
-		}
-		public String getName() {
-			return fFile.getName();
-		}
-		public String getType() {
-			return fFile.getFileExtension();
-		}
-		public Image getImage() {
-			return CompareUI.getImage(fFile);
-		}
-		public long getModificationDate() {
-			return fFileState.getModificationTime();
-		}
-	}
-	
-	static class FileHistory {
-		private IFile fFile;
-		private IFileState[] fStates;
-		private int fSelected;
-		
-		FileHistory(IFile file) {
-			fFile= file;
-		}
-		
-		IFile getFile() {
-			return fFile;
-		}
-		
-		IFileState[] getStates() {
-			if (fStates == null) {
-				try {
-					fStates= fFile.getHistory(new NullProgressMonitor());
-				} catch (CoreException ex) {
-				}
-			}
-			return fStates;
-		}
-		
-		IFileState getSelectedState() {
-			return getStates()[fSelected];
-		}
-		
-		void setSelected(IFileState state) {
-			for (int i= 0; i < fStates.length; i++) {
-				if (fStates[i] == state) {
-					fSelected= i;
-					return;
-				}
-			}
-		}
-		
-		HistoryInput getHistoryInput() {
-			return new HistoryInput(fFile, getSelectedState());
-		}
-		
-		boolean isSelected(int index) {
-			return index == fSelected;
-		}
-	}
-
-	private CompareConfiguration fCompareConfiguration;
-	private ArrayList fArrayList= new ArrayList();
-	private FileHistory fCurrentFileHistory;
-
-	// SWT controls
-	private CompareViewerSwitchingPane fContentPane;
-	private Button fCommitButton;
-	private Table fMemberTable;
-	private CompareViewerPane fMemberPane;
-	private Tree fEditionTree;
-	private CompareViewerPane fEditionPane;
-	private Image fDateImage;
-	private Image fTimeImage;
-
-
-	public AddFromHistoryDialog(Shell parent, ResourceBundle bundle) {
-		super(parent, bundle);
-					
-		String iconName= Utilities.getString(fBundle, "dateIcon", "obj16/day_obj.gif"); //$NON-NLS-2$ //$NON-NLS-1$
-		ImageDescriptor id= CompareUIPlugin.getImageDescriptor(iconName);
-		if (id != null)
-			fDateImage= id.createImage();
-		iconName= Utilities.getString(fBundle, "timeIcon", "obj16/resource_obj.gif"); //$NON-NLS-1$ //$NON-NLS-2$
-		id= CompareUIPlugin.getImageDescriptor(iconName);
-		if (id != null)
-			fTimeImage= id.createImage();
-	}
-	
-	public boolean select(IContainer root, IFile[] inputFiles) {
-		
-		create();	// create widgets
-		
-		String format= Utilities.getString(fBundle, "memberPaneTitle");	//$NON-NLS-1$
-		String title= MessageFormat.format(format, new Object[] { root.getName() });
-		fMemberPane.setImage(CompareUI.getImage(root));
-		fMemberPane.setText(title);
-		
-		// sort input files
-		final int count= inputFiles.length;
-		final IFile[] files= new IFile[count];
-		for (int i= 0; i < count; i++)
-			files[i]= (IFile) inputFiles[i];
-		if (count > 1)
-			internalSort(files, 0, count-1);
-			
-		
-		String prefix= root.getFullPath().toString();
-		
-		if (fMemberTable != null && !fMemberTable.isDisposed()) {
-			for (int i= 0; i < files.length; i++) {
-				IFile file= files[i];
-				String path= file.getFullPath().toString();
-				if (path.startsWith(prefix))
-					path= path.substring(prefix.length()+1);
-				TableItem ti= new TableItem(fMemberTable, SWT.NONE);
-				ti.setImage(CompareUI.getImage(file));
-				ti.setText(path);
-				ti.setData(new FileHistory(file));
-			}
-		}
-		
-		open();
-		
-		return (getReturnCode() == OK) && (fArrayList.size() > 0);
-	}
-		
-	HistoryInput[] getSelected() {
-		HistoryInput[] selected= new HistoryInput[fArrayList.size()];
-		Iterator iter= fArrayList.iterator();
-		for (int i= 0; iter.hasNext(); i++) {
-			FileHistory h= (FileHistory) iter.next();
-			selected[i]= h.getHistoryInput();
-		}
-		return selected;
-	}
-				
-	protected synchronized Control createDialogArea(Composite parent2) {
-		
-		Composite parent= (Composite) super.createDialogArea(parent2);
-
-		getShell().setText(Utilities.getString(fBundle, "title")); //$NON-NLS-1$
-		
-		org.eclipse.compare.Splitter vsplitter= new org.eclipse.compare.Splitter(parent,  SWT.VERTICAL);
-		vsplitter.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL
-					| GridData.VERTICAL_ALIGN_FILL | GridData.GRAB_VERTICAL));
-
-		vsplitter.addDisposeListener(
-			new DisposeListener() {
-				public void widgetDisposed(DisposeEvent e) {
-					if (fDateImage != null)
-						fDateImage.dispose();
-					if (fTimeImage != null)
-						fTimeImage.dispose();
-				}
-			}
-		);
-		
-		// we need two panes: the left for the elements, the right one for the editions
-		Splitter hsplitter= new Splitter(vsplitter,  SWT.HORIZONTAL);
-		
-		Composite c= new Composite(hsplitter, SWT.NONE);
-		GridLayout layout= new GridLayout();
-		layout.marginWidth= 0;
-		layout.marginHeight= 2;
-		layout.verticalSpacing= 2;
-		layout.numColumns= 1;
-		c.setLayout(layout);
-		Label l1= new Label(c, SWT.NONE);
-		l1.setText(Utilities.getString(fBundle, "memberDescription"));	//$NON-NLS-1$
-		fMemberPane= new CompareViewerPane(c, SWT.BORDER | SWT.FLAT);
-		GridData gd= new GridData(GridData.FILL_HORIZONTAL | GridData.FILL_VERTICAL);
-		fMemberPane.setLayoutData(gd);
-
-		fMemberTable= new Table(fMemberPane, SWT.CHECK | SWT.H_SCROLL | SWT.V_SCROLL);
-		fMemberTable.addSelectionListener(
-			new SelectionAdapter() {
-				public void widgetSelected(SelectionEvent e) {
-					if (e.detail == SWT.CHECK) {
-						if (e.item instanceof TableItem) {
-							TableItem ti= (TableItem) e.item;
-							if (ti.getChecked())
-								fArrayList.add(ti.getData());
-							else
-								fArrayList.remove(ti.getData());
-								
-							if (fCommitButton != null)
-								fCommitButton.setEnabled(fArrayList.size() > 0);
-						}
-					} else {
-						handleMemberSelect(e.item);
-					}
-				}
-			}
-		);
-				
-		fMemberPane.setContent(fMemberTable);
-		
-		c= new Composite(hsplitter, SWT.NONE);
-		layout= new GridLayout();
-		layout.marginWidth= 0;
-		layout.marginHeight= 2;
-		layout.verticalSpacing= 2;
-		layout.numColumns= 1;
-		c.setLayout(layout);
-		Label l2= new Label(c, SWT.NONE);
-		l2.setText(Utilities.getString(fBundle, "editionDescription"));	//$NON-NLS-1$
-		fEditionPane= new CompareViewerPane(c, SWT.BORDER | SWT.FLAT);
-		gd= new GridData(GridData.FILL_HORIZONTAL | GridData.FILL_VERTICAL);
-		fEditionPane.setLayoutData(gd);
-		
-		fEditionTree= new Tree(fEditionPane, SWT.H_SCROLL | SWT.V_SCROLL);
-		fEditionTree.addSelectionListener(
-			new SelectionAdapter() {
-				public void widgetSelected(SelectionEvent e) {
-					feedContent(e.item);
-				}
-			}
-		);
-		fEditionPane.setContent(fEditionTree);		
-		
-		applyDialogFont(parent); // to avoid applying font to compare viewer
-		fContentPane= new CompareViewerSwitchingPane(vsplitter, SWT.BORDER | SWT.FLAT) {
-			protected Viewer getViewer(Viewer oldViewer, Object input) {
-				return CompareUIPlugin.findContentViewer(oldViewer, input, this, fCompareConfiguration);	
-			}
-		};
-		vsplitter.setWeights(new int[] { 30, 70 });
-		
-		return parent;
-	}
-	
-	/**
-	 * Feeds selection from member viewer to edition viewer.
-	 */
-	private void handleMemberSelect(Widget w) {
-		Object data= null;
-		if (w != null)
-			data= w.getData();
-		if (data instanceof FileHistory) {
-			
-			FileHistory h= (FileHistory) data;
-			fCurrentFileHistory= h;
-			
-			IFile file= h.getFile();
-			IFileState[] states= h.getStates();
-			
-			fEditionPane.setImage(CompareUI.getImage(file));
-			String pattern= Utilities.getString(fBundle, "treeTitleFormat"); //$NON-NLS-1$
-			String title= MessageFormat.format(pattern, new Object[] { file.getName() });
-			fEditionPane.setText(title);
-			
-			if (fEditionTree != null) {
-				fEditionTree.setRedraw(false);
-				fEditionTree.removeAll();
-				for (int i= 0; i < states.length; i++) {
-					addEdition(new HistoryInput(file, states[i]), h.isSelected(i));
-				}
-				fEditionTree.setRedraw(true);
-			}
-		} else
-			fCurrentFileHistory= null;
-	}
-	
-	/**
-	 * Adds the given Pair to the edition tree.
-	 * It takes care of creating tree nodes for different dates.
-	 */
-	private void addEdition(HistoryInput input, boolean isSelected) {
-		if (fEditionTree == null || fEditionTree.isDisposed())
-			return;
-		
-		IFileState state= input.fFileState;
-		
-		// find last day
-		TreeItem[] days= fEditionTree.getItems();
-		TreeItem lastDay= null;
-		if (days.length > 0)
-			lastDay= days[days.length-1];
-						
-		long ldate= state.getModificationTime();		
-		long day= dayNumber(ldate);
-		Date date= new Date(ldate);
-		if (lastDay == null || day != dayNumber(((Date)lastDay.getData()).getTime())) {
-			lastDay= new TreeItem(fEditionTree, SWT.NONE);
-			lastDay.setImage(fDateImage);
-			String df= DateFormat.getDateInstance().format(date);
-			long today= dayNumber(System.currentTimeMillis());
-			
-			String formatKey;
-			if (day == today)
-				formatKey= "todayFormat"; //$NON-NLS-1$
-			else if (day == today-1)
-				formatKey= "yesterdayFormat"; //$NON-NLS-1$
-			else
-				formatKey= "dayFormat"; //$NON-NLS-1$
-			String pattern= Utilities.getString(fBundle, formatKey);
-			if (pattern != null)
-				df= MessageFormat.format(pattern, new String[] { df });
-			lastDay.setText(df);
-			lastDay.setData(date);
-		}
-		TreeItem ti= new TreeItem(lastDay, SWT.NONE);
-		ti.setImage(fTimeImage);
-		ti.setText(DateFormat.getTimeInstance().format(date));
-		ti.setData(input);
-
-		if (isSelected) {
-			lastDay.setExpanded(true);
-			fEditionTree.setSelection(new TreeItem[] { ti });
-			feedContent(ti);
-		}
-	}
-						
-	/**
-	 * Returns the number of s since Jan 1st, 1970.
-	 * The given date is converted to GMT and daylight saving is taken into account too.
-	 */
-	private long dayNumber(long date) {
-		int ONE_DAY_MS= 24*60*60 * 1000; // one day in milli seconds
-		
-		Calendar calendar= Calendar.getInstance();
-		long localTimeOffset= calendar.get(Calendar.ZONE_OFFSET) + calendar.get(Calendar.DST_OFFSET);
-		
-		return (date + localTimeOffset) / ONE_DAY_MS;
-	}
-	
-	/**
-	 * Feeds the tree viewer's selection to the contentviewer
-	 */
-	private void feedContent(Widget w) {
-		if (fContentPane != null && !fContentPane.isDisposed()) {
-			Object o= w.getData();
-			if (o instanceof HistoryInput) {
-				HistoryInput selected= (HistoryInput) o;
-				fContentPane.setInput(selected);
-				fContentPane.setText(getEditionLabel(selected));
-				fContentPane.setImage(fTimeImage);
-				
-				if (fCurrentFileHistory != null)
-					fCurrentFileHistory.setSelected(selected.fFileState);
-			} else {
-				fContentPane.setInput(null);
-			}
-		}
-	}
-	
-	protected String getEditionLabel(HistoryInput input) {
-		String format= Utilities.getString(fBundle, "historyEditionLabel", null);	//$NON-NLS-1$
-		if (format == null)
-			format= Utilities.getString(fBundle, "editionLabel");	//$NON-NLS-1$
-		if (format == null)
-			format= "x{0}";	//$NON-NLS-1$
-		
-		long modDate= input.getModificationDate();
-		String date= DateFormat.getDateTimeInstance().format(new Date(modDate));
-		
-		return MessageFormat.format(format, new Object[] { date });
-	}
-			
-	/* (non-Javadoc)
-	 * Method declared on Dialog.
-	 */
-	protected void createButtonsForButtonBar(Composite parent) {
-		String buttonLabel= Utilities.getString(fBundle, "buttonLabel", IDialogConstants.OK_LABEL); //$NON-NLS-1$
-		// a 'Cancel' and a 'Add' button
-		fCommitButton= createButton(parent, IDialogConstants.OK_ID, buttonLabel, true);
-		fCommitButton.setEnabled(false);
-		createButton(parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, false);
-	}
-	
-	/**
-	 * Returns true if the pathname of f1 comes after f2
-	 */
-	private static boolean greaterThan(IFile f1, IFile f2) {
-		String[] ss1= f1.getFullPath().segments();
-		String[] ss2= f2.getFullPath().segments();
-		int l1= ss1.length;
-		int l2= ss2.length;
-		int n= Math.max(l1, l2);
-		
-		for (int i= 0; i < n; i++) {
-			String s1= i < l1 ? ss1[i] : ""; //$NON-NLS-1$
-			String s2= i < l2 ? ss2[i] : ""; //$NON-NLS-1$
-			int rc= s1.compareToIgnoreCase(s2);
-			if (rc != 0)
-				return rc < 0;
-		}
-		return false;
-	}
-	
-	private static void internalSort(IFile[] keys, int left, int right) { 
-	
-		int original_left= left;
-		int original_right= right;
-		
-		IFile mid= keys[(left + right) / 2]; 
-		do { 
-			while (greaterThan(keys[left], mid))
-				left++; 
-			
-			while (greaterThan(mid, keys[right]))
-				right--; 
-		
-			if (left <= right) { 
-				IFile tmp= keys[left]; 
-				keys[left]= keys[right]; 
-				keys[right]= tmp;			
-				left++; 
-				right--; 
-			} 
-		} while (left <= right);
-		
-		if (original_left < right)
-			internalSort(keys, original_left, right); 
-		
-		if (left < original_right)
-			internalSort(keys, left, original_right); 
-	}
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/BinaryCompareViewer.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/BinaryCompareViewer.java
deleted file mode 100644
index c9d673e..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/BinaryCompareViewer.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import java.io.*;
-import java.util.ResourceBundle;
-import java.text.MessageFormat;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.help.WorkbenchHelp;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.compare.*;
-import org.eclipse.compare.structuremergeviewer.ICompareInput;
-
-/**
- * A simple compare viewer for binary files.
- * Shows the position of the first non-matching byte.
- */
-public class BinaryCompareViewer extends AbstractViewer {
-
-	private static final String BUNDLE_NAME= "org.eclipse.compare.internal.BinaryCompareViewerResources"; //$NON-NLS-1$
-
-	private static final int EOF= -1;
-	private Text fControl;
-	private ICompareInput fInput;
-	private ResourceBundle fBundle;
-	private boolean fLeftIsLocal;
-	
-	
-	public BinaryCompareViewer(Composite parent, CompareConfiguration cc) {
-		
-		WorkbenchHelp.setHelp(parent, ICompareContextIds.BINARY_COMPARE_VIEW);
-
-		fBundle= ResourceBundle.getBundle(BUNDLE_NAME);
-
-		fControl= new Text(parent, SWT.NONE);
-		fControl.setEditable(false);
-		fControl.setData(CompareUI.COMPARE_VIEWER_TITLE, Utilities.getString(fBundle, "title")); //$NON-NLS-1$
-		
-		fLeftIsLocal= Utilities.getBoolean(cc, "LEFT_IS_LOCAL", false); //$NON-NLS-1$
-	}
-
-	public Control getControl() {
-		return fControl;
-	}
-
-	public void setInput(Object input) {
-		if (fControl != null && input instanceof ICompareInput) {
-			fInput= (ICompareInput) input;
-			
-			InputStream left= null;
-			InputStream right= null;
-			
-			String message= null;
-			try {
-				left= getStream(fInput.getLeft());
-				right= getStream(fInput.getRight());
-				
-				if (left != null && right != null) {
-					int pos= 0;
-					while (true) {
-						int l= left.read();
-						int r= right.read();
-						if (l != r) {
-							String format= Utilities.getString(fBundle, "diffMessageFormat"); //$NON-NLS-1$
-							message= MessageFormat.format(format, new String[] { Integer.toString(pos) } );
-							break;
-						}
-						if (l == EOF)
-							break;
-						pos++;
-					}
-				} else if (left == null && right == null) {
-					message= Utilities.getString(fBundle, "deleteConflictMessage"); //$NON-NLS-1$
-				} else if (left == null) {
-					if (fLeftIsLocal)
-						message= Utilities.getString(fBundle, "deletedMessage"); //$NON-NLS-1$
-					else
-						message= Utilities.getString(fBundle, "addedMessage"); //$NON-NLS-1$
-				} else if (right == null) {
-					if (fLeftIsLocal)
-						message= Utilities.getString(fBundle, "addedMessage"); //$NON-NLS-1$
-					else
-						message= Utilities.getString(fBundle, "deletedMessage"); //$NON-NLS-1$
-				}
-			} catch (CoreException ex) {
-				message= Utilities.getString(fBundle, "errorMessage"); //$NON-NLS-1$
-			} catch (IOException ex) {
-				message= Utilities.getString(fBundle, "errorMessage"); //$NON-NLS-1$
-			} finally {
-				if (left != null) {
-					try {
-						left.close();
-					} catch (IOException ex) {
-					}
-				}
-				if (right != null) {
-					try {
-						right.close();
-					} catch (IOException ex) {
-					}
-				}			
-			}
-			if (message != null)
-				fControl.setText(message);				
-		}
-	}
-
-	public Object getInput() {
-		return fInput;
-	}
-
-	private InputStream getStream(ITypedElement input) throws CoreException {
-		if (input instanceof IStreamContentAccessor)
-			return ((IStreamContentAccessor)input).getContents();
-		return null;
-	}
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/BinaryCompareViewerCreator.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/BinaryCompareViewerCreator.java
deleted file mode 100644
index 8c98ec6..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/BinaryCompareViewerCreator.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.jface.viewers.Viewer;
-
-import org.eclipse.compare.*;
-
-/**
- * A factory object for the <code>BinaryCompareViewer</code>.
- * This indirection is necessary because only objects with a default
- * constructor can be created via an extension point
- * (this precludes Viewers).
- */
-public class BinaryCompareViewerCreator implements IViewerCreator {
-
-	public Viewer createViewer(Composite parent, CompareConfiguration mp) {
-		return new BinaryCompareViewer(parent, mp);
-	}
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/BinaryCompareViewerResources.properties b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/BinaryCompareViewerResources.properties
deleted file mode 100644
index dbfc7d7..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/BinaryCompareViewerResources.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-# @(#)BinaryCompareViewerResources.properties
-#
-# Resource strings for BinaryCompareViewer.java
-
-title= Binary Compare
-
-diffMessageFormat= First bytes differ at position {0}
-deleteConflictMessage= Delete Conflict
-addedMessage= Added Resource
-deletedMessage= Removed Resource
-errorMessage= Internal Error
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/BufferedCanvas.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/BufferedCanvas.java
deleted file mode 100644
index 79b3425..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/BufferedCanvas.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.events.*;
-
-/**
- * A Canvas which reduces flicker by drawing in an off screen buffer.
- */
-public abstract class BufferedCanvas extends Canvas {
-
-	//private static final boolean USE_DOUBLE_BUFFER= !"carbon".equals(SWT.getPlatform()); //$NON-NLS-1$
-	private static final boolean USE_DOUBLE_BUFFER= true;
-	
-	/** The drawable for double buffering */
-	Image fBuffer;
-
-	public BufferedCanvas(Composite parent, int flags) {
-		super(parent, flags + SWT.NO_BACKGROUND);
-
-		addPaintListener(
-			new PaintListener() {
-				public void paintControl(PaintEvent event) {
-					doubleBufferPaint(event.gc);
-				}
-			}
-		);
-
-		addDisposeListener(
-			new DisposeListener() {
-				public void widgetDisposed(DisposeEvent e) {
-					if (fBuffer != null) {
-						fBuffer.dispose();
-						fBuffer= null;
-					}
-				}
-			}
-		);
-	}
-
-	public void repaint() {
-		if (!isDisposed()) {
-			GC gc= new GC(this);
-			doubleBufferPaint(gc);
-			gc.dispose();
-		}
-	}
-
-	/**
-	 * Double buffer drawing.
-	 */
-	void doubleBufferPaint(GC dest) {
-		
-		if (!USE_DOUBLE_BUFFER) {
-			doPaint(dest);
-			return;
-		}
-
-		Point size= getSize();
-
-		if (size.x <= 1 || size.y <= 1) // we test for <= 1 because on X11 controls have initial size 1,1
-			return;
-
-		if (fBuffer != null) {
-			Rectangle r= fBuffer.getBounds();
-			if (r.width != size.x || r.height != size.y) {
-				fBuffer.dispose();
-				fBuffer= null;
-			}
-		}
-		if (fBuffer == null)
-			fBuffer= new Image(getDisplay(), size.x, size.y);
-
-		GC gc= new GC(fBuffer);
-		try {
-			gc.setBackground(getBackground());
-			gc.fillRectangle(0, 0, size.x, size.y);
-			doPaint(gc);
-		} finally {
-			gc.dispose();
-		}
-
-		dest.drawImage(fBuffer, 0, 0);
-	}
-
-	abstract public void doPaint(GC gc);
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/BufferedResourceNode.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/BufferedResourceNode.java
deleted file mode 100644
index 9c5db3d..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/BufferedResourceNode.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import java.io.*;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.compare.*;
-import org.eclipse.compare.structuremergeviewer.IStructureComparator;
-
-/**
- * A buffer for a workspace resource.
- */
-public class BufferedResourceNode extends ResourceNode {
-	
-	private boolean fDirty= false;
-	private IFile fDeleteFile;
-		
-	/**
-	 * Creates a <code>ResourceNode</code> for the given resource.
-	 *
-	 * @param resource the resource
-	 */
-	public BufferedResourceNode(IResource resource) {
-		super(resource);
-	}
-			
-	protected IStructureComparator createChild(IResource child) {
-		return new BufferedResourceNode(child);
-	}
-		
-	public void setContent(byte[] contents) {
-		fDirty= true;
-		super.setContent(contents);
-	}	
-
-	/**
-	 * Commits buffered contents to resource.
-	 */
-	public void commit(IProgressMonitor pm) throws CoreException {
-		if (fDirty) {
-			
-			if (fDeleteFile != null) {
-				fDeleteFile.delete(true, true, pm);
-				return;
-			}
-			
-			IResource resource= getResource();
-			if (resource instanceof IFile) {
-				ByteArrayInputStream is= new ByteArrayInputStream(getContent());
-				try {
-					IFile file= (IFile) resource;
-					if (file.exists())
-						file.setContents(is, false, true, pm);
-					else
-						file.create(is, false, pm);
-					fDirty= false;
-				} finally {
-					if (is != null)
-						try {
-							is.close();
-						} catch(IOException ex) {
-						}
-				}
-			}
-		}
-	}
-	
-	public ITypedElement replace(ITypedElement child, ITypedElement other) {
-		
-		if (child == null) {	// add resource
-			// create a node without a resource behind it!
-			IResource resource= getResource();
-			if (resource instanceof IFolder) {
-				IFolder folder= (IFolder) resource;
-				IFile file= folder.getFile(other.getName());
-				child= new BufferedResourceNode(file);
-			}
-		}
-		
-		if (other == null) {	// delete resource
-			IResource resource= getResource();
-			if (resource instanceof IFolder) {
-				IFolder folder= (IFolder) resource;
-				IFile file= folder.getFile(child.getName());
-				if (file != null && file.exists()) {
-					fDeleteFile= file;
-					fDirty= true;
-				}
-			}
-			return null;
-		}
-		
-		if (other instanceof IStreamContentAccessor && child instanceof IEditableContent) {
-			IEditableContent dst= (IEditableContent) child;
-			
-			try {
-				InputStream is= ((IStreamContentAccessor)other).getContents();
-				byte[] bytes= Utilities.readBytes(is);
-				if (bytes != null)
-					dst.setContent(bytes);
-			} catch (CoreException ex) {
-			}
-		}
-		return child;
-	}
-}
-
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ChangePropertyAction.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ChangePropertyAction.java
deleted file mode 100644
index 824ed3e..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ChangePropertyAction.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import java.util.ResourceBundle;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.compare.CompareConfiguration;
-
-/**
- * Toggles a boolean property of an <code>ICompareConfiguration</code>.
- */
-public class ChangePropertyAction extends Action {
-
-	private CompareConfiguration fCompareConfiguration;
-	private String fPropertyKey;
-	private ResourceBundle fBundle;
-	private String fPrefix;
-
-
-	public ChangePropertyAction(ResourceBundle bundle, CompareConfiguration cc, String rkey, String pkey) {
-		fPropertyKey= pkey;
-		fBundle= bundle;
-		fPrefix= rkey;
-		Utilities.initAction(this, fBundle, fPrefix);
-		setCompareConfiguration(cc);
-	}
-
-	public void run() {
-		boolean b= !Utilities.getBoolean(fCompareConfiguration, fPropertyKey, false);
-		setChecked(b);
-		if (fCompareConfiguration != null)
-			fCompareConfiguration.setProperty(fPropertyKey, new Boolean(b));
-	}
-
-	public void setChecked(boolean state) {
-		super.setChecked(state);
-		Utilities.initToggleAction(this, fBundle, fPrefix, state);
-	}
-	
-	public void setCompareConfiguration(CompareConfiguration cc) {
-		fCompareConfiguration= cc;
-		setChecked(Utilities.getBoolean(fCompareConfiguration, fPropertyKey, false));
-	}
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ColorEditor.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ColorEditor.java
deleted file mode 100644
index 787c3fb..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ColorEditor.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.ColorDialog;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-
-import org.eclipse.jface.resource.JFaceResources;
-
-/**
- * A "button" of a certain color determined by the color picker.
- */
-public class ColorEditor {
-	
-	private Point fExtent;
-	private Image fImage;
-	private RGB fColorValue;
-	private Color fColor;
-	private Button fButton;
-	
-	public ColorEditor(Composite parent) {
-		
-		fButton= new Button(parent, SWT.PUSH);
-		fExtent= computeImageSize(parent);
-		fImage= new Image(parent.getDisplay(), fExtent.x, fExtent.y);
-		
-		GC gc= new GC(fImage);
-		gc.setBackground(fButton.getBackground());
-		gc.fillRectangle(0, 0, fExtent.x, fExtent.y);
-		gc.dispose();
-		
-		fButton.setImage(fImage);
-		fButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent event) {
-				ColorDialog colorDialog= new ColorDialog(fButton.getShell());
-				colorDialog.setRGB(fColorValue);
-				RGB newColor = colorDialog.open();
-				if (newColor != null) {
-					fColorValue= newColor;
-					updateColorImage();
-				}
-			}
-		});
-		
-		fButton.addDisposeListener(new DisposeListener() {
-			public void widgetDisposed(DisposeEvent event) {
-				if (fImage != null)  {
-					fImage.dispose();
-					fImage= null;
-				}
-				if (fColor != null) {
-					fColor.dispose();
-					fColor= null;
-				}
-			}
-		});
-	}
-	
-	public RGB getColorValue() {
-		return fColorValue;
-	}
-	
-	public void setColorValue(RGB rgb) {
-		fColorValue= rgb;
-		updateColorImage();
-	}
-	
-	public Button getButton() {
-		return fButton;
-	}
-	
-	protected void updateColorImage() {
-		
-		Display display= fButton.getDisplay();
-		
-		GC gc= new GC(fImage);
-		gc.setForeground(display.getSystemColor(SWT.COLOR_BLACK));
-		gc.drawRectangle(0, 2, fExtent.x - 1, fExtent.y - 4);
-		
-		if (fColor != null)
-			fColor.dispose();
-			
-		fColor= new Color(display, fColorValue);
-		gc.setBackground(fColor);
-		gc.fillRectangle(1, 3, fExtent.x - 2, fExtent.y - 5);
-		gc.dispose();
-		
-		fButton.setImage(fImage);
-	}
-	
-	protected Point computeImageSize(Control window) {
-		GC gc= new GC(window);
-		Font f= JFaceResources.getFontRegistry().get(JFaceResources.DEFAULT_FONT);
-		gc.setFont(f);
-		int height= gc.getFontMetrics().getHeight();
-		gc.dispose();
-		Point p= new Point(height * 3 - 6, height);
-		return p;
-	}
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareAction.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareAction.java
deleted file mode 100644
index d502e93..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareAction.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-
-import org.eclipse.ui.IObjectActionDelegate;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.compare.CompareConfiguration;
-import org.eclipse.compare.CompareUI;
-
-
-/*
- * The "Compare with each other" action
- */
-public class CompareAction implements IObjectActionDelegate {
-
-	private ResourceCompareInput fInput;
-	private IWorkbenchPage fWorkbenchPage;
-	private ISelection fSelection;
-
-	public void run(IAction action) {
-		if (fInput != null) {
-			fInput.setSelection(fSelection);
-			fInput.initializeCompareConfiguration();
-			CompareUI.openCompareEditorOnPage(fInput, fWorkbenchPage);
-			fInput= null;	// don't reuse this input!
-		}
-	}
-
-	public void selectionChanged(IAction action, ISelection selection) {
-		if (fInput == null) {
-			CompareConfiguration cc= new CompareConfiguration();
-			// buffered merge mode: don't ask for confirmation
-			// when switching between modified resources
-			cc.setProperty(CompareEditor.CONFIRM_SAVE_PROPERTY, new Boolean(false));
-						
-			fInput= new ResourceCompareInput(cc);
-		}
-		fSelection= selection;
-		action.setEnabled(fInput.isEnabled(selection));
-	}
-
-	public void setActivePart(IAction action, IWorkbenchPart targetPart) {
-		fWorkbenchPage= targetPart.getSite().getPage();
-	}
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareDialog.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareDialog.java
deleted file mode 100644
index 335a023..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareDialog.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.compare.CompareEditorInput;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.OperationCanceledException;
-
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.dialogs.ProgressMonitorDialog;
-import org.eclipse.jface.util.Assert;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Shell;
-
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-
-
-public class CompareDialog extends ResizableDialog implements IPropertyChangeListener {
-		
-	private CompareEditorInput fCompareEditorInput;
-	private Button fCommitButton;
-
-
-	CompareDialog(Shell shell, CompareEditorInput input) {
-		super(shell, null);
-		
-		Assert.isNotNull(input);
-		fCompareEditorInput= input;
-		fCompareEditorInput.addPropertyChangeListener(this);
-		setHelpContextId(ICompareContextIds.COMPARE_DIALOG);
-	}
-	
-	public boolean close() {
-		if (super.close()) {
-			if (fCompareEditorInput != null)
-				fCompareEditorInput.addPropertyChangeListener(this);
-			return true;
-		}
-		return false;
-	}
-	
-	/* (non-Javadoc)
-	 * Method declared on Dialog.
-	 */
-	protected void createButtonsForButtonBar(Composite parent) {
-		fCommitButton= createButton(parent, IDialogConstants.OK_ID, Utilities.getString("CompareDialog.commitAction.label"), true); //$NON-NLS-1$
-		fCommitButton.setEnabled(false);
-		createButton(parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, false);
-	}
-
-	public void propertyChange(PropertyChangeEvent event) {
-		if (fCommitButton != null && fCompareEditorInput != null)
-			fCommitButton.setEnabled(fCompareEditorInput.isSaveNeeded());
-	}
-	
-	/* (non-Javadoc)
-	 * Method declared on Dialog.
-	 */
-	protected Control createDialogArea(Composite parent2) {
-						
-		Composite parent= (Composite) super.createDialogArea(parent2);
-
-		Control c= fCompareEditorInput.createContents(parent);
-		c.setLayoutData(new GridData(GridData.FILL_BOTH));
-		
-		Shell shell= c.getShell();
-		shell.setText(fCompareEditorInput.getTitle());
-		shell.setImage(fCompareEditorInput.getTitleImage());
-		applyDialogFont(parent);
-		return parent;
-	}
-		
-	/* (non-Javadoc)
-	 * Method declared on Window.
-	 */
-	public int open() {
-		
-		int rc= super.open();
-		
-		if (rc == OK && fCompareEditorInput.isSaveNeeded()) {
-						
-			WorkspaceModifyOperation operation= new WorkspaceModifyOperation() {
-				public void execute(IProgressMonitor pm) throws CoreException {
-					fCompareEditorInput.saveChanges(pm);
-				}
-			};
-						
-			Shell shell= getParentShell();
-			ProgressMonitorDialog pmd= new ProgressMonitorDialog(shell);				
-			try {
-				operation.run(pmd.getProgressMonitor());				
-				
-			} catch (InterruptedException x) {
-			} catch (OperationCanceledException x) {
-			} catch (InvocationTargetException x) {
-				String title= Utilities.getString("CompareDialog.saveErrorTitle"); //$NON-NLS-1$
-				String msg= Utilities.getString("CompareDialog.saveErrorMessage"); //$NON-NLS-1$
-				MessageDialog.openError(shell, title, msg + x.getTargetException().getMessage());
-			}
-		}
-		
-		return rc;
-	}
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareEditor.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareEditor.java
deleted file mode 100644
index 8342461..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareEditor.java
+++ /dev/null
@@ -1,232 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.*;
-
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.util.*;
-
-import org.eclipse.ui.*;
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-import org.eclipse.ui.help.WorkbenchHelp;
-import org.eclipse.ui.part.EditorPart;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.runtime.*;
-
-import org.eclipse.compare.*;
-
-
-/**
- * A CompareEditor takes a ICompareEditorInput as input.
- * Most functionality is delegated to the ICompareEditorInput.
- */
-public class CompareEditor extends EditorPart implements IReusableEditor {
-	
-	/**
-	 * Internal property change listener for handling changes in the editor's input.
-	 */
-	class PropertyChangeListener implements IPropertyChangeListener {
-		/*
-		 * @see IPropertyChangeListener#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
-		 */
-		public void propertyChange(PropertyChangeEvent event) {
-			CompareEditor.this.propertyChange(event);
-		}
-	};
-
-	public final static String CONFIRM_SAVE_PROPERTY= "org.eclipse.compare.internal.CONFIRM_SAVE_PROPERTY"; //$NON-NLS-1$
-	
-	private IActionBars fActionBars;
-	/** The editor's property change listener. */
-	private IPropertyChangeListener fPropertyChangeListener= new PropertyChangeListener();
-	/** the SWT control */
-	private Control fControl;
-	
-	
-	public CompareEditor() {
-	}
-		
-	/* package */ CompareConfiguration getCompareConfiguration() {
-		IEditorInput input= getEditorInput();
-		if (input instanceof CompareEditorInput)
-			return ((CompareEditorInput)input).getCompareConfiguration();
-		return null;
-	}
-				
-	public void init(IEditorSite site, IEditorInput input) throws PartInitException {
-		
-		if (!(input instanceof CompareEditorInput))
-			throw new PartInitException(Utilities.getString("CompareEditor.invalidInput")); //$NON-NLS-1$
-				
-		setSite(site);
-		setInput(input);
-	}
-	
-	public void setInput(IEditorInput input) {
-		try {
-			doSetInput(input);			
-		} catch (CoreException x) {
-			String title= Utilities.getString("CompareEditor.error.setinput.title"); //$NON-NLS-1$
-			String msg= Utilities.getString("CompareEditor.error.setinput.message"); //$NON-NLS-1$
-			ErrorDialog.openError(getSite().getShell(), title, msg, x.getStatus());
-		}				
-	}
-	
-	public void doSetInput(IEditorInput input) throws CoreException {
-	
-		if (!(input instanceof CompareEditorInput)) {
-			IStatus s= new Status(IStatus.ERROR, PlatformUI.PLUGIN_ID, IStatus.OK, Utilities.getString("CompareEditor.invalidInput"), null); //$NON-NLS-1$
-			throw new CoreException(s);
-		}
-
-		IEditorInput oldInput= getEditorInput();
-		if (oldInput instanceof IPropertyChangeNotifier)
-			((IPropertyChangeNotifier)input).removePropertyChangeListener(fPropertyChangeListener);
-			
-		super.setInput(input);
-		
-		CompareEditorInput cei= (CompareEditorInput) input;
-
-		setTitleImage(cei.getTitleImage());
-		setTitle(cei.getTitle());
-				
-		if (input instanceof IPropertyChangeNotifier)
-			((IPropertyChangeNotifier)input).addPropertyChangeListener(fPropertyChangeListener);
-			
-		if (oldInput != null) {
-			if (fControl != null && !fControl.isDisposed()) {
-				Point oldSize= fControl.getSize();
-				Composite parent= fControl.getParent();
-				fControl.dispose();
-				createPartControl(parent);
-				if (fControl != null)
-					fControl.setSize(oldSize);
-			}
-		}
-	}
-	
-	public IActionBars getActionBars() {
-		return fActionBars;
-	}
-	
-	public void setActionBars(IActionBars actionBars) {
-		fActionBars= actionBars;
-	}
-	
-	/*
-	 * @see IDesktopPart#createPartControl(Composite)
-	 */
-	public void createPartControl(Composite parent) {
-		parent.setData(this);
-		
-		IEditorInput input= getEditorInput();
-		if (input instanceof CompareEditorInput) {
-			fControl= ((CompareEditorInput) input).createContents(parent);
-			WorkbenchHelp.setHelp(fControl, ICompareContextIds.COMPARE_EDITOR);
-		}
-	}
-	
-	/*
-	 * @see DesktopPart#dispose
-	 */
-	public void dispose() {
-	
-		IEditorInput input= getEditorInput();
-		if (input instanceof IPropertyChangeNotifier)
-			((IPropertyChangeNotifier)input).removePropertyChangeListener(fPropertyChangeListener);
-								
-		super.dispose();
-		
-		fPropertyChangeListener= null;
-	}
-			
-	/*
-	 * @see IDesktopPart#setFocus
-	 */
-	public void setFocus() {
-		IEditorInput input= getEditorInput();
-		if (input instanceof CompareEditorInput)
-			((CompareEditorInput)input).setFocus();
-	}
-	
-	/**
-	 * Returns false because the editor doesn't support "Save As...".
-	 */
-	public boolean isSaveAsAllowed() {
-		return false;
-	}
-	
-	public void gotoMarker(IMarker marker) {
-	}
-	
-	/**
-	 * Always throws an AssertionFailedException.
-	 */
-	/*
-	 * @see IEditorPart#doSaveAs()
-	 */
-	public void doSaveAs() {
-		Assert.isTrue(false); // Save As not supported for CompareEditor
-	}
-	
-	/*
-	 * @see IEditorPart#doSave()
-	 */
-	public void doSave(IProgressMonitor progressMonitor) {
-		
-		final IEditorInput input= getEditorInput();
-		
-		WorkspaceModifyOperation operation= new WorkspaceModifyOperation() {
-			public void execute(IProgressMonitor pm) throws CoreException {
-				if (input instanceof CompareEditorInput)
-					((CompareEditorInput)input).saveChanges(pm);
-			}
-		};
-
-		Shell shell= getSite().getShell();
-		
-		try {
-			
-			operation.run(progressMonitor);
-									
-			firePropertyChange(PROP_DIRTY);
-			
-		} catch (InterruptedException x) {
-		} catch (OperationCanceledException x) {
-		} catch (InvocationTargetException x) {
-			String title= Utilities.getString("CompareEditor.saveError.title"); //$NON-NLS-1$
-			String reason= x.getTargetException().getMessage();
-			MessageDialog.openError(shell, title, Utilities.getFormattedString("CompareEditor.cantSaveError", reason));	//$NON-NLS-1$
-		}
-	}	
-		
-	/*
-	 * @see IEditorPart#isDirty()
-	 */
-	public boolean isDirty() {
-		IEditorInput input= getEditorInput();
-		if (input instanceof CompareEditorInput)
-			return ((CompareEditorInput)input).isSaveNeeded();
-		return false;
-	}
-	
-	public void propertyChange(PropertyChangeEvent event) {
-		if (isDirty())
-			firePropertyChange(PROP_DIRTY);
-	}
-}
-
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareEditorContributor.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareEditorContributor.java
deleted file mode 100644
index 87735fe..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareEditorContributor.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import java.util.ResourceBundle;
-
-import org.eclipse.jface.action.*;
-
-import org.eclipse.ui.*;
-import org.eclipse.ui.help.WorkbenchHelp;
-import org.eclipse.ui.part.EditorActionBarContributor;
-
-import org.eclipse.compare.*;
-
-
-public class CompareEditorContributor extends EditorActionBarContributor {
-	
-	private IEditorPart fActiveEditorPart= null;
-
-	private IgnoreWhiteSpaceAction fIgnoreWhitespace;
-	private NavigationAction fNext;
-	private NavigationAction fPrevious;
-	
-	private NavigationAction fToolbarNext;
-	private NavigationAction fToolbarPrevious;
-
-
-	public CompareEditorContributor() {
-		ResourceBundle bundle= CompareUIPlugin.getResourceBundle();
-		
-		fIgnoreWhitespace= new IgnoreWhiteSpaceAction(bundle, null);
-		WorkbenchHelp.setHelp(fIgnoreWhitespace, ICompareContextIds.IGNORE_WHITESPACE_ACTION);
-		
-		fNext= new NavigationAction(bundle, true);
-		WorkbenchHelp.setHelp(fNext, ICompareContextIds.GLOBAL_NEXT_DIFF_ACTION);
-		
-		fPrevious= new NavigationAction(bundle, false);
-		WorkbenchHelp.setHelp(fPrevious, ICompareContextIds.GLOBAL_PREVIOUS_DIFF_ACTION);
-		
-		fToolbarNext= new NavigationAction(bundle, true);
-		WorkbenchHelp.setHelp(fToolbarNext,ICompareContextIds.NEXT_DIFF_ACTION);
-		
-		fToolbarPrevious= new NavigationAction(bundle, false);
-		WorkbenchHelp.setHelp(fToolbarPrevious, ICompareContextIds.PREVIOUS_DIFF_ACTION);
-	}
-
-	/*
-	 * @see EditorActionBarContributor#contributeToToolBar(IToolBarManager)
-	 */
-	public void contributeToToolBar(IToolBarManager tbm) {
-		tbm.add(new Separator());
-		tbm.add(fIgnoreWhitespace);
-		tbm.add(fToolbarNext);
-		tbm.add(fToolbarPrevious);
-	}
-	
-	/*
-	 * @see EditorActionBarContributor#contributeToMenu(IMenuManager)
-	 */
-	public void contributeToMenu(IMenuManager menuManager) {
-	}
-
-	public void setActiveEditor(IEditorPart targetEditor) {
-				
-		if (fActiveEditorPart == targetEditor)
-			return;
-			
-		fActiveEditorPart= targetEditor;
-		
-		if (fActiveEditorPart != null) {
-			IEditorInput input= fActiveEditorPart.getEditorInput();
-			if (input instanceof CompareEditorInput) {
-				CompareEditorInput compareInput= (CompareEditorInput) input;
-				fNext.setCompareEditorInput(compareInput);
-				fPrevious.setCompareEditorInput(compareInput);
-				// Begin fix http://bugs.eclipse.org/bugs/show_bug.cgi?id=20105
-				fToolbarNext.setCompareEditorInput(compareInput);
-				fToolbarPrevious.setCompareEditorInput(compareInput);
-				// End fix http://bugs.eclipse.org/bugs/show_bug.cgi?id=20105
-			}
-		}
-			
-		if (targetEditor instanceof CompareEditor) {
-			IActionBars actionBars= getActionBars();
-		
-			CompareEditor editor= (CompareEditor) targetEditor;
-			editor.setActionBars(actionBars);
-		
-			actionBars.setGlobalActionHandler(IWorkbenchActionConstants.NEXT, fNext);
-			actionBars.setGlobalActionHandler(IWorkbenchActionConstants.PREVIOUS, fPrevious);
-
-			CompareConfiguration cc= editor.getCompareConfiguration();
-			fIgnoreWhitespace.setCompareConfiguration(cc);
-		}		
-	}
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareMessages.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareMessages.java
deleted file mode 100644
index b6fb85f..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareMessages.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-public class CompareMessages {
-
-	private static final String RESOURCE_BUNDLE= "org.eclipse.compare.internal.CompareMessages";//$NON-NLS-1$
-
-	private static ResourceBundle fgResourceBundle= ResourceBundle.getBundle(RESOURCE_BUNDLE);
-
-	private CompareMessages() {
-	}
-
-	public static String getString(String key) {
-		try {
-			return fgResourceBundle.getString(key);
-		} catch (MissingResourceException e) {
-			return "!" + key + "!";//$NON-NLS-2$ //$NON-NLS-1$
-		}
-	}
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareMessages.properties b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareMessages.properties
deleted file mode 100644
index e29774d..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareMessages.properties
+++ /dev/null
@@ -1,58 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-ComparePlugin.internal_error= Internal Error
-ExceptionDialog.seeErrorLogMessage= See error log for more details.
-
-#
-# Title format for CompareViewerSwitchingPane
-#
-CompareViewerSwitchingPane.Titleformat= {0}  ({1})
-
-#
-# Title message for StructureDiffViewer if no structural differences could be found
-#
-StructureDiffViewer.NoStructuralDifferences= No Structural Differences
-StructureDiffViewer.StructureError= Can't Compare Structures
-
-#
-# TextMergeViewer
-#
-TextMergeViewer.cursorPosition.format= {0} : {1}
-
-TextMergeViewer.beforeLine.format= before line {0}
-TextMergeViewer.range.format= {0} : {1}
-
-TextMergeViewer.changeType.addition= addition
-TextMergeViewer.changeType.deletion= deletion
-TextMergeViewer.changeType.change= change
-
-TextMergeViewer.direction.outgoing= outgoing
-TextMergeViewer.direction.incoming= incoming
-TextMergeViewer.direction.conflicting= conflicting
-
-TextMergeViewer.diffType.format= {0} {1}
-
-TextMergeViewer.diffDescription.noDiff.format= no diff
-TextMergeViewer.diffDescription.diff.format= {0} #{1} (Left: {2}, Right: {3})
-TextMergeViewer.statusLine.format= Left: {0}, Right: {1}, {2}
-
-TextMergeViewer.atEnd.title= Go to Next Difference
-TextMergeViewer.atEnd.message= End of document reached. Continue at beginning?
-				
-TextMergeViewer.atBeginning.title= Go to Previous Difference
-TextMergeViewer.atBeginning.message= Beginning of document reached. Continue at end?
-
-CompareNavigator.atEnd.title= Go to Next Difference
-CompareNavigator.atEnd.message= Last difference reached.
-				
-CompareNavigator.atBeginning.title= Go to Previous Difference
-CompareNavigator.atBeginning.message= First difference reached.
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareNavigator.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareNavigator.java
deleted file mode 100644
index 9812a86..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareNavigator.java
+++ /dev/null
@@ -1,179 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.dialogs.MessageDialog;
-
-import org.eclipse.compare.CompareEditorInput;
-import org.eclipse.compare.*;
-
-/**
- * Supports cross-pane navigation through differences.
- * XXX: Design is as it is because the feature had to be added without touching API.
- */
-public class CompareNavigator {
-	
-	private boolean fLastDirection= true;
-	private CompareViewerSwitchingPane[] fPanes;
-	// Fix for http://dev.eclipse.org/bugs/show_bug.cgi?id=20106
-	private boolean fNextFirstTime= true;
-	
-	public CompareNavigator(CompareViewerSwitchingPane[] panes) {
-		fPanes= panes;
-	}
-
-	public CompareViewerSwitchingPane[] getPanes() {
-		return fPanes;
-	}
-	
-	public void selectChange(boolean next) {
-		
-		fLastDirection= next;
-
-		// Fix for http://dev.eclipse.org/bugs/show_bug.cgi?id=20106
-		if (next && fNextFirstTime && mustOpen()) {
-			fNextFirstTime= false;
-			openElement();
-		}
-		
-		// find most down stream CompareViewerPane
-		int n= 0;
-		INavigatable[] navigators= new INavigatable[4];
-		for (int i= 0; i < fPanes.length; i++) {
-			navigators[n]= getNavigator(fPanes[i]);
-			if (navigators[n] != null)
-				n++;
-		}
-									
-		while (n > 0) {
-			n--;
-			if (navigators[n].gotoDifference(next)) {
-				// at end of this navigator
-				continue;
-			} else // not at end
-				return;
-		}
-		// beep
-		if (fPanes[0] != null) {
-			Control c= fPanes[0].getContent();
-			if (c != null) {
-				Display display= c.getDisplay();
-				if (display != null)
-					display.beep();
-
-				String title;
-				String message;
-				if (next) {
-					title= CompareMessages.getString("CompareNavigator.atEnd.title"); //$NON-NLS-1$
-					message= CompareMessages.getString("CompareNavigator.atEnd.message"); //$NON-NLS-1$
-				} else {
-					title= CompareMessages.getString("CompareNavigator.atBeginning.title"); //$NON-NLS-1$
-					message= CompareMessages.getString("CompareNavigator.atBeginning.message"); //$NON-NLS-1$
-				}
-				MessageDialog.openInformation(c.getShell(), title, message);
-			}
-		}
-	}
-
-	private static INavigatable getNavigator(CompareViewerSwitchingPane pane) {
-		if (pane == null)
-			return null;
-		if (pane.isEmpty())
-			return null;
-		Viewer viewer= pane.getViewer();
-		if (viewer == null)
-			return null;
-		Control control= viewer.getControl();
-		if (control == null)
-			return null;
-		Object data= control.getData(INavigatable.NAVIGATOR_PROPERTY);
-		if (data instanceof INavigatable)
-			return (INavigatable) data;
-		return null;
-	}
-	
-	private static CompareNavigator findNavigator(Control c) {
-		while (c != null && !c.isDisposed()) {	// PR 1GEUVV2
-			Object data= c.getData();
-			if (data instanceof CompareEditorInput) {
-				CompareEditorInput cei= (CompareEditorInput) data;
-				Object adapter= cei.getAdapter(CompareNavigator.class);
-				if (adapter instanceof CompareNavigator)
-					return (CompareNavigator)adapter;
-			}
-			c= c.getParent();
-		}
-		return null;
-	}
-	
-	private boolean resetDirection() {
-		boolean last= fLastDirection;
-		fLastDirection= true;
-		return last;
-	}
-	
-	public static boolean getDirection(Control c) {
-		CompareNavigator nav= findNavigator(c);
-		if (nav != null)
-			return nav.resetDirection();
-		return true;
-	}
-	
-	/*
-	 * Fix for http://dev.eclipse.org/bugs/show_bug.cgi?id=20106
-	 */
-	private boolean mustOpen() {
-		if (fPanes == null || fPanes.length == 0)
-			return false;
-		for (int i= 1; i < fPanes.length; i++) {
-			CompareViewerSwitchingPane pane= fPanes[i];
-			if (pane != null && pane.getInput() != null)
-				return false;
-		}
-		return true;
-	}
-	
-	/*
-	 * Fix for http://dev.eclipse.org/bugs/show_bug.cgi?id=20106
-	 */
-	private void openElement() {
-		if (fPanes == null || fPanes.length == 0)
-			return;
-		IOpenable openable= getOpenable(fPanes[0]);
-		if (openable != null) {
-			openable.openSelected();
-		}
-	}
-	
-	/*
-	 * Fix for http://dev.eclipse.org/bugs/show_bug.cgi?id=20106
-	 */
-	private static IOpenable getOpenable(CompareViewerSwitchingPane pane) {
-		if (pane == null)
-			return null;
-		if (pane.isEmpty())
-			return null;
-		Viewer viewer= pane.getViewer();
-		if (viewer == null)
-			return null;
-		Control control= viewer.getControl();
-		if (control == null)
-			return null;
-		Object data= control.getData(IOpenable.OPENABLE_PROPERTY);
-		if (data instanceof IOpenable)
-			return (IOpenable) data;
-		return null;
-	}	
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ComparePreferencePage.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ComparePreferencePage.java
deleted file mode 100644
index 9bfc879..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ComparePreferencePage.java
+++ /dev/null
@@ -1,347 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import java.util.*;
-import java.io.*;
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.graphics.Image;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.preference.*;
-import org.eclipse.jface.util.*;
-
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPreferencePage;
-import org.eclipse.ui.help.WorkbenchHelp;
-import org.eclipse.ui.texteditor.AbstractTextEditor;
-
-import org.eclipse.compare.*;
-import org.eclipse.compare.contentmergeviewer.TextMergeViewer;
-import org.eclipse.compare.structuremergeviewer.*;
-
-
-public class ComparePreferencePage extends PreferencePage implements IWorkbenchPreferencePage {
-	
-	class FakeInput implements ITypedElement, IStreamContentAccessor {
-		String fContent;
-		
-		FakeInput(String name) {
-			fContent= loadPreviewContentFromFile(name);
-		}
-		public Image getImage() {
-			return null;
-		}
-		public String getName() {
-			return "no name";	//$NON-NLS-1$
-		}
-		public String getType() {
-			return "no type";	//$NON-NLS-1$
-		}
-		public InputStream getContents() {
-			return new ByteArrayInputStream(fContent.getBytes());
-		}
-	};
-
-	private static final String PREFIX= CompareUIPlugin.PLUGIN_ID + "."; //$NON-NLS-1$
-	public static final String OPEN_STRUCTURE_COMPARE= PREFIX + "OpenStructureCompare"; //$NON-NLS-1$
-	public static final String SYNCHRONIZE_SCROLLING= PREFIX + "SynchronizeScrolling"; //$NON-NLS-1$
-	public static final String SHOW_PSEUDO_CONFLICTS= PREFIX + "ShowPseudoConflicts"; //$NON-NLS-1$
-	public static final String INITIALLY_SHOW_ANCESTOR_PANE= PREFIX + "InitiallyShowAncestorPane"; //$NON-NLS-1$
-	public static final String PREF_SAVE_ALL_EDITORS= PREFIX + "SaveAllEditors"; //$NON-NLS-1$
-	public static final String SHOW_MORE_INFO= PREFIX + "ShowMoreInfo"; //$NON-NLS-1$
-	public static final String IGNORE_WHITESPACE= PREFIX + "IgnoreWhitespace"; //$NON-NLS-1$
-	//public static final String USE_SPLINES= PREFIX + "UseSplines"; //$NON-NLS-1$
-	public static final String USE_SINGLE_LINE= PREFIX + "UseSingleLine"; //$NON-NLS-1$
-	//public static final String USE_RESOLVE_UI= PREFIX + "UseResolveUI"; //$NON-NLS-1$
-	
-	
-	private TextMergeViewer fPreviewViewer;
-	private IPropertyChangeListener	fPreferenceChangeListener;
-	private CompareConfiguration fCompareConfiguration;
-	private OverlayPreferenceStore fOverlayStore;
-	private Map fCheckBoxes= new HashMap();
-	private SelectionListener fCheckBoxListener;
-
-
-	public final OverlayPreferenceStore.OverlayKey[] fKeys= new OverlayPreferenceStore.OverlayKey[] {	
-		new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, OPEN_STRUCTURE_COMPARE),
-		new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, SYNCHRONIZE_SCROLLING),
-		new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, SHOW_PSEUDO_CONFLICTS),
-		new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, INITIALLY_SHOW_ANCESTOR_PANE),
-		new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, SHOW_MORE_INFO),
-		new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, IGNORE_WHITESPACE),
-		new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PREF_SAVE_ALL_EDITORS),
-		
-		new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, AbstractTextEditor.PREFERENCE_COLOR_BACKGROUND),
-		new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, AbstractTextEditor.PREFERENCE_COLOR_BACKGROUND_SYSTEM_DEFAULT),
-		
-		//new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, USE_SPLINES),
-		new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, USE_SINGLE_LINE),
-		//new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, USE_RESOLVE_UI),
-	};
-	
-	
-	public static void initDefaults(IPreferenceStore store) {
-		store.setDefault(OPEN_STRUCTURE_COMPARE, true);
-		store.setDefault(SYNCHRONIZE_SCROLLING, true);
-		store.setDefault(SHOW_PSEUDO_CONFLICTS, false);
-		store.setDefault(INITIALLY_SHOW_ANCESTOR_PANE, false);
-		store.setDefault(SHOW_MORE_INFO, false);
-		store.setDefault(IGNORE_WHITESPACE, false);
-		store.setDefault(PREF_SAVE_ALL_EDITORS, false);
-		//store.setDefault(USE_SPLINES, false);
-		store.setDefault(USE_SINGLE_LINE, true);
-		//store.setDefault(USE_RESOLVE_UI, false);
-		
-		store.setDefault(AbstractTextEditor.PREFERENCE_COLOR_BACKGROUND_SYSTEM_DEFAULT, true);
-	}
-
-	public ComparePreferencePage() {
-		
-		//setDescription(Utilities.getString("ComparePreferencePage.description"));	//$NON-NLS-1$
-		
-		setPreferenceStore(CompareUIPlugin.getDefault().getPreferenceStore());
-		
-		fOverlayStore= new OverlayPreferenceStore(getPreferenceStore(), fKeys);
-		fPreferenceChangeListener= new IPropertyChangeListener() {
-			public void propertyChange(PropertyChangeEvent event) {
-				String key= event.getProperty();
-				if (key.equals(INITIALLY_SHOW_ANCESTOR_PANE)) {
-					boolean b= fOverlayStore.getBoolean(INITIALLY_SHOW_ANCESTOR_PANE);
-					if (fCompareConfiguration != null) {
-						fCompareConfiguration.setProperty(INITIALLY_SHOW_ANCESTOR_PANE, new Boolean(b));
-					}
-				}
-			}
-		};
-		fOverlayStore.addPropertyChangeListener(fPreferenceChangeListener);
-	}
-	
-	/*
-	 * @see IWorkbenchPreferencePage#init()
-	 */
-	public void init(IWorkbench workbench) {
-	}	
-
-	/*
-	 * @see PreferencePage#performOk()
-	 */
-	public boolean performOk() {
-		fOverlayStore.propagate();
-		return true;
-	}
-	
-	/*
-	 * @see PreferencePage#performDefaults()
-	 */
-	protected void performDefaults() {
-		
-		fOverlayStore.loadDefaults();
-		initializeFields();
-		
-		super.performDefaults();
-	}
-	
-	/*
-	 * @see DialogPage#dispose()
-	 */
-	public void dispose() {
-				
-		if (fOverlayStore != null) {
-			if (fPreferenceChangeListener != null) {
-				fOverlayStore.removePropertyChangeListener(fPreferenceChangeListener);
-				fPreferenceChangeListener= null;
-			}
-			fOverlayStore.stop();
-			fOverlayStore= null;
-		}
-		
-		super.dispose();
-	}
-
-	static public boolean getSaveAllEditors() {
-		IPreferenceStore store= CompareUIPlugin.getDefault().getPreferenceStore();
-		return store.getBoolean(PREF_SAVE_ALL_EDITORS);
-	}
-	
-	static public void setSaveAllEditors(boolean value) {
-		IPreferenceStore store= CompareUIPlugin.getDefault().getPreferenceStore();
-		store.setValue(PREF_SAVE_ALL_EDITORS, value);
-	}	
-
-	/*
-	 * @see PreferencePage#createContents(Composite)
-	 */
-	protected Control createContents(Composite parent) {
-		
-		WorkbenchHelp.setHelp(parent, ICompareContextIds.COMPARE_PREFERENCE_PAGE);
-		
-		fOverlayStore.load();
-		fOverlayStore.start();
-		
-		TabFolder folder= new TabFolder(parent, SWT.NONE);
-		folder.setLayout(new TabFolderLayout());	
-		folder.setLayoutData(new GridData(GridData.FILL_BOTH));
-		
-		TabItem item= new TabItem(folder, SWT.NONE);
-		item.setText(Utilities.getString("ComparePreferencePage.generalTab.label"));	//$NON-NLS-1$
-		//item.setImage(JavaPluginImages.get(JavaPluginImages.IMG_OBJS_CFILE));
-		item.setControl(createGeneralPage(folder));
-		
-		item= new TabItem(folder, SWT.NONE);
-		item.setText(Utilities.getString("ComparePreferencePage.textCompareTab.label"));	//$NON-NLS-1$
-		//item.setImage(JavaPluginImages.get(JavaPluginImages.IMG_OBJS_CFILE));
-		item.setControl(createTextComparePage(folder));
-		
-		initializeFields();
-		Dialog.applyDialogFont(folder);
-		return folder;
-	}
-	
-	private Control createGeneralPage(Composite parent) {
-		Composite composite= new Composite(parent, SWT.NULL);
-		GridLayout layout= new GridLayout();
-		layout.numColumns= 1;
-		composite.setLayout(layout);
-				
-		addCheckBox(composite, "ComparePreferencePage.structureCompare.label", OPEN_STRUCTURE_COMPARE, 0);	//$NON-NLS-1$
-		addCheckBox(composite, "ComparePreferencePage.showMoreInfo.label", SHOW_MORE_INFO, 0);	//$NON-NLS-1$
-		addCheckBox(composite, "ComparePreferencePage.ignoreWhitespace.label", IGNORE_WHITESPACE, 0);	//$NON-NLS-1$
-		
-		// a spacer
-		new Label(composite, SWT.NONE);
-
-		addCheckBox(composite, "ComparePreferencePage.saveBeforePatching.label", PREF_SAVE_ALL_EDITORS, 0);	//$NON-NLS-1$
-		
-		return composite;
-	}
-	
-	private Control createTextComparePage(Composite parent) {
-		
-		Composite composite= new Composite(parent, SWT.NULL);
-		GridLayout layout= new GridLayout();
-		layout.numColumns= 1;
-		composite.setLayout(layout);
-				
-		addCheckBox(composite, "ComparePreferencePage.synchronizeScrolling.label", SYNCHRONIZE_SCROLLING, 0);	//$NON-NLS-1$
-		addCheckBox(composite, "ComparePreferencePage.initiallyShowAncestorPane.label", INITIALLY_SHOW_ANCESTOR_PANE, 0);	//$NON-NLS-1$
-		addCheckBox(composite, "ComparePreferencePage.showPseudoConflicts.label", SHOW_PSEUDO_CONFLICTS, 0);	//$NON-NLS-1$
-		
-		//addCheckBox(composite, "ComparePreferencePage.useSplines.label", USE_SPLINES, 0);	//$NON-NLS-1$
-		addCheckBox(composite, "ComparePreferencePage.useSingleLine.label", USE_SINGLE_LINE, 0);	//$NON-NLS-1$
-		//addCheckBox(composite, "ComparePreferencePage.useResolveUI.label", USE_RESOLVE_UI, 0);	//$NON-NLS-1$
-		
-		// a spacer
-		new Label(composite, SWT.NONE);
-		
-		Label previewLabel= new Label(composite, SWT.NULL);
-		previewLabel.setText(Utilities.getString("ComparePreferencePage.preview.label"));	//$NON-NLS-1$
-		
-		Control previewer= createPreviewer(composite);
-		GridData gd= new GridData(GridData.FILL_BOTH);
-		gd.widthHint= convertWidthInCharsToPixels(60);
-		gd.heightHint= convertHeightInCharsToPixels(13);
-		previewer.setLayoutData(gd);
-		
-		return composite;
-	}
-	
-	private Control createPreviewer(Composite parent) {
-				
-		fCompareConfiguration= new CompareConfiguration(fOverlayStore);
-		fCompareConfiguration.setAncestorLabel(Utilities.getString("ComparePreferencePage.ancestor.label"));	//$NON-NLS-1$
-		
-		fCompareConfiguration.setLeftLabel(Utilities.getString("ComparePreferencePage.left.label"));	//$NON-NLS-1$
-		fCompareConfiguration.setLeftEditable(false);
-		
-		fCompareConfiguration.setRightLabel(Utilities.getString("ComparePreferencePage.right.label"));	//$NON-NLS-1$
-		fCompareConfiguration.setRightEditable(false);
-		
-		fPreviewViewer= new TextMergeViewer(parent, SWT.BORDER, fCompareConfiguration);
-		
-		fPreviewViewer.setInput(
-			new DiffNode(Differencer.CONFLICTING,
-				new FakeInput("ComparePreferencePage.previewAncestor"),	//$NON-NLS-1$
-				new FakeInput("ComparePreferencePage.previewLeft"),	//$NON-NLS-1$
-				new FakeInput("ComparePreferencePage.previewRight")	//$NON-NLS-1$
-			)
-		);
-
-		Control c= fPreviewViewer.getControl();
-		c.addDisposeListener(new DisposeListener() {
-			public void widgetDisposed(DisposeEvent e) {
-				if (fCompareConfiguration != null)
-					fCompareConfiguration.dispose();
-			}
-		});
-		
-		return  c;
-	}
-			
-	private void initializeFields() {
-		
-		Iterator e= fCheckBoxes.keySet().iterator();
-		while (e.hasNext()) {
-			Button b= (Button) e.next();
-			String key= (String) fCheckBoxes.get(b);
-			b.setSelection(fOverlayStore.getBoolean(key));
-		}
-	}
-
-	// overlay stuff
-	
-	private Button addCheckBox(Composite parent, String labelKey, String key, int indentation) {
-		
-		String label= Utilities.getString(labelKey);
-				
-		Button checkBox= new Button(parent, SWT.CHECK);
-		checkBox.setText(label);
-		
-		GridData gd= new GridData(GridData.FILL_HORIZONTAL);
-		gd.horizontalIndent= indentation;
-		gd.horizontalSpan= 2;
-		checkBox.setLayoutData(gd);
-		
-		if (fCheckBoxListener == null) {
-			fCheckBoxListener= new SelectionAdapter() {
-				public void widgetSelected(SelectionEvent e) {
-					Button button= (Button) e.widget;
-					fOverlayStore.setValue((String) fCheckBoxes.get(button), button.getSelection());
-				}
-			};
-		}
-		checkBox.addSelectionListener(fCheckBoxListener);
-		
-		fCheckBoxes.put(checkBox, key);
-		
-		return checkBox;
-	}
-	
-	private String loadPreviewContentFromFile(String key) {
-		
-		String preview= Utilities.getString(key);
-		String separator= System.getProperty("line.separator"); //$NON-NLS-1$
-		StringBuffer buffer= new StringBuffer();
-		for (int i= 0; i < preview.length(); i++) {
-			char c= preview.charAt(i);
-			if (c == '\n')
-				buffer.append(separator);
-			else
-				buffer.append(c);
-		}
-		return buffer.toString();
-	}
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareUIPlugin.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareUIPlugin.java
deleted file mode 100644
index f05c019..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareUIPlugin.java
+++ /dev/null
@@ -1,879 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
-import java.net.MalformedURLException;
-import java.lang.reflect.InvocationTargetException;
-import java.util.*;
-
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Shell;
-
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.dialogs.ProgressMonitorDialog;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.util.Assert;
-import org.eclipse.jface.preference.IPreferenceStore;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.ui.model.IWorkbenchAdapter;
-import org.eclipse.ui.*;
-import org.eclipse.compare.*;
-import org.eclipse.compare.structuremergeviewer.*;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-
-
-/**
- * The Compare UI plug-in defines the entry point to initiate a configurable
- * compare operation on arbitrary resources. The result of the compare
- * is opened into a compare editor where the details can be browsed and
- * edited in dynamically selected structure and content viewers.
- * <p>
- * The Compare UI provides a registry for content and structure compare viewers,
- * which is initialized from extensions contributed to extension points
- * declared by this plug-in.
- * <p>
- * This class is the plug-in runtime class for the 
- * <code>"org.eclipse.compare"</code> plug-in.
- * </p>
- */
-public final class CompareUIPlugin extends AbstractUIPlugin {
-	
-	public static final String DTOOL_NEXT= "dlcl16/next_nav.gif";	//$NON-NLS-1$
-	public static final String CTOOL_NEXT= "clcl16/next_nav.gif";	//$NON-NLS-1$
-	public static final String ETOOL_NEXT= "elcl16/next_nav.gif";	//$NON-NLS-1$
-	
-	public static final String DTOOL_PREV= "dlcl16/prev_nav.gif";	//$NON-NLS-1$
-	public static final String CTOOL_PREV= "clcl16/prev_nav.gif";	//$NON-NLS-1$
-	public static final String ETOOL_PREV= "elcl16/prev_nav.gif";	//$NON-NLS-1$
-				
-	/** Status code describing an internal error */
-	public static final int INTERNAL_ERROR= 1;
-
-	private static boolean NORMALIZE_CASE= true;
-
-	private final static String CLASS_ATTRIBUTE= "class"; //$NON-NLS-1$
-	private final static String EXTENSIONS_ATTRIBUTE= "extensions"; //$NON-NLS-1$
-
-	public static final String PLUGIN_ID= "org.eclipse.compare"; //$NON-NLS-1$
-
-	private static final String STRUCTURE_CREATOR_EXTENSION_POINT= "structureCreators"; //$NON-NLS-1$
-	private static final String STRUCTURE_MERGEVIEWER_EXTENSION_POINT= "structureMergeViewers"; //$NON-NLS-1$
-	private static final String CONTENT_MERGEVIEWER_EXTENSION_POINT= "contentMergeViewers"; //$NON-NLS-1$
-	private static final String CONTENT_VIEWER_EXTENSION_POINT= "contentViewers"; //$NON-NLS-1$
-	
-	private static final String COMPARE_EDITOR= PLUGIN_ID + ".CompareEditor"; //$NON-NLS-1$
-	
-	private static final String STRUCTUREVIEWER_ALIASES_PREFERENCE_NAME= "StructureViewerAliases";	//$NON-NLS-1$
-	
-	/** Maps type to icons */
-	private static Map fgImages= new Hashtable(10);
-	/** Maps type to ImageDescriptors */
-	private static Map fgImageDescriptors= new Hashtable(10);
-	/** Maps ImageDescriptors to Images */
-	private static Map fgImages2= new Hashtable(10);
-	
-	private static Map fgStructureCreators= new Hashtable(10);
-	private static Map fgStructureViewerDescriptors= new Hashtable(10);
-	private static Map fgStructureViewerAliases= new Hashtable(10);
-	private static Map fgContentViewerDescriptors= new Hashtable(10);
-	private static Map fgContentMergeViewerDescriptors= new Hashtable(10);
-	
-	private static List fgDisposeOnShutdownImages= new ArrayList();
-	
-	private static ResourceBundle fgResourceBundle;
-
-	private static CompareUIPlugin fgComparePlugin;
-
-	/**
-	 * Creates the <code>CompareUIPlugin</code> object and registers all
-	 * structure creators, content merge viewers, and structure merge viewers
-	 * contributed to this plug-in's extension points.
-	 * <p>
-	 * Note that instances of plug-in runtime classes are automatically created 
-	 * by the platform in the course of plug-in activation.
-	 * </p>
-	 *
-	 * @param descriptor the plug-in descriptor
-	 */
-	public CompareUIPlugin(IPluginDescriptor descriptor) {
-		super(descriptor);
-				
-		fgComparePlugin= this;
-		
-		fgResourceBundle= descriptor.getResourceBundle();
-		
-		registerExtensions();
-		
-		initPreferenceStore();
-	}
-	
-	/**
-	 * @see AbstractUIPlugin#initializeDefaultPreferences
-	 */
-	protected void initializeDefaultPreferences(IPreferenceStore store) {
-		super.initializeDefaultPreferences(store);
-		
-		ComparePreferencePage.initDefaults(store);		
-	}
-	
-	/**
-	 * Registers all structure creators, content merge viewers, and structure merge viewers
-	 * that are found in the XML plugin files.
-	 */
-	private void registerExtensions() {
-		IPluginRegistry registry= Platform.getPluginRegistry();
-		
-		// collect all IStructureCreators
-		IConfigurationElement[] elements= registry.getConfigurationElementsFor(PLUGIN_ID, STRUCTURE_CREATOR_EXTENSION_POINT);
-		for (int i= 0; i < elements.length; i++) {
-			final IConfigurationElement conf= elements[i];
-			String extensions= conf.getAttribute(EXTENSIONS_ATTRIBUTE);
-			registerStructureCreator(extensions,
-				new IStructureCreatorDescriptor() {
-					public IStructureCreator createStructureCreator() {
-						try {
-							return (IStructureCreator) conf.createExecutableExtension(CLASS_ATTRIBUTE);
-						} catch (CoreException ex) {
-						}
-						return null;
-					}
-				}
-			);
-		}
-				
-		// collect all viewers which define the structure mergeviewer extension point
-		elements= registry.getConfigurationElementsFor(PLUGIN_ID, STRUCTURE_MERGEVIEWER_EXTENSION_POINT);
-		for (int i= 0; i < elements.length; i++) {
-			ViewerDescriptor desc= new ViewerDescriptor(elements[i]);
-			String ext= desc.getExtension();
-			if (ext != null)
-				registerStructureViewerDescriptor(desc.getExtension(), desc);
-		}
-		
-		// collect all viewers which define the content mergeviewer extension point
-		elements= registry.getConfigurationElementsFor(PLUGIN_ID, CONTENT_MERGEVIEWER_EXTENSION_POINT);
-		for (int i= 0; i < elements.length; i++) {
-			ViewerDescriptor desc= new ViewerDescriptor(elements[i]);
-			String ext= desc.getExtension();
-			if (ext != null)
-				registerContentMergeViewerDescriptor(desc.getExtension(), desc);
-		}
-		
-		// collect all viewers which define the content viewer extension point
-		elements= registry.getConfigurationElementsFor(PLUGIN_ID, CONTENT_VIEWER_EXTENSION_POINT);
-		for (int i= 0; i < elements.length; i++) {
-			ViewerDescriptor desc= new ViewerDescriptor(elements[i]);
-			String ext= desc.getExtension();
-			if (ext != null)
-				registerContentViewerDescriptor(desc.getExtension(), desc);
-		}
-	}
-	
-	/**
-	 * Returns the singleton instance of this plug-in runtime class.
-	 *
-	 * @return the compare plug-in instance
-	 */
-	public static CompareUIPlugin getDefault() {
-		return fgComparePlugin;
-	}
-	
-	/**
-	 * Returns this plug-in's resource bundle.
-	 *
-	 * @return the plugin's resource bundle
-	 */
-	public static ResourceBundle getResourceBundle() {
-		return fgResourceBundle;
-	}
-	
-	public static IWorkbench getActiveWorkbench() {
-		CompareUIPlugin plugin= getDefault();
-		if (plugin == null)
-			return null;
-		return plugin.getWorkbench();
-	}
-	
-	public static IWorkbenchWindow getActiveWorkbenchWindow() {
-		IWorkbench workbench= getActiveWorkbench();
-		if (workbench == null)
-			return null;	
-		return workbench.getActiveWorkbenchWindow();
-	}
-	
-	/**
-	 * Returns the active workkbench page or <code>null</code> if
-	 * no active workkbench page can be determined.
-	 *
-	 * @return the active workkbench page or <code>null</code> if
-	 * 	no active workkbench page can be determined
-	 */
-	private static IWorkbenchPage getActivePage() {
-		IWorkbenchWindow window= getActiveWorkbenchWindow();
-		if (window == null)
-			return null;
-		return window.getActivePage();
-	}
-	
-	/**
-	 * Returns the SWT Shell of the active workbench window or <code>null</code> if
-	 * no workbench window is active.
-	 *
-	 * @return the SWT Shell of the active workbench window, or <code>null</code> if
-	 * 	no workbench window is active
-	 */
-	public static Shell getShell() {
-		IWorkbenchWindow window= getActiveWorkbenchWindow();
-		if (window == null)
-			return null;
-		return window.getShell();
-	}
-
-	/**
-	 * Registers the given image for being disposed when this plug-in is shutdown.
-	 *
-	 * @param image the image to register for disposal
-	 */
-	public static void disposeOnShutdown(Image image) {
-		if (image != null)
-			fgDisposeOnShutdownImages.add(image);
-	}
-	
-	/* (non-Javadoc)
-	 * Method declared on Plugin.
-	 * Frees all resources of the compare plug-in.
-	 */
-	public void shutdown() throws CoreException {
-			
-		/*
-		 * Converts the aliases into a single string before they are stored
-		 * in the preference store.
-		 * The format is:
-		 * <key> '.' <alias> ' ' <key> '.' <alias> ...
-		 */
-		IPreferenceStore ps= getPreferenceStore();
-		if (ps != null) {
-			StringBuffer sb= new StringBuffer();
-			Iterator iter= fgStructureViewerAliases.keySet().iterator();
-			while (iter.hasNext()) {
-				String key= (String) iter.next();
-				String alias= (String) fgStructureViewerAliases.get(key);
-				sb.append(key);
-				sb.append('.');
-				sb.append(alias);
-				sb.append(' ');
-			}
-			ps.setValue(STRUCTUREVIEWER_ALIASES_PREFERENCE_NAME, sb.toString());
-		}
-		
-		super.shutdown();
-		
-		if (fgDisposeOnShutdownImages != null) {
-			Iterator i= fgDisposeOnShutdownImages.iterator();
-			while (i.hasNext()) {
-				Image img= (Image) i.next();
-				if (!img.isDisposed())
-					img.dispose();
-			}
-			fgImages= null;
-		}
-	}
-	
-	/**
-	 * Performs the comparison described by the given input and opens a
-	 * compare editor on the result.
-	 *
-	 * @param input the input on which to open the compare editor
-	 * @see CompareEditorInput
-	 */
-	public void openCompareEditor(CompareEditorInput input, IWorkbenchPage page) {
-		
-		if (compareResultOK(input)) {
-			if (page == null)
-				page= getActivePage();
-			if (page != null) {
-				try {
-					page.openEditor(input, COMPARE_EDITOR);
-				} catch (PartInitException e) {
-					MessageDialog.openError(getShell(), Utilities.getString("CompareUIPlugin.openEditorError"), e.getMessage()); //$NON-NLS-1$
-				}
-			} else {
-				MessageDialog.openError(getShell(),
-						Utilities.getString("CompareUIPlugin.openEditorError"), //$NON-NLS-1$
-						Utilities.getString("CompareUIPlugin.noActiveWorkbenchPage")); //$NON-NLS-1$
-			}
-		}
-	}
-
-	/**
-	 * Performs the comparison described by the given input and opens a
-	 * compare dialog on the result.
-	 *
-	 * @param input the input on which to open the compare editor
-	 * @see CompareEditorInput
-	 */
-	public void openCompareDialog(final CompareEditorInput input) {
-				
-		if (compareResultOK(input)) {
-			CompareDialog dialog= new CompareDialog(getShell(), input);
-			dialog.open();
-		}
-	}
-	
-	/**
-	 * @return <code>true</code> if compare result is OK to show, <code>false</code> otherwise
-	 */
-	private boolean compareResultOK(CompareEditorInput input) {
-		final Shell shell= getShell();
-		try {
-			
-			// run operation in separate thread and make it canceable
-			new ProgressMonitorDialog(shell).run(true, true, input);
-			
-			String message= input.getMessage();
-			if (message != null) {
-				MessageDialog.openError(shell, Utilities.getString("CompareUIPlugin.compareFailed"), message); //$NON-NLS-1$
-				return false;
-			}
-			
-			if (input.getCompareResult() == null) {
-				MessageDialog.openInformation(shell, Utilities.getString("CompareUIPlugin.dialogTitle"), Utilities.getString("CompareUIPlugin.noDifferences")); //$NON-NLS-2$ //$NON-NLS-1$
-				return false;
-			}
-			
-			return true;
-
-		} catch (InterruptedException x) {
-			// cancelled by user		
-		} catch (InvocationTargetException x) {
-			MessageDialog.openError(shell, Utilities.getString("CompareUIPlugin.compareFailed"), x.getTargetException().getMessage()); //$NON-NLS-1$
-		}
-		return false;
-	}
-		
-	/**
-	 * Registers an image for the given type.
-	 */
-	private static void registerImage(String type, Image image, boolean dispose) {
-		fgImages.put(normalizeCase(type), image);
-		if (image != null && dispose) {
-			fgDisposeOnShutdownImages.add(image);
-		}
-	}
-	
-	/**
-	 * Registers an image descriptor for the given type.
-	 *
-	 * @param type the type
-	 * @param descriptor the image descriptor
-	 */
-	public static void registerImageDescriptor(String type, ImageDescriptor descriptor) {
-		fgImageDescriptors.put(normalizeCase(type), descriptor);
-	}
-	
-	public static ImageDescriptor getImageDescriptor(String relativePath) {
-		
-		URL installURL= null;
-		if (fgComparePlugin != null)
-			installURL= fgComparePlugin.getDescriptor().getInstallURL();
-					
-		if (installURL != null) {
-			try {
-				URL url= new URL(installURL, Utilities.getIconPath(null) + relativePath);
-				return ImageDescriptor.createFromURL(url);
-			} catch (MalformedURLException e) {
-				Assert.isTrue(false);
-			}
-		}
-		return null;
-	}
-	
-	/**
-	 * Returns a shared image for the given type, or a generic image if none
-	 * has been registered for the given type.
-	 * <p>
-	 * Note: Images returned from this method will be automitically disposed
-	 * of when this plug-in shuts down. Callers must not dispose of these
-	 * images themselves.
-	 * </p>
-	 *
-	 * @param type the type
-	 * @return the image
-	 */
-	public static Image getImage(String type) {
-		
-		type= normalizeCase(type);
-		
-		boolean dispose= false;
-		Image image= null;
-		if (type != null)
-			image= (Image) fgImages.get(type);
-		if (image == null) {
-			ImageDescriptor id= (ImageDescriptor) fgImageDescriptors.get(type);
-			if (id != null) {
-				image= id.createImage();
-				dispose= true;
-			}
-				
-			if (image == null) {
-				if (fgComparePlugin != null) {
-					if (ITypedElement.FOLDER_TYPE.equals(type)) {
-						image= getDefault().getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_FOLDER);
-						//image= SharedImages.getImage(ISharedImages.IMG_OBJ_FOLDER);
-					} else {
-						image= createWorkbenchImage(type);
-						dispose= true;
-					}
-				} else {
-					id= (ImageDescriptor) fgImageDescriptors.get(normalizeCase("file")); //$NON-NLS-1$
-					image= id.createImage();
-					dispose= true;
-				}
-			}
-			if (image != null)
-				registerImage(type, image, dispose);
-		}
-		return image;
-	}
-	
-	/**
-	 * Returns a shared image for the given adaptable.
-	 * This convenience method queries the given adaptable
-	 * for its <code>IWorkbenchAdapter.getImageDescriptor</code>, which it
-	 * uses to create an image if it does not already have one.
-	 * <p>
-	 * Note: Images returned from this method will be automitically disposed
-	 * of when this plug-in shuts down. Callers must not dispose of these
-	 * images themselves.
-	 * </p>
-	 *
-	 * @param adaptable the adaptable for which to find an image
-	 * @return an image
-	 */
-	public static Image getImage(IAdaptable adaptable) {
-		if (adaptable != null) {
-			Object o= adaptable.getAdapter(IWorkbenchAdapter.class);
-			if (o instanceof IWorkbenchAdapter) {
-				ImageDescriptor id= ((IWorkbenchAdapter) o).getImageDescriptor(adaptable);
-				if (id != null) {
-					Image image= (Image)fgImages2.get(id);
-					if (image == null) {
-						image= id.createImage();
-						try {
-							fgImages2.put(id, image);
-						} catch (NullPointerException ex) {
-						}
-						fgDisposeOnShutdownImages.add(image);
-
-					}
-					return image;
-				}
-			}
-		}
-		return null;
-	}
-	
-	private static Image createWorkbenchImage(String type) {
-		IEditorRegistry er= getDefault().getWorkbench().getEditorRegistry();
-		ImageDescriptor id= er.getImageDescriptor("foo." + type); //$NON-NLS-1$
-		return id.createImage();
-	}
-	
-	/**
-	 * Registers the given structure creator descriptor for one or more types.
-	 *
-	 * @param types one or more types separated by commas and whitespace
-	 * @param descriptor the descriptor to register
-	 */
-	public static void registerStructureCreator(String types, IStructureCreatorDescriptor descriptor) {
-		if (types != null) {
-			StringTokenizer tokenizer= new StringTokenizer(types, ","); //$NON-NLS-1$
-			while (tokenizer.hasMoreElements()) {
-				String extension= tokenizer.nextToken().trim();
-				fgStructureCreators.put(normalizeCase(extension), descriptor);
-			}
-		}
-	}
-	
-	/**
-	 * Returns an structure creator descriptor for the given type.
-	 *
-	 * @param type the type for which to find a descriptor
-	 * @return a descriptor for the given type, or <code>null</code> if no
-	 *   descriptor has been registered
-	 */
-	public static IStructureCreatorDescriptor getStructureCreator(String type) {
-		return (IStructureCreatorDescriptor) fgStructureCreators.get(normalizeCase(type));
-	}
-	
-	/**
-	 * Registers the given structure viewer descriptor for one or more types.
-	 *
-	 * @param types one or more types separated by commas and whitespace
-	 * @param the descriptor to register
-	 */
-	public static void registerStructureViewerDescriptor(String types, IViewerDescriptor descriptor) {
-		StringTokenizer tokenizer= new StringTokenizer(types, ","); //$NON-NLS-1$
-		while (tokenizer.hasMoreElements()) {
-			String extension= tokenizer.nextToken().trim();
-			fgStructureViewerDescriptors.put(normalizeCase(extension), descriptor);
-		}
-	}
-	
-	/**
-	 * Registers the given content merge viewer descriptor for one or more types.
-	 *
-	 * @param types one or more types separated by commas and whitespace
-	 * @param descriptor the descriptor to register
-	 */
-	public static void registerContentMergeViewerDescriptor(String types, IViewerDescriptor descriptor) {
-		StringTokenizer tokenizer= new StringTokenizer(types, ","); //$NON-NLS-1$
-		while (tokenizer.hasMoreElements()) {
-			String extension= tokenizer.nextToken().trim();
-			fgContentMergeViewerDescriptors.put(normalizeCase(extension), descriptor);
-		}
-	}
-	
-	/**
-	 * Registers the given content viewer descriptor for one or more types.
-	 *
-	 * @param types one or more types separated by commas and whitespace
-	 * @param descriptor the descriptor to register
-	 */
-	public static void registerContentViewerDescriptor(String types, IViewerDescriptor descriptor) {
-		StringTokenizer tokenizer= new StringTokenizer(types, ","); //$NON-NLS-1$
-		while (tokenizer.hasMoreElements()) {
-			String extension= tokenizer.nextToken().trim();
-			fgContentViewerDescriptors.put(normalizeCase(extension), descriptor);
-		}
-	}
-		
-	/**
-	 * Returns a structure compare viewer based on an old viewer and an input object.
-	 * If the old viewer is suitable for showing the input, the old viewer
-	 * is returned. Otherwise, the input's type is used to find a viewer descriptor in the registry
-	 * which in turn is used to create a structure compare viewer under the given parent composite.
-	 * If no viewer descriptor can be found <code>null</code> is returned.
-	 *
-	 * @param oldViewer a new viewer is only created if this old viewer cannot show the given input
-	 * @param input the input object for which to find a structure viewer
-	 * @param parent the SWT parent composite under which the new viewer is created
-	 * @param configuration a configuration which is passed to a newly created viewer
-	 * @return the compare viewer which is suitable for the given input object or <code>null</code>
-	 */
-	public static Viewer findStructureViewer(Viewer oldViewer, ICompareInput input, Composite parent,
-				CompareConfiguration configuration) {
-
-		if (input.getLeft() == null || input.getRight() == null)	// we don't show the structure of additions or deletions
-			return null;
-			
-		String[] types= getTypes(input);
-		if (!isHomogenous(types))
-			return null;
-		String type= types[0];
-			
-		type= normalizeCase(type);
-			
-		IViewerDescriptor vd= (IViewerDescriptor) fgStructureViewerDescriptors.get(type);
-		if (vd == null) {
-			String alias= (String) fgStructureViewerAliases.get(type);
-			if (alias != null)
-				vd= (IViewerDescriptor) fgStructureViewerDescriptors.get(alias);
-		}
-		if (vd != null)
-			return vd.createViewer(oldViewer, parent, configuration);
-			
-		IStructureCreatorDescriptor scc= getStructureCreator(type);
-		if (scc != null) {
-			IStructureCreator sc= scc.createStructureCreator();
-			if (sc != null) {
-				StructureDiffViewer sdv= new StructureDiffViewer(parent, configuration);
-				sdv.setStructureCreator(sc);
-				return sdv;
-			}
-		}
-		return null;
-	}
-	
-	/**
-	 * Returns a content compare viewer based on an old viewer and an input object.
-	 * If the old viewer is suitable for showing the input the old viewer
-	 * is returned. Otherwise the input's type is used to find a viewer descriptor in the registry
-	 * which in turn is used to create a content compare viewer under the given parent composite.
-	 * If no viewer descriptor can be found <code>null</code> is returned.
-	 *
-	 * @param oldViewer a new viewer is only created if this old viewer cannot show the given input
-	 * @param input the input object for which to find a content viewer
-	 * @param parent the SWT parent composite under which the new viewer is created
-	 * @param configuration a configuration which is passed to a newly created viewer
-	 * @return the compare viewer which is suitable for the given input object or <code>null</code>
-	 */
-	public static Viewer findContentViewer(Viewer oldViewer, Object in, Composite parent, CompareConfiguration cc) {
-		
-		if (in instanceof IStreamContentAccessor) {
-			String type= ITypedElement.TEXT_TYPE;
-			
-			if (in instanceof ITypedElement) {
-				ITypedElement tin= (ITypedElement) in;
-				String ty= tin.getType();
-				if (ty != null)
-					type= ty;
-			}
-			type= normalizeCase(type);
-			
-			IViewerDescriptor vd= (IViewerDescriptor) fgContentViewerDescriptors.get(type);
-			Viewer viewer= null;
-			if (vd != null) {
-				viewer= vd.createViewer(oldViewer, parent, cc);
-				if (viewer != null)
-					return viewer;
-			}
-			// fallback
-			return new SimpleTextViewer(parent);
-		}
-
-		if (!(in instanceof ICompareInput))
-			return null;
-			
-		ICompareInput input= (ICompareInput) in;
-		String[] types= getTypes(input);
-		String type= null;
-		if (isHomogenous(types))
-			type= types[0];
-		
-		if (ITypedElement.FOLDER_TYPE.equals(type))
-			return null;
-			
-		if (type == null) {
-			int n= 0;
-			for (int i= 0; i < types.length; i++)
-				if (!ITypedElement.UNKNOWN_TYPE.equals(types[i])) {
-					n++;
-					if (type == null)
-						type= types[i];	// remember the first known type
-				}
-			if (n > 1)	// don't use the type if there were more than one
-				type= null;
-		}
-		
-		if (type != null) {
-			IViewerDescriptor vd= (IViewerDescriptor) fgContentMergeViewerDescriptors.get(type);
-			Viewer viewer= null;
-			if (vd != null) {
-				viewer= vd.createViewer(oldViewer, parent, cc);
-				if (viewer != null)
-					return viewer;
-			}
-		}
-
-		// fallback
-		String leftType= guessType(input.getLeft());
-		String rightType= guessType(input.getRight());
-			
-		if (leftType != null || rightType != null) {
-			boolean right_text= rightType != null && ITypedElement.TEXT_TYPE.equals(rightType);
-			boolean left_text= leftType != null && ITypedElement.TEXT_TYPE.equals(leftType);
-			if ((leftType == null && right_text) || (left_text && rightType == null) || (left_text && right_text))
-				type= ITypedElement.TEXT_TYPE;
-			else
-				type= "binary"; //$NON-NLS-1$
-			
-			IViewerDescriptor vd= (IViewerDescriptor) fgContentMergeViewerDescriptors.get(normalizeCase(type));
-			if (vd != null)
-				return vd.createViewer(oldViewer, parent, cc);
-		}
-		return null;
-	}
-	
-	private static String[] getTypes(ICompareInput input) {
-		ITypedElement ancestor= input.getAncestor();
-		ITypedElement left= input.getLeft();
-		ITypedElement right= input.getRight();
-		
-		String[] types= new String[3];
-		int cnt= 0;
-		
-		if (ancestor != null) {
-			String type= ancestor.getType();
-			if (type != null)
-				types[cnt++]= normalizeCase(type);
-		}
-		if (left != null) {
-			String type= left.getType();
-			if (type != null)
-				types[cnt++]= normalizeCase(type);
-		}
-		if (right != null) {
-			String type= right.getType();
-			if (type != null)
-				types[cnt++]= normalizeCase(type);
-		}
-		
-		String[] result= new String[cnt];
-		for (int i= 0; i < cnt; i++)
-			result[i]= types[i];
-		return result;
-	}
-		
-	/**
-	 * Determines the type of the given threeway input by analyzing
-	 * the types (file extension) of the individual parts.
-	 * Returns null if no type can be determined.
-	 */
-	private static boolean isHomogenous(String[] types) {
-		switch (types.length) {
-		case 1:
-			return true;
-		case 2:
-			return types[0].equals(types[1]);
-		case 3:
-			return types[0].equals(types[1]) && types[1].equals(types[2]);
-		}
-		return false;
-	}
-	
-	/**
-	 * Guesses the file type of the given input.
-	 * Returns ITypedElement.TEXT_TYPE if none of the first 10 lines is longer than 1000 bytes.
-	 * Returns ITypedElement.UNKNOWN_TYPE otherwise.
-	 * Returns <code>null</code> if the input isn't an <code>IStreamContentAccessor</code>.
-	 */
-	private static String guessType(ITypedElement input) {
-		if (input instanceof IStreamContentAccessor) {
-			IStreamContentAccessor sca= (IStreamContentAccessor) input;
-			InputStream is= null;
-			try {
-				is= sca.getContents();
-				if (is == null)
-					return null;
-				int lineLength= 0;
-				int lines= 0;
-				while (lines < 10) {
-					int c= is.read();
-					if (c == -1)	// EOF
-						break;
-					if (c == '\n' || c == '\r') { // reset line length
-						lineLength= 0;
-						lines++;
-					} else
-						lineLength++;
-					if (lineLength > 1000)
-						return ITypedElement.UNKNOWN_TYPE;
-				}
-				return ITypedElement.TEXT_TYPE;
-			} catch (CoreException ex) {
-				// be silent and return UNKNOWN_TYPE
-			} catch (IOException ex) {
-				// be silent and return UNKNOWN_TYPE
-			} finally {
-				if (is != null) {
-					try {
-						is.close();
-					} catch (IOException ex) {
-					}
-				}
-			}
-			return ITypedElement.UNKNOWN_TYPE;
-		}
-		return null;
-	}
-	
-	private static String normalizeCase(String s) {
-		if (NORMALIZE_CASE && s != null)
-			return s.toUpperCase();
-		return s;
-	}
-	
-	//---- alias mgmt
-	
-	private void initPreferenceStore() {
-		//System.out.println("initPreferenceStore");
-		IPreferenceStore ps= getPreferenceStore();
-		if (ps != null) {
-			String aliases= ps.getString(STRUCTUREVIEWER_ALIASES_PREFERENCE_NAME);
-			//System.out.println("  <" + aliases + ">");
-			if (aliases != null && aliases.length() > 0) {
-				StringTokenizer st= new StringTokenizer(aliases, " ");	//$NON-NLS-1$
-				while (st.hasMoreTokens()) {
-					String pair= st.nextToken();
-					int pos= pair.indexOf('.');
-					if (pos > 0) {
-						String key= pair.substring(0, pos);
-						String alias= pair.substring(pos+1);
-						fgStructureViewerAliases.put(key, alias);
-						//System.out.println("<" + key + "><" + alias + ">");
-					}
-				}
-			}
-		}		
-	}
-	
-	public static void addStructureViewerAlias(String type, String alias) {
-		//System.out.println("addStructureViewerAlias: " + type + " " + alias);
-		fgStructureViewerAliases.put(normalizeCase(alias), normalizeCase(type));
-	}
-	
-	public static void removeAllStructureViewerAliases(String type) {
-		String t= normalizeCase(type);
-		Set entrySet= fgStructureViewerAliases.entrySet();
-		for (Iterator iter= entrySet.iterator(); iter.hasNext(); ) {
-			Map.Entry entry= (Map.Entry)iter.next();
-			if (entry.getValue().equals(t))
-				iter.remove();
-		}
-	}
-	
-	/**
-	 * Returns an array of all editors that have an unsaved content. If the identical content is 
-	 * presented in more than one editor, only one of those editor parts is part of the result.
-	 * 
-	 * @return an array of all dirty editor parts.
-	 */
-	public static IEditorPart[] getDirtyEditors() {
-		Set inputs= new HashSet();
-		List result= new ArrayList(0);
-		IWorkbench workbench= getDefault().getWorkbench();
-		IWorkbenchWindow[] windows= workbench.getWorkbenchWindows();
-		for (int i= 0; i < windows.length; i++) {
-			IWorkbenchPage[] pages= windows[i].getPages();
-			for (int x= 0; x < pages.length; x++) {
-				IEditorPart[] editors= pages[x].getDirtyEditors();
-				for (int z= 0; z < editors.length; z++) {
-					IEditorPart ep= editors[z];
-					IEditorInput input= ep.getEditorInput();
-					if (!inputs.contains(input)) {
-						inputs.add(input);
-						result.add(ep);
-					}
-				}
-			}
-		}
-		return (IEditorPart[])result.toArray(new IEditorPart[result.size()]);
-	}
-		
-	public static void log(Throwable e) {
-		log(new Status(IStatus.ERROR, getPluginId(), INTERNAL_ERROR, CompareMessages.getString("ComparePlugin.internal_error"), e)); //$NON-NLS-1$
-	}
-	
-	public static void log(IStatus status) {
-		getDefault().getLog().log(status);
-	}
-	
-	public static String getPluginId() {
-		return getDefault().getDescriptor().getUniqueIdentifier();
-	}
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareWithEditionAction.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareWithEditionAction.java
deleted file mode 100644
index f8cef54..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareWithEditionAction.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-public class CompareWithEditionAction extends EditionAction {
-	
-	public CompareWithEditionAction() {
-		super(false, "org.eclipse.compare.internal.CompareWithEditionAction"); //$NON-NLS-1$
-		this.fHelpContextId= ICompareContextIds.COMPARE_WITH_EDITION_DIALOG;
-	}
-}
-
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareWithEditionAction.properties b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareWithEditionAction.properties
deleted file mode 100644
index 154531a..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareWithEditionAction.properties
+++ /dev/null
@@ -1,38 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-# @(#)CompareWithEditionAction.properties
-#
-# Resources for CompareWithEditionAction.java
-
-title= Compare with Local History
-
-treeTitleFormat= Local History of ''{0}''
-dateIcon= obj16/day_obj.gif
-timeIcon= obj16/resource_obj.gif
-
-treeFormat= {0}
-workspaceTreeFormat= {0} (Workspace File)
-parseErrorFormat= {0} (Parse Error)
-
-editionLabel= Local History ({0})
-workspaceEditionLabel= Workspace File
-
-targetLabel= Editor Buffer
-workspaceTargetLabel= Workspace File
-
-todayFormat= Today ({0})
-yesterdayFormat= Yesterday ({0})
-dayFormat= {0}
-
-closeButton.label=Close
-
-noLocalHistoryError= No local history available for selected resource.
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/DiffImage.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/DiffImage.java
deleted file mode 100644
index 1c17ded..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/DiffImage.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import org.eclipse.swt.graphics.*;
-
-import org.eclipse.jface.resource.CompositeImageDescriptor;
-import org.eclipse.jface.resource.ImageDescriptor;
-
-/**
- * Combines an image with an overlay.
- */
-public class DiffImage extends CompositeImageDescriptor {
-
-	static final int HEIGHT= 16;
-
-	private Image fBaseImage;
-	private ImageDescriptor fOverlayImage;
-	private int fWidth;
-	private boolean fLeft= true;
-
-	public DiffImage(Image base, ImageDescriptor overlay, int w) {
-		fBaseImage= base;
-		fOverlayImage= overlay;
-		fWidth= w;
-	}
-
-	public DiffImage(Image base, ImageDescriptor overlay, int w, boolean onLeft) {
-		fBaseImage= base;
-		fOverlayImage= overlay;
-		fWidth= w;
-		fLeft= onLeft;
-	}
-
-	protected Point getSize() {
-		return new Point(fWidth, HEIGHT);
-	}
-
-	protected void drawCompositeImage(int width, int height) {
-		if (fLeft) {
-			if (fBaseImage != null) {
-				ImageData base= fBaseImage.getImageData();
-				if (base == null)
-					base= DEFAULT_IMAGE_DATA;
-				drawImage(base, fWidth - base.width, 0);
-			}
-	
-			if (fOverlayImage != null) {
-				ImageData overlay= fOverlayImage.getImageData();
-				if (overlay == null)
-					overlay= DEFAULT_IMAGE_DATA;
-				drawImage(overlay, 0, (HEIGHT - overlay.height) / 2);
-			}
-		} else {
-			if (fBaseImage != null) {
-				ImageData base= fBaseImage.getImageData();
-				if (base == null)
-					base= DEFAULT_IMAGE_DATA;
-				drawImage(base, 0, 0);
-			}
-	
-			if (fOverlayImage != null) {
-				ImageData overlay= fOverlayImage.getImageData();
-				if (overlay == null)
-					overlay= DEFAULT_IMAGE_DATA;
-				drawImage(overlay, fWidth - overlay.width, (HEIGHT - overlay.height) / 2);
-			}
-		}
-	}
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/DocLineComparator.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/DocLineComparator.java
deleted file mode 100644
index e27a96c..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/DocLineComparator.java
+++ /dev/null
@@ -1,194 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import org.eclipse.jface.text.*;
-import org.eclipse.compare.contentmergeviewer.ITokenComparator;
-import org.eclipse.compare.rangedifferencer.IRangeComparator;
-
-/**
- * Implements the <code>IRangeComparator</code> interface for lines in a document.
- * A <code>DocLineComparator</code> is used as the input for the <code>RangeDifferencer</code>
- * engine to perform a line oriented compare on documents.
- * <p>
- * A <code>DocLineComparator</code> doesn't know anything about line separators because
- * its notion of lines is solely defined in the underlying <code>IDocument</code>.
- */
-public class DocLineComparator implements ITokenComparator {
-
-	private IDocument fDocument;
-	private int fLineOffset;
-	private int fLineCount;
-	private int fLength;
-	private boolean fIgnoreWhiteSpace;
-
-	/**
-	 * Creates a <code>DocLineComparator</code> for the given document range.
-	 * ignoreWhiteSpace controls whether comparing lines (in method
-	 * <code>rangesEqual<code>) should ignore whitespace.
-	 *
-	 * @param document the document from which the lines are taken
-	 * @param region if non-<code>null</code> only lines within this range are taken
-	 * @param ignoreWhiteSpace if <code>true</code> white space is ignored when comparing lines
-	 */
-	public DocLineComparator(IDocument document, IRegion region, boolean ignoreWhiteSpace) {
-
-		fDocument= document;
-		fIgnoreWhiteSpace= ignoreWhiteSpace;
-
-		fLineOffset= 0;
-		if (region != null) {
-			fLength= region.getLength();
-			int start= region.getOffset();
-			try {
-				fLineOffset= fDocument.getLineOfOffset(start);
-			} catch (BadLocationException ex) {
-			}
-
-			if (fLength == 0)
-				fLineCount= 0;
-			else {
-				int endLine= fDocument.getNumberOfLines();
-				try {
-					endLine= fDocument.getLineOfOffset(start + fLength);
-				} catch (BadLocationException ex) {
-				}
-				fLineCount= endLine - fLineOffset + 1;
-			}
-
-		} else {
-			fLength= document.getLength();
-			fLineCount= fDocument.getNumberOfLines();
-		}
-	}
-
-	/**
-	 * Returns the number of lines in the document.
-	 *
-	 * @return number of lines
-	 */
-	public int getRangeCount() {
-		return fLineCount;
-	}
-
-	/* (non Javadoc)
-	 * see ITokenComparator.getTokenStart
-	 */
-	public int getTokenStart(int line) {
-		try {
-			IRegion r= fDocument.getLineInformation(fLineOffset + line);
-			return r.getOffset();
-		} catch (BadLocationException ex) {
-			return fDocument.getLength();
-		}
-	}
-
-	/* (non Javadoc)
-	 * Returns the length of the given line.
-	 * see ITokenComparator.getTokenLength
-	 */
-	public int getTokenLength(int line) {
-		return getTokenStart(line+1) - getTokenStart(line);
-	}
-
-	/**
-	 * Returns <code>true</code> if a line given by the first index
-	 * matches a line specified by the other <code>IRangeComparator</code> and index.
-	 *
-	 * @param thisIndex	the number of the line within this range comparator
-	 * @param other the range comparator to compare this with
-	 * @param otherIndex the number of the line within the other comparator
-	 * @return <code>true</code> if the lines are equal
-	 */
-	public boolean rangesEqual(int thisIndex, IRangeComparator other0, int otherIndex) {
-
-		if (other0 != null && other0.getClass() == getClass()) {
-			DocLineComparator other= (DocLineComparator) other0;
-
-			if (fIgnoreWhiteSpace) {
-				String s1= extract(thisIndex);
-				String s2= other.extract(otherIndex);
-				return compare(s1, s2);
-			}
-
-			int tlen= getTokenLength(thisIndex);
-			int olen= other.getTokenLength(otherIndex);
-			if (tlen == olen) {
-				String s1= extract(thisIndex);
-				String s2= other.extract(otherIndex);
-				return s1.equals(s2);
-			}
-		}
-		return false;
-	}
-
-	/**
-	 * Aborts the comparison if the number of tokens is too large.
-	 *
-	 * @return <code>true</code> to abort a token comparison
-	 */
-	public boolean skipRangeComparison(int length, int max, IRangeComparator other) {
-		return false;
-	}
-		
-	//---- private methods
-	
-	/**
-	 * Extract a single line from the underlying document without the line separator.
-	 *
-	 * @param line the number of the line to extract
-	 * @return the contents of the line as a String
-	 */
-	private String extract(int line) {
-		if (line < fLineCount) {
-			try {
-				IRegion r= fDocument.getLineInformation(fLineOffset + line);
-				return fDocument.get(r.getOffset(), r.getLength());
-			} catch(BadLocationException e) {
-			}
-		}
-		return ""; //$NON-NLS-1$
-	}
-	
-	private boolean compare(String s1, String s2) {
-		int l1= s1.length();
-		int l2= s2.length();
-		int c1= 0, c2= 0;
-		int i1= 0, i2= 0;
-		
-		while (c1 != -1) {
-			
-			c1= -1;
-			while (i1 < l1) {
-				char c= s1.charAt(i1++);
-				if (! Character.isWhitespace(c)) {
-					c1= c;
-					break;
-				}
-			}
-			
-			c2= -1;
-			while (i2 < l2) {
-				char c= s2.charAt(i2++);
-				if (! Character.isWhitespace(c)) {
-					c2= c;
-					break;
-				}
-			}
-				
-			if (c1 != c2)
-				return false;
-		}
-		return true;
-	}
-
-}
-
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/DocumentManager.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/DocumentManager.java
deleted file mode 100644
index b2db191..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/DocumentManager.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import java.util.*;
-
-import org.eclipse.jface.text.IDocument;
-
-/**
- * No API yet.
- */
-public class DocumentManager {
-	
-	private static final boolean DEBUG= false;
-	
-	private static ArrayList fgKeys= new ArrayList();
-	private static ArrayList fgValues= new ArrayList();
-	
-	public static IDocument get(Object o) {
-		
-		for (int i= 0; i < fgKeys.size(); i++) {
-			if (fgKeys.get(i) == o)
-				return (IDocument) fgValues.get(i);
-		}
-		return null;
-	}
-	
-	public static void put(Object o, IDocument document) {
-		if (DEBUG) System.out.println("DocumentManager.put: " + document);	//$NON-NLS-1$
-		for (int i= 0; i < fgKeys.size(); i++) {
-			if (fgKeys.get(i) == o) {
-				fgValues.set(i, document);
-				return;
-			}
-		}
-		fgKeys.add(o);
-		fgValues.add(document);	
-	}
-	
-	public static void remove(IDocument document) {
-		if (document != null) {
-			if (DEBUG) System.out.println("DocumentManager.remove: " + document);	//$NON-NLS-1$
-			for (int i= 0; i < fgValues.size(); i++) {
-				if (fgValues.get(i) == document) {
-					fgKeys.remove(i);
-					fgValues.remove(i);
-					return;
-				}
-			}
-			if (DEBUG) System.out.println("DocumentManager.remove: not found");	//$NON-NLS-1$
-		}
-	}
-	
-	public static void dump() {
-		if (DEBUG) System.out.println("DocumentManager: managed docs:" + fgValues.size());	//$NON-NLS-1$
-	}
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/EditionAction.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/EditionAction.java
deleted file mode 100644
index d610d0c..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/EditionAction.java
+++ /dev/null
@@ -1,267 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import java.io.InputStream;
-import java.io.ByteArrayInputStream;
-import java.util.ArrayList;
-import java.util.ResourceBundle;
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.*;
-
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.graphics.Image;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.dialogs.ProgressMonitorDialog;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.BadLocationException;
-
-import org.eclipse.ui.*;
-import org.eclipse.ui.part.FileEditorInput;
-import org.eclipse.ui.texteditor.ITextEditor;
-import org.eclipse.ui.texteditor.IDocumentProvider;
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-
-import org.eclipse.compare.*;
-import org.eclipse.compare.ITypedElement;
-import org.eclipse.compare.IStreamContentAccessor;
-
-
-public class EditionAction implements IActionDelegate {
-
-	/**
-	 * Implements the IStreamContentAccessor and ITypedElement protocols
-	 * for a Document.
-	 */
-	class DocumentBufferNode implements ITypedElement, IStreamContentAccessor {
-		
-		private IDocument fDocument;
-		private IFile fFile;
-		
-		DocumentBufferNode(IDocument document, IFile file) {
-			fDocument= document;
-			fFile= file;
-		}
-		
-		public String getName() {
-			return fFile.getName();
-		}
-		
-		public String getType() {
-			return fFile.getFileExtension();
-		}
-		
-		public Image getImage() {
-			return null;
-		}
-		
-		public InputStream getContents() {
-			return new ByteArrayInputStream(fDocument.get().getBytes());
-		}
-	}
-
-	private ISelection fSelection;
-	private String fBundleName;
-	private boolean fReplaceMode;
-	protected boolean fPrevious= false;
-	protected String fHelpContextId;
-	
-	EditionAction(boolean replaceMode, String bundleName) {
-		fReplaceMode= replaceMode;
-		fBundleName= bundleName;
-	}
-
-	public final void selectionChanged(IAction action, ISelection selection) {
-		fSelection= selection;
-		if (action != null) {
-			IFile[] files= getFiles(selection, fReplaceMode);
-			action.setEnabled(files.length == 1);	// we don't support multiple selection for now
-		}
-	}
-	
-	public void run(IAction action) {
-		IFile[] files= getFiles(fSelection, fReplaceMode);
-		for (int i= 0; i < files.length; i++)
-			doFromHistory(files[i]);
-	}
-
-	private void doFromHistory(final IFile file) {
-						
-		ResourceBundle bundle= ResourceBundle.getBundle(fBundleName);
-		String title= Utilities.getString(bundle, "title"); //$NON-NLS-1$
-			
-		Shell parentShell= CompareUIPlugin.getShell();
-		
-		IFileState states[]= null;
-		try {
-			states= file.getHistory(null);
-		} catch (CoreException ex) {		
-			MessageDialog.openError(parentShell, title, ex.getMessage());
-			return;
-		}
-		
-		if (states == null || states.length <= 0) {
-			String msg= Utilities.getString(bundle, "noLocalHistoryError"); //$NON-NLS-1$
-			MessageDialog.openInformation(parentShell, title, msg);
-			return;
-		}
-		
-		ITypedElement base= new ResourceNode(file);
-		
-		IDocument document= getDocument(file);
-		ITypedElement target= base;
-		if (document != null)
-			target= new DocumentBufferNode(document, file);
-	
-		ITypedElement[] editions= new ITypedElement[states.length+1];
-		editions[0]= base;
-		for (int i= 0; i < states.length; i++)
-			editions[i+1]= new HistoryItem(base, states[i]);
-
-		EditionSelectionDialog d= new EditionSelectionDialog(parentShell, bundle);
-		d.setEditionTitleArgument(file.getName());
-		d.setEditionTitleImage(CompareUIPlugin.getImage(file));
-		//d.setHideIdenticalEntries(false);
-		if (fHelpContextId != null)
-			d.setHelpContextId(fHelpContextId);
-		
-		if (fReplaceMode) {
-			
-			ITypedElement ti= null;
-			if (fPrevious)
-				ti= d.selectPreviousEdition(target, editions, null);
-			else
-				ti= d.selectEdition(target, editions, null);
-			
-			if (ti instanceof IStreamContentAccessor) {
-				IStreamContentAccessor sa= (IStreamContentAccessor)ti;
-				try {
-
-					if (document != null)
-						updateDocument(document, sa);	
-					else
-						updateWorkspace(bundle, parentShell, sa, file);
-						
-				} catch (InterruptedException x) {
-					// Do nothing. Operation has been canceled by user.
-					
-				} catch (InvocationTargetException x) {
-					String reason= x.getTargetException().getMessage();
-					MessageDialog.openError(parentShell, title, Utilities.getFormattedString(bundle, "replaceError", reason));	//$NON-NLS-1$
-				}
-			}
-		} else {
-			d.setCompareMode(true);
-
-			d.selectEdition(target, editions, null);			
-		}
-	}
-	
-	private void updateWorkspace(final ResourceBundle bundle, Shell shell,
-						final IStreamContentAccessor sa, final IFile file)
-									throws InvocationTargetException, InterruptedException {
-		
-		WorkspaceModifyOperation operation= new WorkspaceModifyOperation() {
-			public void execute(IProgressMonitor pm) throws InvocationTargetException {
-				try {
-					String taskName= Utilities.getString(bundle, "taskName"); //$NON-NLS-1$
-					pm.beginTask(taskName, IProgressMonitor.UNKNOWN);
-					file.setContents(sa.getContents(), false, true, pm);
-				} catch (CoreException e) {
-					throw new InvocationTargetException(e);
-				} finally {
-					pm.done();
-				}
-			}
-		};
-		
-		ProgressMonitorDialog pmdialog= new ProgressMonitorDialog(shell);				
-		pmdialog.run(false, true, operation);									
-	}
-	
-	private void updateDocument(IDocument document, IStreamContentAccessor sa) throws InvocationTargetException {
-		try {
-			InputStream is= sa.getContents();
-			String text= Utilities.readString(is);
-			document.replace(0, document.getLength(), text);
-		} catch (CoreException e) {
-			throw new InvocationTargetException(e);
-		} catch (BadLocationException e) {
-			throw new InvocationTargetException(e);
-		}
-	}
-	
-	private IDocument getDocument(IFile file) {
-		IWorkbench wb= PlatformUI.getWorkbench();
-		if (wb == null)
-			return null;
-		IWorkbenchWindow[] ws= wb.getWorkbenchWindows();
-		if (ws == null)
-			return null;
-			
-		FileEditorInput test= new FileEditorInput(file);
-		
-		for (int i= 0; i < ws.length; i++) {
-			IWorkbenchWindow w= ws[i];
-			IWorkbenchPage[] wps= w.getPages();
-			if (wps != null) {
-				for (int j= 0; j < wps.length; j++) {
-					IWorkbenchPage wp= wps[j];
-					IEditorPart ep= wp.findEditor(test);
-					if (ep instanceof ITextEditor) {
-						ITextEditor te= (ITextEditor) ep;
-						IDocumentProvider dp= te.getDocumentProvider();
-						if (dp != null) {
-							IDocument doc= dp.getDocument(ep);
-							if (doc != null)
-								return doc;
-						}
-					}
-				}
-			}
-		}
-		return null;
-	}
-	
-	private IFile[] getFiles(ISelection selection, boolean modifiable) {
-		ArrayList result= new ArrayList();
-		Object[] s= Utilities.toArray(selection);	
-		for (int i= 0; i < s.length; i++) {
-			Object o= s[i];
-			IFile file= null;
-			if (o instanceof IFile) {
-				file= (IFile) o;
-			} else if (o instanceof IAdaptable) {
-				IAdaptable a= (IAdaptable) o;
-				Object adapter= a.getAdapter(IResource.class);
-				if (adapter instanceof IFile)
-					file= (IFile) adapter;
-			}
-			if (file != null) {
-				if (modifiable) {
-					if (!file.isReadOnly())
-						result.add(file);
-				} else {
-					result.add(file);
-				}					
-			}
-		}
-		return (IFile[]) result.toArray(new IFile[result.size()]);
-	}
-
-
-}
-
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ExceptionHandler.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ExceptionHandler.java
deleted file mode 100644
index 3ea3ba5..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ExceptionHandler.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import java.io.StringWriter;
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.swt.widgets.Shell;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.dialogs.MessageDialog;
-
-/**
- * The default exception handler shows an error dialog when one of its handle methods
- * is called. If the passed exception is a <code>CoreException</code> an error dialog
- * pops up showing the exception's status information. For a <code>InvocationTargetException</code>
- * a normal message dialog pops up showing the exception's message. Additionally the exception
- * is written to the platform log.
- */
-public class ExceptionHandler {
-
-	private static ExceptionHandler fgInstance= new ExceptionHandler();
-	
-	/**
-	 * Logs the given exception using the platform's logging mechanism. The exception is
-	 * logged as an error with the error code <code>JavaStatusConstants.INTERNAL_ERROR</code>.
-	 */
-	public static void log(Throwable t, String message) {
-		CompareUIPlugin.log(new Status(IStatus.ERROR, CompareUIPlugin.getPluginId(), 
-			CompareUIPlugin.INTERNAL_ERROR, message, t));
-	}
-	
-	/**
-	 * Handles the given <code>CoreException</code>. The workbench shell is used as a parent
-	 * for the dialog window.
-	 * 
-	 * @param e the <code>CoreException</code> to be handled
-	 * @param title the dialog window's window title
-	 * @param message message to be displayed by the dialog window
-	 */
-	public static void handle(CoreException e, String title, String message) {
-		handle(e, CompareUIPlugin.getShell(), title, message);
-	}
-	
-	/**
-	 * Handles the given <code>CoreException</code>. 
-	 * 
-	 * @param e the <code>CoreException</code> to be handled
-	 * @param parent the dialog window's parent shell
-	 * @param title the dialog window's window title
-	 * @param message message to be displayed by the dialog window
-	 */
-	public static void handle(CoreException e, Shell parent, String title, String message) {
-		fgInstance.perform(e, parent, title, message);
-	}
-	
-	/**
-	 * Handles the given <code>InvocationTargetException</code>. The workbench shell is used 
-	 * as a parent for the dialog window.
-	 * 
-	 * @param e the <code>InvocationTargetException</code> to be handled
-	 * @param title the dialog window's window title
-	 * @param message message to be displayed by the dialog window
-	 */
-	public static void handle(InvocationTargetException e, String title, String message) {
-		handle(e, CompareUIPlugin.getShell(), title, message);
-	}
-	
-	/**
-	 * Handles the given <code>InvocationTargetException</code>. 
-	 * 
-	 * @param e the <code>InvocationTargetException</code> to be handled
-	 * @param parent the dialog window's parent shell
-	 * @param title the dialog window's window title
-	 * @param message message to be displayed by the dialog window
-	 */
-	public static void handle(InvocationTargetException e, Shell parent, String title, String message) {
-		fgInstance.perform(e, parent, title, message);
-	}
-
-	//---- Hooks for subclasses to control exception handling ------------------------------------
-	
-	protected void perform(CoreException e, Shell shell, String title, String message) {
-		CompareUIPlugin.log(e);
-		IStatus status= e.getStatus();
-		if (status != null) {
-			ErrorDialog.openError(shell, title, message, status);
-		} else {
-			displayMessageDialog(e, e.getMessage(), shell, title, message);
-		}
-	}
-
-	protected void perform(InvocationTargetException e, Shell shell, String title, String message) {
-		Throwable target= e.getTargetException();
-		if (target instanceof CoreException) {
-			perform((CoreException)target, shell, title, message);
-		} else {
-			CompareUIPlugin.log(e);
-			if (e.getMessage() != null && e.getMessage().length() > 0) {
-				displayMessageDialog(e, e.getMessage(), shell, title, message);
-			} else {
-				displayMessageDialog(e, target.getMessage(), shell, title, message);
-			}
-		}
-	}
-
-	//---- Helper methods -----------------------------------------------------------------------
-	
-	private void displayMessageDialog(Throwable t, String exceptionMessage, Shell shell, String title, String message) {
-		StringWriter msg= new StringWriter();
-		if (message != null) {
-			msg.write(message);
-			msg.write("\n\n"); //$NON-NLS-1$
-		}
-		if (exceptionMessage == null || exceptionMessage.length() == 0)
-			msg.write(CompareMessages.getString("ExceptionDialog.seeErrorLogMessage")); //$NON-NLS-1$
-		else
-			msg.write(exceptionMessage);
-		MessageDialog.openError(shell, title, msg.toString());			
-	}	
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ICompareContextIds.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ICompareContextIds.java
deleted file mode 100644
index a6df241..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ICompareContextIds.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import org.eclipse.compare.CompareUI;
-
-/**
- * Help context ids for the Compare UI.
- * <p>
- * This interface contains constants only; it is not intended to be implemented
- * or extended.
- * </p>
- * 
- */
-public interface ICompareContextIds {
-	
-	public static final String PREFIX= CompareUI.PLUGIN_ID + '.';
-	
-	// Dialogs
-	public static final String EDITION_DIALOG= PREFIX + "edition_dialog_context"; //$NON-NLS-1$
-
-	public static final String COMPARE_EDITOR= PREFIX + "compare_editor_context"; //$NON-NLS-1$
-	public static final String PATCH_INPUT_WIZARD_PAGE= PREFIX + "patch_input_wizard_page_context";	//$NON-NLS-1$
-	public static final String PATCH_PREVIEW_WIZARD_PAGE= PREFIX + "patch_preview_wizard_page_context";	//$NON-NLS-1$
-	public static final String ADD_FROM_HISTORY_DIALOG= PREFIX + "add_from_history_dialog_context"; //$NON-NLS-1$
-	public static final String COMPARE_DIALOG= PREFIX + "compare_dialog_context"; //$NON-NLS-1$
-	public static final String COMPARE_WITH_EDITION_DIALOG= PREFIX + "compare_with_edition_dialog_context"; //$NON-NLS-1$
-	public static final String REPLACE_WITH_EDITION_DIALOG= PREFIX + "replace_with_edition_dialog_context"; //$NON-NLS-1$
-	
-	// Viewer
-	public static final String TEXT_MERGE_VIEW= PREFIX + "text_merge_view_context"; //$NON-NLS-1$
-	public static final String IMAGE_COMPARE_VIEW= PREFIX + "image_compare_view_context"; //$NON-NLS-1$
-	public static final String BINARY_COMPARE_VIEW= PREFIX + "binary_compare_view_context"; //$NON-NLS-1$
-	public static final String DIFF_VIEW= PREFIX + "diff_view_context"; //$NON-NLS-1$
-	
-	// Actions
-	public static final String GLOBAL_NEXT_DIFF_ACTION= PREFIX + "global_next_diff_action_context"; //$NON-NLS-1$
-	public static final String GLOBAL_PREVIOUS_DIFF_ACTION= PREFIX + "global_previous_diff_action_context"; //$NON-NLS-1$
-	public static final String NEXT_DIFF_ACTION= PREFIX + "next_diff_action_context"; //$NON-NLS-1$
-	public static final String PREVIOUS_DIFF_ACTION= PREFIX + "previous_diff_action_context"; //$NON-NLS-1$
-	public static final String IGNORE_WHITESPACE_ACTION= PREFIX + "ignore_whitespace_action_context"; //$NON-NLS-1$
-
-	// Preference page
-	public static final String COMPARE_PREFERENCE_PAGE= PREFIX + "compare_preference_page_context"; //$NON-NLS-1$
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/INavigatable.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/INavigatable.java
deleted file mode 100644
index 3e64e2e..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/INavigatable.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-public interface INavigatable {
-	
-	static final String NAVIGATOR_PROPERTY= "org.eclipse.compare.internal.Navigator"; //$NON-NLS-1$
-	
-	/**
-	 * Returns true if at end or beginning.
-	 */
-	boolean gotoDifference(boolean next);
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/IOpenable.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/IOpenable.java
deleted file mode 100644
index 0138859..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/IOpenable.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-/*
- * Fix for http://dev.eclipse.org/bugs/show_bug.cgi?id=20106
- */ 
-public interface IOpenable {
-	
-	static final String OPENABLE_PROPERTY= "org.eclipse.compare.internal.Openable"; //$NON-NLS-1$
-	
-	/**
-	 * Opens the selected element
-	 */
-	void openSelected();
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ISavable.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ISavable.java
deleted file mode 100644
index a15db7c..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ISavable.java
+++ /dev/null
@@ -1,19 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.CoreException;
-
-public interface ISavable {
-	
-	void save(IProgressMonitor pm) throws CoreException;
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/IStructureCreatorDescriptor.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/IStructureCreatorDescriptor.java
deleted file mode 100644
index f5a845e..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/IStructureCreatorDescriptor.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import org.eclipse.compare.structuremergeviewer.IStructureCreator;
-
-/**
- * A factory object for creating <code>IStructureCreator</code>s from a descriptor.
- * <p>
- * It is used when registering <code>IStructureCreator</code> for types
- * in <code>CompareUIPlugin.registerStructureCreator</code>.
- * </p>
- *
- * @see IStructureCreator
- * @see CompareUIPlugin
- */
-public interface IStructureCreatorDescriptor {
-
-	/**
-	 * Creates a new structure creator.
-	 *
-	 * @return a newly created structure creator
-	 */
-	IStructureCreator createStructureCreator(); 
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/IViewerDescriptor.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/IViewerDescriptor.java
deleted file mode 100644
index 2dda66e..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/IViewerDescriptor.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import org.eclipse.swt.widgets.Composite;
-
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.compare.CompareConfiguration;
-
-/**
- * A factory object for creating a <code>Viewer</code>s from a descriptor.
- * <p>
- * It is used when registering a viewer for a specific type
- * in <code>CompareUIPlugin.registerContentViewerDescriptor</code> and
- * in <code>CompareUIPlugin.registerStructureViewerDescriptor</code>.
- *
- * @see org.eclipse.compare.structuremergeviewer.IStructureCreator
- * @see CompareUIPlugin
- */
-public interface IViewerDescriptor {
-
-	/**
-	 * Creates a new viewer from this descriptor under the given STW parent control.
-	 * If the current viewer has the same type as a new viewer
-	 * the implementation of this method is free to return the current viewer instead.
-	 *
-	 * @param currentViewer the current viewer which is going to be replaced with a new viewer.
-	 * @param parent the SWT parent control under which the new viewer has to be created.
-	 * @param config a compare configuration the new viewer might be interested in.
-	 * @return a new viewer or the current viewer.
-	 */
-	Viewer createViewer(Viewer currentViewer, Composite parent, CompareConfiguration config);
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/IgnoreWhiteSpaceAction.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/IgnoreWhiteSpaceAction.java
deleted file mode 100644
index b6b0fa1..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/IgnoreWhiteSpaceAction.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import java.util.ResourceBundle;
-
-import org.eclipse.compare.*;
-
-/**
- * Toggles the <code>ICompareConfiguration.IGNORE_WS</code> property of an
- * <code>ICompareConfiguration</code>.
- */
-public class IgnoreWhiteSpaceAction extends ChangePropertyAction {
-
-	public IgnoreWhiteSpaceAction(ResourceBundle bundle, CompareConfiguration cc) {
-		super(bundle, cc, "action.IgnoreWhiteSpace.", CompareConfiguration.IGNORE_WHITESPACE); //$NON-NLS-1$
-	}
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ImageCanvas.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ImageCanvas.java
deleted file mode 100644
index f598f89..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ImageCanvas.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.widgets.*;
-
-/**
- * A <code>Canvas</code> showing a single centered SWT <code>Image</code>.
- * If the <code>Image</code> is larger than the <code>Canvas<code>,
- * <code>Scrollbars</code> will appear.
- */
-class ImageCanvas extends Canvas {
-
-	private Image fImage;
-
-	/**
-	 * Create a new ImageCanvas with the given SWT stylebits.
-	 * (SWT.H_SCROLL and SWT.V_SCROLL are automtically added).
-	 */
-	public ImageCanvas(Composite parent, int style) {
-		super(parent, style | SWT.H_SCROLL | SWT.V_SCROLL);
-
-		ScrollBar sb= getHorizontalBar();
-		sb.setIncrement(20);
-		sb.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				repaint();
-			}
-		});
-
-		sb= getVerticalBar();
-		sb.setIncrement(20);
-		sb.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event e) {
-				repaint();
-			}
-		});
-
-		addListener(SWT.Resize, new Listener() {
-			public void handleEvent(Event e) {
-				updateScrollbars();
-			}
-		});
-
-		addListener(SWT.Paint, new Listener() {
-			public void handleEvent(Event event) {
-				paint(event.gc);
-			}
-		});
-	}
-
-	/**
-	 * Set the SWT Image to use as the ImageCanvas contents.
-	 */
-	public void setImage(Image img) {
-		fImage= img;
-
-		if (!isDisposed()) {
-			getHorizontalBar().setSelection(0);
-			getVerticalBar().setSelection(0);
-			updateScrollbars();
-			getParent().layout();
-			redraw();
-		}
-	}
-
-	public void repaint() {
-		if (!isDisposed()) {
-			GC gc= new GC(this);
-			paint(gc);
-			gc.dispose();
-		}
-	}
-
-	/**
-	 * @private
-	 */
-	void paint(GC gc) {
-		if (fImage != null) {
-			Rectangle bounds= fImage.getBounds();
-			Rectangle clientArea= getClientArea();
-
-			int x;
-			if (bounds.width < clientArea.width)
-				x= (clientArea.width - bounds.width) / 2;
-			else
-				x= -getHorizontalBar().getSelection();
-
-			int y;
-			if (bounds.height < clientArea.height)
-				y= (clientArea.height - bounds.height) / 2;
-			else
-				y= -getVerticalBar().getSelection();
-
-			gc.drawImage(fImage, x, y);
-		}
-	}
-
-	/**
-	 * @private
-	 */
-	void updateScrollbars() {
-		Rectangle bounds= fImage != null ? fImage.getBounds() : new Rectangle(0, 0, 0, 0);
-		Point size= getSize();
-		Rectangle clientArea= getClientArea();
-
-		ScrollBar horizontal= getHorizontalBar();
-		if (bounds.width <= clientArea.width) {
-			horizontal.setVisible(false);
-			horizontal.setSelection(0);
-		} else {
-			horizontal.setPageIncrement(clientArea.width - horizontal.getIncrement());
-			int max= bounds.width + (size.x - clientArea.width);
-			horizontal.setMaximum(max);
-			horizontal.setThumb(size.x > max ? max : size.x);
-			horizontal.setVisible(true);
-		}
-
-		ScrollBar vertical= getVerticalBar();
-		if (bounds.height <= clientArea.height) {
-			vertical.setVisible(false);
-			vertical.setSelection(0);
-		} else {
-			vertical.setPageIncrement(clientArea.height - vertical.getIncrement());
-			int max= bounds.height + (size.y - clientArea.height);
-			vertical.setMaximum(max);
-			vertical.setThumb(size.y > max ? max : size.y);
-			vertical.setVisible(true);
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ImageMergeViewer.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ImageMergeViewer.java
deleted file mode 100644
index e574dab..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ImageMergeViewer.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import java.io.InputStream;
-import java.io.IOException;
-import java.util.ResourceBundle;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.SWTException;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.help.WorkbenchHelp;
-
-import org.eclipse.core.runtime.CoreException;
-
-import org.eclipse.compare.*;
-import org.eclipse.compare.contentmergeviewer.ContentMergeViewer;
-
-/**
- */
-public class ImageMergeViewer extends ContentMergeViewer {
-	
-	private static final String BUNDLE_NAME= "org.eclipse.compare.internal.ImageMergeViewerResources"; //$NON-NLS-1$
-		
-	private Object fLeftImage;
-	private Object fRightImage;
-
-	private ImageCanvas fAncestor;
-	private ImageCanvas fLeft;
-	private ImageCanvas fRight;
-	
-			
-	public ImageMergeViewer(Composite parent, int styles, CompareConfiguration mp) {
-		super(styles, ResourceBundle.getBundle(BUNDLE_NAME), mp);
-
-		WorkbenchHelp.setHelp(parent, ICompareContextIds.IMAGE_COMPARE_VIEW);
-
-		buildControl(parent);
-		String title= Utilities.getString(getResourceBundle(), "title"); //$NON-NLS-1$
-		getControl().setData(CompareUI.COMPARE_VIEWER_TITLE, title);
-	}
-
-	protected void updateContent(Object ancestor, Object left, Object right) {
-		
-		setInput(fAncestor, ancestor);
-		
-		fLeftImage= left;
-		setInput(fLeft, left);
-		
-		fRightImage= right;
-		setInput(fRight, right);
-	}
-	
-	/**
-	 * We can't modify the contents of either side we just return null.
-	 */
-	protected byte[] getContents(boolean left) {
-		return null;
-	}
-	
-	public void createControls(Composite composite) {
-		fAncestor= new ImageCanvas(composite, SWT.NO_FOCUS);
-		fLeft= new ImageCanvas(composite, SWT.NO_FOCUS);
-		fRight= new ImageCanvas(composite, SWT.NO_FOCUS);
-	}
-
-	private static void setInput(ImageCanvas canvas, Object input) {
-		if (canvas != null) {
-
-			InputStream stream= null;
-			if (input instanceof IStreamContentAccessor) {
-				IStreamContentAccessor sca= (IStreamContentAccessor) input;
-				if (sca != null) {
-					try {
-						stream= sca.getContents();
-					} catch (CoreException ex) {
-					}
-				}
-			}
-			
-			Image image= null;			
-			Display display= canvas.getDisplay();
-			if (stream != null) {
-				try {
-					image= new Image(display, stream);
-				} catch (SWTException ex) {
-				}
-			}
-
-			canvas.setImage(image);
-			if (image != null) {
-				canvas.setBackground(display.getSystemColor(SWT.COLOR_LIST_BACKGROUND));
-			} else {
-				canvas.setBackground(null);
-			}
-			
-			if (stream != null) {
-				try {
-					stream.close();
-				} catch (IOException ex) {
-				}
-			}
-		}
-	}
-	
-	protected void handleResizeAncestor(int x, int y, int width, int height) {
-		if (width > 0) {
-			fAncestor.setVisible(true);
-			fAncestor.setBounds(x, y, width, height);
-		} else {
-			fAncestor.setVisible(false);
-		}
-	}
-
-	protected void handleResizeLeftRight(int x, int y, int width1, int centerWidth, int width2, int height) {
-		fLeft.setBounds(x, y, width1, height);
-		fRight.setBounds(x+width1+centerWidth, y, width2, height);
-	}
-	
-	protected void copy(boolean leftToRight) {
-		if (leftToRight) {
-			fRightImage= fLeftImage;
-			setInput(fRight, fRightImage);
-			setRightDirty(true);
-		} else {
-			fLeftImage= fRightImage;
-			setInput(fLeft, fLeftImage);
-			setLeftDirty(true);
-		}
-	}
-}
-
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ImageMergeViewerCreator.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ImageMergeViewerCreator.java
deleted file mode 100644
index ae0ab78..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ImageMergeViewerCreator.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-
-import org.eclipse.compare.*;
-import org.eclipse.jface.viewers.Viewer;
-
-/**
- * A factory object for the <code>ImageMergeViewer</code>.
- * This indirection is necessary because only objects with a default
- * constructor can be created via an extension point
- * (this precludes Viewers).
- */
-public class ImageMergeViewerCreator implements IViewerCreator {
-
-	public Viewer createViewer(Composite parent, CompareConfiguration mp) {
-		return new ImageMergeViewer(parent, SWT.NULL, mp);
-	}
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ImageMergeViewerResources.properties b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ImageMergeViewerResources.properties
deleted file mode 100644
index cb23466..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ImageMergeViewerResources.properties
+++ /dev/null
@@ -1,32 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-# @(#)ImageMergeViewerResources.properties
-#
-# Resource strings for ImageMergeViewer.java
-
-title= Image Compare
-
-#####################################################
-# Actions
-#####################################################
-
-action.CopyLeftToRight.label= Copy Left to Right
-action.CopyLeftToRight.tooltip= Copy Image from Left to Right
-action.CopyLeftToRight.image= elcl16/copy_r_co.gif
-
-action.CopyRightToLeft.label= Copy Right to Left
-action.CopyRightToLeft.tooltip= Copy Image from Right to Left
-action.CopyRightToLeft.image= elcl16/copy_l_co.gif
-
-action.EnableAncestor.label= Enable Ancestor Pane
-action.EnableAncestor.tooltip= Control Visibility of Ancestor Pane
-action.EnableAncestor.image= elcl16/ancestorpane_co.gif
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ListContentProvider.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ListContentProvider.java
deleted file mode 100644
index b39150c..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ListContentProvider.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import java.util.List;
-
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.Viewer;
-
-/** 
- * A specialized content provider to show a list of editor parts.
- */ 
-public class ListContentProvider implements IStructuredContentProvider {
-	List fContents;	
-
-	public ListContentProvider() {
-	}
-	
-	public Object[] getElements(Object input) {
-		if (fContents != null && fContents == input)
-			return fContents.toArray();
-		return new Object[0];
-	}
-
-	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-		if (newInput instanceof List) 
-			fContents= (List)newInput;
-		else
-			fContents= null;
-		// we use a fixed set.
-	}
-
-	public void dispose() {
-	}
-	
-	public boolean isDeleted(Object o) {
-		return fContents != null && !fContents.contains(o);
-	}
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ListDialog.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ListDialog.java
deleted file mode 100644
index 5df991b..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ListDialog.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.*;
-
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.viewers.*;
-
-import org.eclipse.ui.dialogs.SelectionDialog;
-
-public class ListDialog extends SelectionDialog {
-
-	private IStructuredContentProvider fContentProvider;
-	private ILabelProvider fLabelProvider;
-	private Object fInput;
-	private TableViewer fTableViewer;
-	private boolean fAddCancelButton;
-	
-	public ListDialog(Shell parent) {
-		super(parent);
-		fAddCancelButton= false;
-	}
-
-	public void setInput(Object input) {
-		fInput= input;
-	}
-	
-	public void setContentProvider(IStructuredContentProvider sp){
-		fContentProvider= sp;
-	}
-	
-	public void setLabelProvider(ILabelProvider lp){
-		fLabelProvider= lp;
-	}
-
-	public void setAddCancelButton(boolean addCancelButton) {
-		fAddCancelButton= addCancelButton;
-	}
-	
-	public TableViewer getTableViewer(){
-		return fTableViewer;
-	}
-			
-	public boolean hasFilters(){
-		return fTableViewer.getFilters() != null && fTableViewer.getFilters().length != 0;
-	}
-	
-	public void create() {
-		setShellStyle(SWT.DIALOG_TRIM | SWT.RESIZE);
-		super.create();
-	}
-	
-	protected void createButtonsForButtonBar(Composite parent) {
-		if (! fAddCancelButton)
-			createButton(parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL, true);
-		else
-			super.createButtonsForButtonBar(parent);	
-	}	
-	
-	protected Control createDialogArea(Composite container) {
-		Composite parent= (Composite) super.createDialogArea(container);
-		createMessageArea(parent);
-		fTableViewer= new TableViewer(parent, getTableStyle());
-		fTableViewer.setContentProvider(fContentProvider);
-		Table table= fTableViewer.getTable();
-		fTableViewer.setLabelProvider(fLabelProvider);
-		fTableViewer.setInput(fInput);
-		GridData gd= new GridData(GridData.FILL_BOTH);
-		gd.heightHint= convertHeightInCharsToPixels(15);
-		gd.widthHint= convertWidthInCharsToPixels(55);
-		table.setLayoutData(gd);
-		applyDialogFont(parent);
-		return parent;
-	}
-	
-	protected int getTableStyle() {
-		return SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER;
-	}
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/MergeSourceViewer.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/MergeSourceViewer.java
deleted file mode 100644
index 939bf58..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/MergeSourceViewer.java
+++ /dev/null
@@ -1,392 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import java.util.*;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.graphics.Font;
-
-import org.eclipse.jface.action.*;
-import org.eclipse.jface.viewers.*;
-import org.eclipse.jface.text.*;
-import org.eclipse.jface.text.source.*;
-
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-/**
- * Extends the JFace SourceViewer with some convenience methods.
- */
-public class MergeSourceViewer extends SourceViewer
-						implements ISelectionChangedListener, ITextListener, IMenuListener {
-								
-	public static final String UNDO_ID= "undo"; //$NON-NLS-1$
-	public static final String REDO_ID= "redo"; //$NON-NLS-1$
-	public static final String CUT_ID= "cut"; //$NON-NLS-1$
-	public static final String COPY_ID= "copy"; //$NON-NLS-1$
-	public static final String PASTE_ID= "paste"; //$NON-NLS-1$
-	public static final String DELETE_ID= "delete"; //$NON-NLS-1$
-	public static final String SELECT_ALL_ID= "selectAll"; //$NON-NLS-1$
-	public static final String SAVE_ID= "save"; //$NON-NLS-1$
-
-	class TextOperationAction extends MergeViewerAction {
-		
-		private int fOperationCode;
-		
-		TextOperationAction(int operationCode, boolean mutable, boolean selection, boolean content) {
-			super(mutable, selection, content);
-			fOperationCode= operationCode;
-			update();
-		}
-		
-		public void run() {
-			if (isEnabled())
-				doOperation(fOperationCode);
-		}
-
-		public boolean isEnabled() {
-			return fOperationCode != -1 && canDoOperation(fOperationCode);
-		}
-		
-		public void update() {
-			this.setEnabled(isEnabled());
-		}
-	}
-
-	private ResourceBundle fResourceBundle;
-	private Position fRegion;
-	private boolean fEnabled= true;
-	private HashMap fActions= new HashMap();
-	
-	private boolean fAddSaveAction= true;
-	
-	
-	public MergeSourceViewer(Composite parent, ResourceBundle bundle) {
-		super(parent, null, SWT.H_SCROLL + SWT.V_SCROLL);
-		
-		fResourceBundle= bundle;
-		
-		MenuManager menu= new MenuManager();
-		menu.setRemoveAllWhenShown(true);
-		menu.addMenuListener(this);
-		StyledText te= getTextWidget();
-		te.setMenu(menu.createContextMenu(te));
-	}
-	
-	public void hideSaveAction() {
-		fAddSaveAction= false;
-	}
-	
-	public void setFont(Font font) {
-		StyledText te= getTextWidget();
-		if (te != null)
-			te.setFont(font);
-	}
-	
-	public void setBackgroundColor(Color color) {
-		StyledText te= getTextWidget();
-		if (te != null)
-			te.setBackground(color);
-	}
-	
-	public void setEnabled(boolean enabled) {
-		if (enabled != fEnabled) {
-			fEnabled= enabled;
-			StyledText c= getTextWidget();
-			if (c != null) {
-				c.setEnabled(enabled);
-				Display d= c.getDisplay();
-				c.setBackground(enabled ? d.getSystemColor(SWT.COLOR_LIST_BACKGROUND) : null);
-			}
-		}
-	}
-	
-	public boolean getEnabled() {
-		return fEnabled;
-	}
-
-	public void setRegion(Position region) {
-		fRegion= region;
-	}
-	
-	public Position getRegion() {
-		return fRegion;
-	}
-	
-	public boolean isControlOkToUse() {
-		StyledText t= getTextWidget();
-		return t != null && !t.isDisposed();
-	}
-				
-	public void setSelection(Position position) {
-		if (position != null)
-			setSelectedRange(position.getOffset(), position.getLength());
-	}
-	
-	public void setLineBackground(Position position, Color c) {
-		StyledText t= getTextWidget();
-		if (t != null && !t.isDisposed()) {
-			Point region= new Point(0, 0);
-			getLineRange(position, region);
-		
-			region.x-= getDocumentRegionOffset();
-		
-			try {
-				t.setLineBackground(region.x, region.y, c);
-			} catch (IllegalArgumentException ex) {
-			}
-		}
-	}
-	
-	public void resetLineBackground() {
-		StyledText t= getTextWidget();
-		if (t != null && !t.isDisposed()) {
-			int lines= getLineCount();
-			t.setLineBackground(0, lines, null);
-		}
-	}
-	
-	/**
-	 * Returns number of lines in document region.
-	 */
-	public int getLineCount() {
-		IRegion region= getVisibleRegion();
-
-		int length= region.getLength();
-		if (length == 0)
-			return 0;
-		
-		IDocument doc= getDocument();
-		int startLine= 0;
-		int endLine= 0;
-
-		int start= region.getOffset();
-		try {
-			startLine= doc.getLineOfOffset(start);
-		} catch(BadLocationException ex) {
-		}
-		try {
-			endLine= doc.getLineOfOffset(start+length);
-		} catch(BadLocationException ex) {
-		}
-		
-		return endLine-startLine+1;
-	}
-	
-	public int getViewportLines() {
-		StyledText te= getTextWidget();
-		Rectangle clArea= te.getClientArea();
-		if (!clArea.isEmpty())
-			return clArea.height / te.getLineHeight();
-		return 0;
-	}
-
-	public int getViewportHeight() {
-		StyledText te= getTextWidget();
-		Rectangle clArea= te.getClientArea();
-		if (!clArea.isEmpty())
-			return clArea.height;
-		return 0;
-	}
-	
-	/**
-	 * Returns lines
-	 */
-	public int getDocumentRegionOffset() {
-		int start= getVisibleRegion().getOffset();
-		IDocument doc= getDocument();
-		if (doc != null) {
-			try {
-				return doc.getLineOfOffset(start);
-			} catch(BadLocationException ex) {
-			}
-		}
-		return 0;
-	}
-	
-	public int getVerticalScrollOffset() {
-		StyledText st= getTextWidget();
-		int lineHeight= st.getLineHeight();
-		return getTopInset() - ((getDocumentRegionOffset()*lineHeight) + st.getTopPixel());
-	}
-
-	/**
-	 * Returns the start line and the number of lines which correspond to the given position.
-	 * Starting line number is 0 based.
-	 */
-	public Point getLineRange(Position p, Point region) {
-		
-		IDocument doc= getDocument();
-		
-		if (p == null || doc == null) {
-			region.x= 0;
-			region.y= 0;
-			return region;
-		}
-		
-		int start= p.getOffset();
-		int length= p.getLength();
-		
-		int startLine= 0;
-		try {
-			startLine= doc.getLineOfOffset(start);
-		} catch (BadLocationException e) {
-		}
-		
-		int lineCount= 0;
-		
-		if (length == 0) {
-//			// if range length is 0 and if range starts a new line
-//			try {
-//				if (start == doc.getLineStartOffset(startLine)) {
-//					lines--;
-//				}
-//			} catch (BadLocationException e) {
-//				lines--;
-//			}
-			
-		} else {
-			int endLine= 0;
-			try {
-				endLine= doc.getLineOfOffset(start + length - 1);	// why -1?
-			} catch (BadLocationException e) {
-			}
-			lineCount= endLine-startLine+1;
-		}
-				
-		region.x= startLine;
-		region.y= lineCount;
-		return region;
-	}
-	
-	/**
-	 * Scroll TextPart to the given line.
-	 */
-	public void vscroll(int line) {
-
-		int srcViewSize= getLineCount();
-		int srcExtentSize= getViewportLines();
-
-		if (srcViewSize > srcExtentSize) {
-
-			if (line < 0)
-				line= 0;
-
-			int cp= getTopIndex();
-			if (cp != line)
-				setTopIndex(line + getDocumentRegionOffset());
-		}
-	}
-	
-	public void addAction(String actionId, MergeViewerAction action) {
-		fActions.put(actionId, action);
-	}
-	
-	public MergeViewerAction getAction(String actionId) {
-		MergeViewerAction action= (MergeViewerAction) fActions.get(actionId);
-		if (action == null) {
-			action= createAction(actionId);
-			if (action == null)
-				return null;
-			
-			if (action.isContentDependent())
-				addTextListener(this);
-			if (action.isSelectionDependent())
-				addSelectionChangedListener(this);
-				
-			Utilities.initAction(action, fResourceBundle, "action." + actionId + ".");			 //$NON-NLS-1$ //$NON-NLS-2$
-			fActions.put(actionId, action);
-		}
-		if (action.isEditableDependent() && !isEditable())
-			return null;
-		return action;
-	}
-	
-	protected MergeViewerAction createAction(String actionId) {
-		if (UNDO_ID.equals(actionId))
-			return new TextOperationAction(UNDO, true, false, true);
-		if (REDO_ID.equals(actionId))
-			return new TextOperationAction(REDO, true, false, true);
-		if (CUT_ID.equals(actionId))
-			return new TextOperationAction(CUT, true, true, false);
-		if (COPY_ID.equals(actionId))
-			return new TextOperationAction(COPY, false, true, false);
-		if (PASTE_ID.equals(actionId))
-			return new TextOperationAction(PASTE, true, false, false);
-		if (DELETE_ID.equals(actionId))
-			return new TextOperationAction(DELETE, true, false, false);
-		if (SELECT_ALL_ID.equals(actionId))
-			return new TextOperationAction(SELECT_ALL, false, false, false);
-		return null;
-	}
-	
-	public void selectionChanged(SelectionChangedEvent event) {
-		Iterator e= fActions.values().iterator();
-		while (e.hasNext()) {
-			MergeViewerAction action= (MergeViewerAction) e.next();
-			if (action.isSelectionDependent())
-				action.update();
-		}
-	}
-					
-	public void textChanged(TextEvent event) {
-		Iterator e= fActions.values().iterator();
-		while (e.hasNext()) {
-			MergeViewerAction action= (MergeViewerAction) e.next();
-			if (action.isContentDependent())
-				action.update();
-		}
-	}
-		
-	/**
-	 * Allows the viewer to add menus and/or tools to the context menu.
-	 */
-	public void menuAboutToShow(IMenuManager menu) {
-		
-		menu.add(new Separator("undo")); //$NON-NLS-1$
-		addMenu(menu, UNDO_ID);
-		addMenu(menu, REDO_ID);
-	
-		menu.add(new Separator("ccp")); //$NON-NLS-1$
-		addMenu(menu, CUT_ID);
-		addMenu(menu, COPY_ID);
-		addMenu(menu, PASTE_ID);
-		addMenu(menu, DELETE_ID);
-		addMenu(menu, SELECT_ALL_ID);
-
-		menu.add(new Separator("edit")); //$NON-NLS-1$
-		menu.add(new Separator("find")); //$NON-NLS-1$
-		//addMenu(menu, FIND_ID);
-		
-		menu.add(new Separator("save")); //$NON-NLS-1$
-		if (fAddSaveAction)
-			addMenu(menu, SAVE_ID);
-		
-		menu.add(new Separator("rest")); //$NON-NLS-1$
-	}
-	
-	private void addMenu(IMenuManager menu, String actionId) {
-		IAction action= getAction(actionId);
-		if (action != null)
-			menu.add(action);
-	}
-		
-	protected void handleDispose() {
-		
-		removeTextListener(this);
-		removeSelectionChangedListener(this);
-		
-		super.handleDispose();
-	}
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/MergeViewerAction.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/MergeViewerAction.java
deleted file mode 100644
index 590ab86..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/MergeViewerAction.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import org.eclipse.ui.texteditor.IUpdate;
-import org.eclipse.jface.action.Action;
-
-
-public abstract class MergeViewerAction extends Action implements IUpdate {
-	
-	private boolean fMutable;
-	private boolean fSelection;
-	private boolean fContent;
-	
-	public MergeViewerAction(boolean mutable, boolean selection, boolean content) {
-		fMutable= mutable;
-		fSelection= selection;
-		fContent= content;
-	}
-
-	public boolean isSelectionDependent() {
-		return fSelection;
-	}
-	
-	public boolean isContentDependent() {
-		return fContent;
-	}
-	
-	public boolean isEditableDependent() {
-		return fMutable;
-	}
-	
-	public void update() {
-	}
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/MergeViewerContentProvider.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/MergeViewerContentProvider.java
deleted file mode 100644
index 8002bb5..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/MergeViewerContentProvider.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import org.eclipse.swt.graphics.Image;
-
-import org.eclipse.jface.viewers.Viewer;
-
-import org.eclipse.compare.*;
-import org.eclipse.compare.structuremergeviewer.*;
-import org.eclipse.compare.contentmergeviewer.IMergeViewerContentProvider;
-
-/**
- * Adapts any <code>ContentMergeViewer</code> to work on an <code>ICompareInput</code>
- * e.g. a <code>DiffNode</code>.
- */
-public class MergeViewerContentProvider implements IMergeViewerContentProvider {
-	
-	private CompareConfiguration fCompareConfiguration;
-		
-	public MergeViewerContentProvider(CompareConfiguration cc) {
-		fCompareConfiguration= cc;
-	}
-	
-	public void dispose() {
-	}
-	
-	public void inputChanged(Viewer v, Object o1, Object o2) {
-		// we are not interested since we have no state
-	}
-	
-	//---- ancestor
-			
-	public String getAncestorLabel(Object element) {
-		return fCompareConfiguration.getAncestorLabel(element);
-	}
-	
-	public Image getAncestorImage(Object element) {
-		return fCompareConfiguration.getAncestorImage(element);
-	}
-	
-	public Object getAncestorContent(Object element) {
-		if (element instanceof ICompareInput)
-			return ((ICompareInput) element).getAncestor();
-		return null;
-	}
-	
-	public boolean showAncestor(Object element) {
-		if (element instanceof ICompareInput)
-			return (((ICompareInput)element).getKind() & Differencer.DIRECTION_MASK) == Differencer.CONFLICTING;
-		return false;
-	}
-
-	//---- left
-					
-	public String getLeftLabel(Object element) {
-		return fCompareConfiguration.getLeftLabel(element);
-	}
-	
-	public Image getLeftImage(Object element) {
-		return fCompareConfiguration.getLeftImage(element);
-	}
-	
-	public Object getLeftContent(Object element) {	
-		if (element instanceof ICompareInput)
-			return ((ICompareInput) element).getLeft();
-		return null;
-	}
-		
-	public boolean isLeftEditable(Object element) {
-		if (element instanceof ICompareInput) {
-			Object left= ((ICompareInput) element).getLeft();
-			if (left == null) {
-				IDiffElement parent= ((IDiffElement)element).getParent();
-				if (parent instanceof ICompareInput)
-					left= ((ICompareInput) parent).getLeft();
-			}
-			if (left instanceof IEditableContent)
-				return ((IEditableContent)left).isEditable();
-		}
-		return false;
-	}
-
-	public void saveLeftContent(Object element, byte[] bytes) {
-		if (element instanceof ICompareInput) {
-			ICompareInput node= (ICompareInput) element;
-			if (bytes != null) {
-				ITypedElement left= node.getLeft();
-				// #9869: problem if left is null (because no resource exists yet) nothing is done!
-				if (left == null) {
-					node.copy(false);
-					left= node.getLeft();
-				}
-				if (left instanceof IEditableContent)
-					((IEditableContent)left).setContent(bytes);
-				if (node instanceof ResourceCompareInput.MyDiffNode)
-					((ResourceCompareInput.MyDiffNode)node).fireChange();
-			} else {
-				node.copy(false);
-			}			
-		}
-	}
-	
-	//---- right
-	
-	public String getRightLabel(Object element) {
-		return fCompareConfiguration.getRightLabel(element);
-	}
-	
-	public Image getRightImage(Object element) {
-		return fCompareConfiguration.getRightImage(element);
-	}
-	
-	public Object getRightContent(Object element) {
-		if (element instanceof ICompareInput)
-			return ((ICompareInput) element).getRight();
-		return null;
-	}
-	
-	public boolean isRightEditable(Object element) {
-		if (element instanceof ICompareInput) {
-			Object right= ((ICompareInput) element).getRight();
-			if (right == null) {
-				IDiffContainer parent= ((IDiffElement)element).getParent();
-				if (parent instanceof ICompareInput)
-					right= ((ICompareInput) parent).getRight();
-			}
-			if (right instanceof IEditableContent)
-				return ((IEditableContent)right).isEditable();
-		}
-		return false;
-	}
-	
-	public void saveRightContent(Object element, byte[] bytes) {
-		if (element instanceof ICompareInput) {
-			ICompareInput node= (ICompareInput) element;
-			if (bytes != null) {
-				ITypedElement right= node.getRight();
-				// #9869: problem if right is null (because no resource exists yet) nothing is done!
-				if (right == null) {
-					node.copy(true);
-					right= node.getRight();
-				}
-				if (right instanceof IEditableContent)
-					((IEditableContent)right).setContent(bytes);
-				if (node instanceof ResourceCompareInput.MyDiffNode)
-					((ResourceCompareInput.MyDiffNode)node).fireChange();
-			} else {
-				node.copy(true);
-			}		
-		}
-	}
-}
-
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/NullViewer.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/NullViewer.java
deleted file mode 100644
index e35b93a..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/NullViewer.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.*;
-
-import org.eclipse.compare.CompareViewerSwitchingPane;
-
-/**
- * Used whenever the input is null or no viewer can be found.
- */
-public class NullViewer extends AbstractViewer {
-
-	private Control fDummy;
-
-	public NullViewer(Composite parent) {
-
-		fDummy= new Tree(parent, SWT.NULL);
-
-		CompareViewerSwitchingPane.clearToolBar(parent);
-	}
-
-	public Control getControl() {
-		return fDummy;
-	}
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/OverlayPreferenceStore.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/OverlayPreferenceStore.java
deleted file mode 100644
index 7484356..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/OverlayPreferenceStore.java
+++ /dev/null
@@ -1,451 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.preference.PreferenceStore;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-
-/**
- * An overlaying preference store.
- */
-public class OverlayPreferenceStore  implements IPreferenceStore {
-	
-	
-	public static final class TypeDescriptor {
-		private TypeDescriptor() {
-		}
-	};
-	
-	public static final TypeDescriptor BOOLEAN= new TypeDescriptor();
-	public static final TypeDescriptor DOUBLE= new TypeDescriptor();
-	public static final TypeDescriptor FLOAT= new TypeDescriptor();
-	public static final TypeDescriptor INT= new TypeDescriptor();
-	public static final TypeDescriptor LONG= new TypeDescriptor();
-	public static final TypeDescriptor STRING= new TypeDescriptor();
-	
-	public static class OverlayKey {
-		
-		TypeDescriptor fDescriptor;
-		String fKey;
-		
-		public OverlayKey(TypeDescriptor descriptor, String key) {
-			fDescriptor= descriptor;
-			fKey= key;
-		}
-	};
-	
-	private class PropertyListener implements IPropertyChangeListener {
-				
-		/*
-		 * @see IPropertyChangeListener#propertyChange(PropertyChangeEvent)
-		 */
-		public void propertyChange(PropertyChangeEvent event) {
-			OverlayKey key= findOverlayKey(event.getProperty());
-			if (key != null)
-				propagateProperty(fParent, key, fStore); 
-		}
-	};
-	
-	
-	private IPreferenceStore fParent;
-	private IPreferenceStore fStore;
-	private OverlayKey[] fOverlayKeys;
-	
-	private PropertyListener fPropertyListener;
-	
-	
-	public OverlayPreferenceStore(IPreferenceStore parent, OverlayKey[] overlayKeys) {
-		fParent= parent;
-		fOverlayKeys= overlayKeys;
-		fStore= new PreferenceStore();
-	}
-	
-	private OverlayKey findOverlayKey(String key) {
-		for (int i= 0; i < fOverlayKeys.length; i++) {
-			if (fOverlayKeys[i].fKey.equals(key))
-				return fOverlayKeys[i];
-		}
-		return null;
-	}
-	
-	private boolean covers(String key) {
-		return (findOverlayKey(key) != null);
-	}
-	
-	private void propagateProperty(IPreferenceStore orgin, OverlayKey key, IPreferenceStore target) {
-		
-		if (orgin.isDefault(key.fKey)) {
-			if (!target.isDefault(key.fKey))
-				target.setToDefault(key.fKey);
-			return;
-		}
-		
-		TypeDescriptor d= key.fDescriptor;
-		if (BOOLEAN == d) {
-			
-			boolean originValue= orgin.getBoolean(key.fKey);
-			boolean targetValue= target.getBoolean(key.fKey);
-			if (targetValue != originValue)
-				target.setValue(key.fKey, originValue);
-				
-		} else if (DOUBLE == d) {
-			
-			double originValue= orgin.getDouble(key.fKey);
-			double targetValue= target.getDouble(key.fKey);
-			if (targetValue != originValue)
-				target.setValue(key.fKey, originValue);
-		
-		} else if (FLOAT == d) {
-			
-			float originValue= orgin.getFloat(key.fKey);
-			float targetValue= target.getFloat(key.fKey);
-			if (targetValue != originValue)
-				target.setValue(key.fKey, originValue);
-				
-		} else if (INT == d) {
-
-			int originValue= orgin.getInt(key.fKey);
-			int targetValue= target.getInt(key.fKey);
-			if (targetValue != originValue)
-				target.setValue(key.fKey, originValue);
-
-		} else if (LONG == d) {
-
-			long originValue= orgin.getLong(key.fKey);
-			long targetValue= target.getLong(key.fKey);
-			if (targetValue != originValue)
-				target.setValue(key.fKey, originValue);
-
-		} else if (STRING == d) {
-
-			String originValue= orgin.getString(key.fKey);
-			String targetValue= target.getString(key.fKey);
-			if (targetValue != null && originValue != null && !targetValue.equals(originValue))
-				target.setValue(key.fKey, originValue);
-
-		}
-	}
-	
-	public void propagate() {
-		for (int i= 0; i < fOverlayKeys.length; i++)
-			propagateProperty(fStore, fOverlayKeys[i], fParent);
-	}
-	
-	private void loadProperty(IPreferenceStore orgin, OverlayKey key, IPreferenceStore target, boolean forceInitialization) {
-		TypeDescriptor d= key.fDescriptor;
-		if (BOOLEAN == d) {
-			
-			if (forceInitialization)
-				target.setValue(key.fKey, true);
-			target.setValue(key.fKey, orgin.getBoolean(key.fKey));
-			target.setDefault(key.fKey, orgin.getDefaultBoolean(key.fKey));
-			
-		} else if (DOUBLE == d) {
-			
-			if (forceInitialization)
-				target.setValue(key.fKey, 1.0D);
-			target.setValue(key.fKey, orgin.getDouble(key.fKey));
-			target.setDefault(key.fKey, orgin.getDefaultDouble(key.fKey));
-			
-		} else if (FLOAT == d) {
-			
-			if (forceInitialization)
-				target.setValue(key.fKey, 1.0F);
-			target.setValue(key.fKey, orgin.getFloat(key.fKey));
-			target.setDefault(key.fKey, orgin.getDefaultFloat(key.fKey));
-			
-		} else if (INT == d) {
-			
-			if (forceInitialization)
-				target.setValue(key.fKey, 1);
-			target.setValue(key.fKey, orgin.getInt(key.fKey));
-			target.setDefault(key.fKey, orgin.getDefaultInt(key.fKey));
-			
-		} else if (LONG == d) {
-			
-			if (forceInitialization)
-				target.setValue(key.fKey, 1L);
-			target.setValue(key.fKey, orgin.getLong(key.fKey));
-			target.setDefault(key.fKey, orgin.getDefaultLong(key.fKey));
-			
-		} else if (STRING == d) {
-			
-			if (forceInitialization)
-				target.setValue(key.fKey, "1");	//$NON-NLS-1$
-			target.setValue(key.fKey, orgin.getString(key.fKey));
-			target.setDefault(key.fKey, orgin.getDefaultString(key.fKey));
-			
-		}
-	}
-	
-	public void load() {
-		for (int i= 0; i < fOverlayKeys.length; i++)
-			loadProperty(fParent, fOverlayKeys[i], fStore, true);
-	}
-	
-	public void loadDefaults() {
-		for (int i= 0; i < fOverlayKeys.length; i++)
-			setToDefault(fOverlayKeys[i].fKey);
-	}
-	
-	public void start() {
-		if (fPropertyListener == null) {
-			fPropertyListener= new PropertyListener();
-			fParent.addPropertyChangeListener(fPropertyListener);
-		}
-	}
-	
-	public void stop() {
-		if (fPropertyListener != null)  {
-			fParent.removePropertyChangeListener(fPropertyListener);
-			fPropertyListener= null;
-		}
-	}
-	
-	/*
-	 * @see IPreferenceStore#addPropertyChangeListener(IPropertyChangeListener)
-	 */
-	public void addPropertyChangeListener(IPropertyChangeListener listener) {
-		fStore.addPropertyChangeListener(listener);
-	}
-	
-	/*
-	 * @see IPreferenceStore#removePropertyChangeListener(IPropertyChangeListener)
-	 */
-	public void removePropertyChangeListener(IPropertyChangeListener listener) {
-		fStore.removePropertyChangeListener(listener);
-	}
-	
-	/*
-	 * @see IPreferenceStore#firePropertyChangeEvent(String, Object, Object)
-	 */
-	public void firePropertyChangeEvent(String name, Object oldValue, Object newValue) {
-		fStore.firePropertyChangeEvent(name, oldValue, newValue);
-	}
-
-	/*
-	 * @see IPreferenceStore#contains(String)
-	 */
-	public boolean contains(String name) {
-		return fStore.contains(name);
-	}
-	
-	/*
-	 * @see IPreferenceStore#getBoolean(String)
-	 */
-	public boolean getBoolean(String name) {
-		return fStore.getBoolean(name);
-	}
-
-	/*
-	 * @see IPreferenceStore#getDefaultBoolean(String)
-	 */
-	public boolean getDefaultBoolean(String name) {
-		return fStore.getDefaultBoolean(name);
-	}
-
-	/*
-	 * @see IPreferenceStore#getDefaultDouble(String)
-	 */
-	public double getDefaultDouble(String name) {
-		return fStore.getDefaultDouble(name);
-	}
-
-	/*
-	 * @see IPreferenceStore#getDefaultFloat(String)
-	 */
-	public float getDefaultFloat(String name) {
-		return fStore.getDefaultFloat(name);
-	}
-
-	/*
-	 * @see IPreferenceStore#getDefaultInt(String)
-	 */
-	public int getDefaultInt(String name) {
-		return fStore.getDefaultInt(name);
-	}
-
-	/*
-	 * @see IPreferenceStore#getDefaultLong(String)
-	 */
-	public long getDefaultLong(String name) {
-		return fStore.getDefaultLong(name);
-	}
-
-	/*
-	 * @see IPreferenceStore#getDefaultString(String)
-	 */
-	public String getDefaultString(String name) {
-		return fStore.getDefaultString(name);
-	}
-
-	/*
-	 * @see IPreferenceStore#getDouble(String)
-	 */
-	public double getDouble(String name) {
-		return fStore.getDouble(name);
-	}
-
-	/*
-	 * @see IPreferenceStore#getFloat(String)
-	 */
-	public float getFloat(String name) {
-		return fStore.getFloat(name);
-	}
-
-	/*
-	 * @see IPreferenceStore#getInt(String)
-	 */
-	public int getInt(String name) {
-		return fStore.getInt(name);
-	}
-
-	/*
-	 * @see IPreferenceStore#getLong(String)
-	 */
-	public long getLong(String name) {
-		return fStore.getLong(name);
-	}
-
-	/*
-	 * @see IPreferenceStore#getString(String)
-	 */
-	public String getString(String name) {
-		return fStore.getString(name);
-	}
-
-	/*
-	 * @see IPreferenceStore#isDefault(String)
-	 */
-	public boolean isDefault(String name) {
-		return fStore.isDefault(name);
-	}
-
-	/*
-	 * @see IPreferenceStore#needsSaving()
-	 */
-	public boolean needsSaving() {
-		return fStore.needsSaving();
-	}
-
-	/*
-	 * @see IPreferenceStore#putValue(String, String)
-	 */
-	public void putValue(String name, String value) {
-		if (covers(name))
-			fStore.putValue(name, value);
-	}
-
-	/*
-	 * @see IPreferenceStore#setDefault(String, double)
-	 */
-	public void setDefault(String name, double value) {
-		if (covers(name))
-			fStore.setDefault(name, value);
-	}
-
-	/*
-	 * @see IPreferenceStore#setDefault(String, float)
-	 */
-	public void setDefault(String name, float value) {
-		if (covers(name))
-			fStore.setDefault(name, value);
-	}
-
-	/*
-	 * @see IPreferenceStore#setDefault(String, int)
-	 */
-	public void setDefault(String name, int value) {
-		if (covers(name))
-			fStore.setDefault(name, value);
-	}
-
-	/*
-	 * @see IPreferenceStore#setDefault(String, long)
-	 */
-	public void setDefault(String name, long value) {
-		if (covers(name))
-			fStore.setDefault(name, value);
-	}
-
-	/*
-	 * @see IPreferenceStore#setDefault(String, String)
-	 */
-	public void setDefault(String name, String value) {
-		if (covers(name))
-			fStore.setDefault(name, value);
-	}
-
-	/*
-	 * @see IPreferenceStore#setDefault(String, boolean)
-	 */
-	public void setDefault(String name, boolean value) {
-		if (covers(name))
-			fStore.setDefault(name, value);
-	}
-
-	/*
-	 * @see IPreferenceStore#setToDefault(String)
-	 */
-	public void setToDefault(String name) {
-		fStore.setToDefault(name);
-	}
-
-	/*
-	 * @see IPreferenceStore#setValue(String, double)
-	 */
-	public void setValue(String name, double value) {
-		if (covers(name))
-			fStore.setValue(name, value);
-	}
-
-	/*
-	 * @see IPreferenceStore#setValue(String, float)
-	 */
-	public void setValue(String name, float value) {
-		if (covers(name))
-			fStore.setValue(name, value);
-	}
-
-	/*
-	 * @see IPreferenceStore#setValue(String, int)
-	 */
-	public void setValue(String name, int value) {
-		if (covers(name))
-			fStore.setValue(name, value);
-	}
-
-	/*
-	 * @see IPreferenceStore#setValue(String, long)
-	 */
-	public void setValue(String name, long value) {
-		if (covers(name))
-			fStore.setValue(name, value);
-	}
-
-	/*
-	 * @see IPreferenceStore#setValue(String, String)
-	 */
-	public void setValue(String name, String value) {
-		if (covers(name))
-			fStore.setValue(name, value);
-	}
-
-	/*
-	 * @see IPreferenceStore#setValue(String, boolean)
-	 */
-	public void setValue(String name, boolean value) {
-		if (covers(name))
-			fStore.setValue(name, value);
-	}
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ReplaceWithEditionAction.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ReplaceWithEditionAction.java
deleted file mode 100644
index fdcc7bf..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ReplaceWithEditionAction.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-
-public class ReplaceWithEditionAction extends EditionAction {
-		
-	public ReplaceWithEditionAction() {
-		super(true, "org.eclipse.compare.internal.ReplaceWithEditionAction"); //$NON-NLS-1$
-		fHelpContextId= ICompareContextIds.REPLACE_WITH_EDITION_DIALOG;
-	}
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ReplaceWithEditionAction.properties b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ReplaceWithEditionAction.properties
deleted file mode 100644
index db582df..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ReplaceWithEditionAction.properties
+++ /dev/null
@@ -1,40 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-# @(#)ReplaceWithEditionAction.properties
-#
-# Resources for ReplaceWithEditionAction.java
-
-title= Replace from Local History
-
-treeTitleFormat= Local History of ''{0}''
-dateIcon= obj16/day_obj.gif
-timeIcon= obj16/resource_obj.gif
-
-treeFormat= {0}
-workspaceTreeFormat= {0} (Workspace File)
-parseErrorFormat= {0} (Parse Error)
-
-editionLabel= Local History ({0})
-workspaceEditionLabel= Workspace File
-
-targetLabel= {0}
-
-todayFormat= Today ({0})
-yesterdayFormat= Yesterday ({0})
-dayFormat= {0}
-
-buttonLabel= Replace
-
-noLocalHistoryError= No local history available for selected resource.
-replaceError=Can''t replace resource (reason: {0}).
-
-taskName=Replacing
\ No newline at end of file
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ReplaceWithPreviousEditionAction.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ReplaceWithPreviousEditionAction.java
deleted file mode 100644
index 3fa6b07..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ReplaceWithPreviousEditionAction.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-
-public class ReplaceWithPreviousEditionAction extends EditionAction {
-		
-	public ReplaceWithPreviousEditionAction() {
-		super(true,
-			"org.eclipse.compare.internal.ReplaceWithEditionAction");	//$NON-NLS-1$
-		fPrevious= true;
-	}
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ResizableDialog.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ResizableDialog.java
deleted file mode 100644
index 423ba97..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ResizableDialog.java
+++ /dev/null
@@ -1,161 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import java.util.ResourceBundle;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.help.WorkbenchHelp;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.dialogs.DialogSettings;
-
-
-/**
- * Base class for resizable Dialogs with persistent window bounds.
- */
-public abstract class ResizableDialog extends Dialog {
-
-	// dialog store id constants
-	private final static String DIALOG_BOUNDS_KEY= "ResizableDialogBounds"; //$NON-NLS-1$
-	private static final String X= "x"; //$NON-NLS-1$
-	private static final String Y= "y"; //$NON-NLS-1$
-	private static final String WIDTH= "width"; //$NON-NLS-1$
-	private static final String HEIGHT= "height"; //$NON-NLS-1$
-	
-	protected ResourceBundle fBundle;
-	private Rectangle fNewBounds;
-	private IDialogSettings fSettings;
-	private String fContextId;
-
-
-	public ResizableDialog(Shell parent, ResourceBundle bundle) {
-		super(parent);
-		setShellStyle(getShellStyle() | SWT.RESIZE | SWT.MAX);
-		
-		fBundle= bundle;
-		
-		fSettings= CompareUIPlugin.getDefault().getDialogSettings();
-	}
-	
-	public void setHelpContextId(String contextId) {
-		fContextId= contextId;
-	}
-
-	/*
-	 * @see org.eclipse.jface.window.Window#configureShell(Shell)
-	 */
-	protected void configureShell(Shell newShell) {
-		super.configureShell(newShell);
-		if (fContextId != null)
-			WorkbenchHelp.setHelp(newShell, fContextId);
-	}
-	
-	protected Point getInitialSize() {
-		
-		int width= 0;
-		int height= 0;
-		
-		final Shell s= getShell();
-		if (s != null) {
-			s.addControlListener(
-				new ControlListener() {
-					public void controlMoved(ControlEvent arg0) {
-						fNewBounds= s.getBounds();
-					}
-					public void controlResized(ControlEvent arg0) {
-						fNewBounds= s.getBounds();
-					}
-				}
-			);
-		}
-		
-		IDialogSettings bounds= fSettings.getSection(DIALOG_BOUNDS_KEY); //$NON-NLS-1$
-		if (bounds == null) {
-			if (fBundle != null) {
-				width= Utilities.getInteger(fBundle, WIDTH, 0);
-				height= Utilities.getInteger(fBundle, HEIGHT, 0);
-				Shell shell= getParentShell();
-				if (shell != null) {
-					Point parentSize= shell.getSize();
-					if (width <= 0)
-						width= parentSize.x-300;
-					if (height <= 0)
-						height= parentSize.y-200;
-				}
-			} else {
-				Shell shell= getParentShell();
-				if (shell != null) {
-					Point parentSize= shell.getSize();
-					width= parentSize.x-100;
-					height= parentSize.y-100;
-				}
-			}
-			if (width < 700)
-				width= 700;
-			if (height < 500)
-				height= 500;
-		} else {
-			try {
-				width= bounds.getInt(WIDTH);
-			} catch (NumberFormatException e) {
-				width= 700;
-			}
-			try {
-				height= bounds.getInt(HEIGHT);
-			} catch (NumberFormatException e) {
-				height= 500;
-			}
-		}	
-	
-		return new Point(width, height);
-	}
-	
-	protected Point getInitialLocation(Point initialSize) {
-		Point loc= super.getInitialLocation(initialSize);
-		
-		IDialogSettings bounds= fSettings.getSection(DIALOG_BOUNDS_KEY);
-		if (bounds != null) {
-			try {
-				loc.x= bounds.getInt(X);
-			} catch (NumberFormatException e) {
-			}
-			try {
-				loc.y= bounds.getInt(Y);
-			} catch (NumberFormatException e) {
-			}
-		}
-		return loc;
-	}
-	
-	public boolean close() {
-		boolean closed= super.close();
-		if (closed && fNewBounds != null)
-			saveBounds(fNewBounds);
-		return closed;
-	}
-
-	private void saveBounds(Rectangle bounds) {
-		IDialogSettings dialogBounds= fSettings.getSection(DIALOG_BOUNDS_KEY);
-		if (dialogBounds == null) {
-			dialogBounds= new DialogSettings(DIALOG_BOUNDS_KEY);
-			fSettings.addSection(dialogBounds);
-		}
-		dialogBounds.put(X, bounds.x);
-		dialogBounds.put(Y, bounds.y);
-		dialogBounds.put(WIDTH, bounds.width);
-		dialogBounds.put(HEIGHT, bounds.height);
-	}
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ResourceCompareInput.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ResourceCompareInput.java
deleted file mode 100644
index 042aac1..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ResourceCompareInput.java
+++ /dev/null
@@ -1,367 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import java.text.MessageFormat;
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.swt.widgets.Composite;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.Viewer;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.*;
-
-import org.eclipse.compare.*;
-import org.eclipse.compare.structuremergeviewer.*;
-
-
-/**
- * A two-way or three-way compare for arbitrary IResources.
- */
-class ResourceCompareInput extends CompareEditorInput {
-	
-	private static final boolean NORMALIZE_CASE= true;
-	
-	private boolean fThreeWay= false;
-	private Object fRoot;
-	private IStructureComparator fAncestor;
-	private IStructureComparator fLeft;
-	private IStructureComparator fRight;
-	private IResource fAncestorResource;
-	private IResource fLeftResource;
-	private IResource fRightResource;
-	private DiffTreeViewer fDiffViewer;
-	private IAction fOpenAction;
-	
-	class MyDiffNode extends DiffNode {
-		
-		private boolean fDirty= false;
-		private ITypedElement fLastId;
-		private String fLastName;
-		
-		
-		public MyDiffNode(IDiffContainer parent, int description, ITypedElement ancestor, ITypedElement left, ITypedElement right) {
-			super(parent, description, ancestor, left, right);
-		}
-		public void fireChange() {
-			super.fireChange();
-			setDirty(true);
-			fDirty= true;
-			if (fDiffViewer != null)
-				fDiffViewer.refresh(this);
-		}
-		void clearDirty() {
-			fDirty= false;
-		}
-		public String getName() {
-			if (fLastName == null)
-				fLastName= super.getName();
-			if (fDirty)
-				return '<' + fLastName + '>';
-			return fLastName;
-		}
-		
-		public ITypedElement getId() {
-			ITypedElement id= super.getId();
-			if (id == null)
-				return fLastId;
-			fLastId= id;
-			return id;
-		}
-	}
-	
-	/**
-	 * Creates an compare editor input for the given selection.
-	 */
-	ResourceCompareInput(CompareConfiguration config) {
-		super(config);
-	}
-			
-	public Viewer createDiffViewer(Composite parent) {
-		fDiffViewer= new DiffTreeViewer(parent, getCompareConfiguration()) {
-			protected void fillContextMenu(IMenuManager manager) {
-				
-				if (fOpenAction == null) {
-					fOpenAction= new Action() {
-						public void run() {
-							handleOpen(null);
-						}
-					};
-					Utilities.initAction(fOpenAction, getBundle(), "action.CompareContents."); //$NON-NLS-1$
-				}
-				
-				boolean enable= false;
-				ISelection selection= getSelection();
-				if (selection instanceof IStructuredSelection) {
-					IStructuredSelection ss= (IStructuredSelection)selection;
-					if (ss.size() == 1) {
-						Object element= ss.getFirstElement();
-						if (element instanceof MyDiffNode) {
-							ITypedElement te= ((MyDiffNode) element).getId();
-							if (te != null)
-								enable= !ITypedElement.FOLDER_TYPE.equals(te.getType());
-						} else
-							enable= true;
-					}
-				}
-				fOpenAction.setEnabled(enable);
-				
-				manager.add(fOpenAction);
-				
-				super.fillContextMenu(manager);
-			}
-		};
-		return fDiffViewer;
-	}
-
-	void setSelection(ISelection s) {
-		
-		IResource[] selection= Utilities.getResources(s);
-
-		fThreeWay= selection.length == 3;
-		
-		fAncestorResource= null;
-		fLeftResource= selection[0];
-		fRightResource= selection[1];
-		if (fThreeWay) {
-			fLeftResource= selection[1];		
-			fRightResource= selection[2];
-		}
-		
-		fAncestor= null;
-		fLeft= getStructure(fLeftResource);
-		fRight= getStructure(fRightResource);
-					
-		if (fThreeWay) {
-			fAncestorResource= selection[0];
-			fAncestor= getStructure(fAncestorResource);
-		}
-	}
-	
-	/**
-	 * Returns true if compare can be executed for the given selection.
-	 */
-	public boolean isEnabled(ISelection s) {
-		
-		IResource[] selection= Utilities.getResources(s);
-		if (selection.length < 2 || selection.length > 3)
-			return false;
-
-		fThreeWay= selection.length == 3;
-		
-		fLeftResource= selection[0];
-		fRightResource= selection[1];
-		if (fThreeWay) {
-			fLeftResource= selection[1];		
-			fRightResource= selection[2];
-		}
-							
-		if (!comparable(fLeftResource, fRightResource))
-			return false;
-
-		if (fThreeWay) {
-			fAncestorResource= selection[0];
-			
-			if (!comparable(fLeftResource, fRightResource))
-				return false;
-		}
-
-		return true;
-	}
-	
-	/**
-	 * Initializes the images in the compare configuration.
-	 */
-	void initializeCompareConfiguration() {
-		CompareConfiguration cc= getCompareConfiguration();
-		if (fLeftResource != null) {
-			cc.setLeftLabel(buildLabel(fLeftResource));
-			cc.setLeftImage(CompareUIPlugin.getImage(fLeftResource));
-		}
-		if (fRightResource != null) {
-			cc.setRightLabel(buildLabel(fRightResource));
-			cc.setRightImage(CompareUIPlugin.getImage(fRightResource));
-		}
-		if (fThreeWay && fAncestorResource != null) {			
-			cc.setAncestorLabel(buildLabel(fAncestorResource));
-			cc.setAncestorImage(CompareUIPlugin.getImage(fAncestorResource));
-		}
-	}
-	
-	/**
-	 * Returns true if both resources are either structured or unstructured.
-	 */
-	private boolean comparable(IResource c1, IResource c2) {
-		return hasStructure(c1) == hasStructure(c2);
-	}
-	
-	/**
-	 * Returns true if the given argument has a structure.
-	 */
-	private boolean hasStructure(IResource input) {
-		
-		if (input instanceof IContainer)
-			return true;
-			
-		if (input instanceof IFile) {
-			IFile file= (IFile) input;
-			String type= file.getFileExtension();
-			if (type != null) {
-				type= normalizeCase(type);
-				return "JAR".equals(type) || "ZIP".equals(type);	//$NON-NLS-2$ //$NON-NLS-1$
-			}
-		}
-		
-		return false;
-	}
-	
-	/**
-	 * Creates a <code>IStructureComparator</code> for the given input.
-	 * Returns <code>null</code> if no <code>IStructureComparator</code>
-	 * can be found for the <code>IResource</code>.
-	 */
-	private IStructureComparator getStructure(IResource input) {
-		
-		if (input instanceof IContainer)
-			return new BufferedResourceNode(input);
-			
-		if (input instanceof IFile) {
-			IStructureComparator rn= new BufferedResourceNode(input);
-			IFile file= (IFile) input;
-			String type= normalizeCase(file.getFileExtension());
-			if ("JAR".equals(type) || "ZIP".equals(type)) //$NON-NLS-2$ //$NON-NLS-1$
-				return new ZipFileStructureCreator().getStructure(rn);
-			return rn;
-		}
-		return null;
-	}
-	
-	/**
-	 * Performs a two-way or three-way diff on the current selection.
-	 */
-	public Object prepareInput(IProgressMonitor pm) throws InvocationTargetException {
-				
-		try {
-			// fix for PR 1GFMLFB: ITPUI:WIN2000 - files that are out of sync with the file system appear as empty							
-			fLeftResource.refreshLocal(IResource.DEPTH_INFINITE, pm);
-			fRightResource.refreshLocal(IResource.DEPTH_INFINITE, pm);
-			if (fThreeWay && fAncestorResource != null)
-				fAncestorResource.refreshLocal(IResource.DEPTH_INFINITE, pm);
-			// end fix						
-				
-			pm.beginTask(Utilities.getString("ResourceCompare.taskName"), IProgressMonitor.UNKNOWN); //$NON-NLS-1$
-
-			String leftLabel= fLeftResource.getName();
-			String rightLabel= fRightResource.getName();
-			
-			String title;
-			if (fThreeWay) {			
-				String format= Utilities.getString("ResourceCompare.threeWay.title"); //$NON-NLS-1$
-				String ancestorLabel= fAncestorResource.getName();
-				title= MessageFormat.format(format, new String[] {ancestorLabel, leftLabel, rightLabel});	
-			} else {
-				String format= Utilities.getString("ResourceCompare.twoWay.title"); //$NON-NLS-1$
-				title= MessageFormat.format(format, new String[] {leftLabel, rightLabel});
-			}
-			setTitle(title);
-			
-			Differencer d= new Differencer() {
-				protected Object visit(Object parent, int description, Object ancestor, Object left, Object right) {
-					return new MyDiffNode((IDiffContainer) parent, description, (ITypedElement)ancestor, (ITypedElement)left, (ITypedElement)right);
-				}
-			};
-			
-			fRoot= d.findDifferences(fThreeWay, pm, null, fAncestor, fLeft, fRight);
-			return fRoot;
-			
-		} catch (CoreException ex) {
-			throw new InvocationTargetException(ex);
-		} finally {
-			pm.done();
-		}
-	}
-	
-	public String getToolTipText() {
-		if (fLeftResource != null && fRightResource != null) {
-			String leftLabel= fLeftResource.getFullPath().makeRelative().toString();
-			String rightLabel= fRightResource.getFullPath().makeRelative().toString();			
-			if (fThreeWay) {			
-				String format= Utilities.getString("ResourceCompare.threeWay.tooltip"); //$NON-NLS-1$
-				String ancestorLabel= fAncestorResource.getFullPath().makeRelative().toString();
-				return MessageFormat.format(format, new String[] {ancestorLabel, leftLabel, rightLabel});
-			} else {
-				String format= Utilities.getString("ResourceCompare.twoWay.tooltip"); //$NON-NLS-1$
-				return MessageFormat.format(format, new String[] {leftLabel, rightLabel});
-			}
-		}
-		// fall back
-		return super.getToolTipText();
-	}
-	
-	private String buildLabel(IResource r) {
-		String n= r.getFullPath().toString();
-		if (n.charAt(0) == IPath.SEPARATOR)
-			return n.substring(1);
-		return n;
-	}
-	
-	public void saveChanges(IProgressMonitor pm) throws CoreException {
-		super.saveChanges(pm);
-		if (fRoot instanceof DiffNode) {
-			try {
-				commit(pm, (DiffNode) fRoot);
-			} finally {
-				if (fDiffViewer != null)
-					fDiffViewer.refresh();				
-				setDirty(false);
-			}
-		}
-	}
-	
-	/*
-	 * Recursively walks the diff tree and commits all changes.
-	 */
-	private static void commit(IProgressMonitor pm, DiffNode node) throws CoreException {
-		
-		if (node instanceof MyDiffNode)		
-			((MyDiffNode)node).clearDirty();
-		
-		ITypedElement left= node.getLeft();
-		if (left instanceof BufferedResourceNode)
-			((BufferedResourceNode) left).commit(pm);
-			
-		ITypedElement right= node.getRight();
-		if (right instanceof BufferedResourceNode)
-			((BufferedResourceNode) right).commit(pm);
-
-		IDiffElement[] children= node.getChildren();
-		if (children != null) {
-			for (int i= 0; i < children.length; i++) {
-				IDiffElement element= children[i];
-				if (element instanceof DiffNode)
-					commit(pm, (DiffNode) element);
-			}
-		}
-	}
-	
-	private static String normalizeCase(String s) {
-		if (NORMALIZE_CASE && s != null)
-			return s.toUpperCase();
-		return s;
-	}
-}
-
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ShowPseudoConflicts.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ShowPseudoConflicts.java
deleted file mode 100644
index 5815270..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ShowPseudoConflicts.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import java.util.ResourceBundle;
-
-import org.eclipse.compare.*;
-
-/**
- * Toggles the <code>ICompareConfiguration.SHOW_PSEUDO_CONFLICTS</code> property of an
- * <code>ICompareConfiguration</code>.
- */
-public class ShowPseudoConflicts extends ChangePropertyAction {
-
-	public ShowPseudoConflicts(ResourceBundle bundle, CompareConfiguration cc) {
-		super(bundle, cc, "action.ShowPseudoConflicts.", CompareConfiguration.SHOW_PSEUDO_CONFLICTS); //$NON-NLS-1$
-	}
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/SimpleTextViewer.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/SimpleTextViewer.java
deleted file mode 100644
index 1346348..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/SimpleTextViewer.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-
-import org.eclipse.jface.text.source.SourceViewer;
-import org.eclipse.jface.text.Document;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.compare.*;
-import org.eclipse.compare.structuremergeviewer.ICompareInput;
-
-
-public class SimpleTextViewer extends AbstractViewer {
-		
-	private SourceViewer fSourceViewer;
-	private ICompareInput fInput;
-	
-	
-	SimpleTextViewer(Composite parent) {
-		fSourceViewer= new SourceViewer(parent, null, SWT.H_SCROLL + SWT.V_SCROLL);
-		fSourceViewer.setEditable(false);
-	}
-		
-	public Control getControl() {
-		return fSourceViewer.getTextWidget();
-	}
-	
-	public void setInput(Object input) {
-		if (input instanceof IStreamContentAccessor) {
-			fSourceViewer.setDocument(new Document(getString(input)));
-		} else if (input instanceof ICompareInput) {
-			fInput= (ICompareInput) input;
-			ITypedElement left= ((ICompareInput) fInput).getLeft();
-			fSourceViewer.setDocument(new Document(getString(left)));
-		}
-	}
-	
-	public Object getInput() {
-		return fInput;
-	}
-	
-	private String getString(Object input) {
-		
-		if (input instanceof IStreamContentAccessor) {
-			IStreamContentAccessor sca= (IStreamContentAccessor) input;
-			try {
-				return Utilities.readString(sca.getContents());
-			} catch (CoreException ex) {
-			}
-		}
-		return ""; //$NON-NLS-1$
-	}
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/TabFolderLayout.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/TabFolderLayout.java
deleted file mode 100644
index 739b82f..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/TabFolderLayout.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Layout;
-
-public class TabFolderLayout extends Layout {
-
-	protected Point computeSize (Composite composite, int wHint, int hHint, boolean flushCache) {
-		if (wHint != SWT.DEFAULT && hHint != SWT.DEFAULT)
-			return new Point(wHint, hHint);
-			
-		Control [] children = composite.getChildren ();
-		int count = children.length;
-		int maxWidth = 0, maxHeight = 0;
-		for (int i=0; i<count; i++) {
-			Control child = children [i];
-			Point pt = child.computeSize (SWT.DEFAULT, SWT.DEFAULT, flushCache);
-			maxWidth = Math.max (maxWidth, pt.x);
-			maxHeight = Math.max (maxHeight, pt.y);
-		}
-		
-		if (wHint != SWT.DEFAULT)
-			maxWidth= wHint;
-		if (hHint != SWT.DEFAULT)
-			maxHeight= hHint;
-		
-		return new Point(maxWidth, maxHeight);	
-		
-	}
-	
-	protected void layout (Composite composite, boolean flushCache) {
-		Rectangle rect= composite.getClientArea();
-	
-		Control[] children = composite.getChildren();
-		for (int i = 0; i < children.length; i++) {
-			children[i].setBounds(rect);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/TextMergeViewerCreator.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/TextMergeViewerCreator.java
deleted file mode 100644
index 1a5d1d8..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/TextMergeViewerCreator.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import org.eclipse.swt.widgets.Composite;
-
-import org.eclipse.jface.viewers.Viewer;
-
-import org.eclipse.compare.*;
-import org.eclipse.compare.contentmergeviewer.TextMergeViewer;
-
-/**
- * A factory object for the <code>TextMergeViewer</code>.
- * This indirection is necessary because only objects with a default
- * constructor can be created via an extension point
- * (this precludes Viewers).
- */
-public class TextMergeViewerCreator implements IViewerCreator {
-
-	public Viewer createViewer(Composite parent, CompareConfiguration mp) {
-		return new TextMergeViewer(parent, mp);
-	}
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/TextViewerCreator.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/TextViewerCreator.java
deleted file mode 100644
index 66eaba9..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/TextViewerCreator.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import org.eclipse.swt.widgets.Composite;
-
-import org.eclipse.jface.viewers.Viewer;
-
-import org.eclipse.compare.CompareConfiguration;
-import org.eclipse.compare.IViewerCreator;
-
-
-/**
- * A factory object for the <code>TextMergeViewer</code>.
- * This indirection is necessary because only objects with a default
- * constructor can be created via an extension point
- * (this precludes Viewers).
- */
-public class TextViewerCreator implements IViewerCreator {
-
-	public Viewer createViewer(Composite parent, CompareConfiguration mp) {
-		return new SimpleTextViewer(parent);
-	}
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/TimeoutContext.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/TimeoutContext.java
deleted file mode 100644
index efbfa3c..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/TimeoutContext.java
+++ /dev/null
@@ -1,384 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-
-import org.eclipse.jface.dialogs.*;
-import org.eclipse.jface.operation.*;
-import org.eclipse.jface.resource.JFaceResources;
-
-import org.eclipse.core.runtime.*;
-
-/**
- * A modal dialog that displays progress during a long running operation.
- */
-public class TimeoutContext {
-
-	private static class ModalContextThread extends Thread {
-		
-		private boolean fWorking;
-		private IRunnableWithProgress fRunnable;
-		private Throwable fThrowable;
-		private IProgressMonitor fProgressMonitor;
-		private boolean fContinueEventDispatching= true;
-		private Display fDisplay;
-
-		private ModalContextThread(IRunnableWithProgress operation, IProgressMonitor monitor) {
-			super("TimeoutContext"); //$NON-NLS-1$
-			fRunnable= operation;
-			fProgressMonitor= monitor;
-		}
-		
-		synchronized boolean timeout(Display display) {
-			fDisplay= display;
-			return fWorking;
-		}
-		
-		public void run() {
-			try {
-				fWorking= true;
-				if (fRunnable != null)
-					fRunnable.run(fProgressMonitor);
-			} catch (InvocationTargetException e) {
-				fThrowable= e;
-			} catch (InterruptedException e) {
-				fThrowable= e;
-			} catch (RuntimeException e) {
-				fThrowable= e;
-			} catch (ThreadDeath e) {
-				// Make sure to propagate ThreadDeath, or threads will never fully terminate
-				throw e;
-			} catch (Error e) {
-				fThrowable= e;
-			} finally {
-				fWorking= false;
-	
-				if (fDisplay != null) {
-					// Make sure that all events in the asynchronous event queue
-					// are dispatched.
-					fDisplay.syncExec(
-						new Runnable() {
-							public void run() {
-								// do nothing
-							}
-						}
-					);
-					
-					// Stop event dispatching
-					fContinueEventDispatching= false;
-					
-					// Force the event loop to return from sleep () so that
-					// it stops event dispatching.
-					fDisplay.asyncExec(null);
-				}
-			}	
-		}
-		
-		public void block() {
-			while (fContinueEventDispatching)
-				if (!fDisplay.readAndDispatch())
-					fDisplay.sleep();
-		}		
-	}
-	
-	static class ProgressMonitorDialog extends org.eclipse.jface.dialogs.Dialog {
-
-		protected ProgressIndicator fProgressIndicator;
-		protected Label fTaskLabel;
-		protected Label fSubTaskLabel;
-		protected Button fCancel;
-		protected boolean fEnableCancelButton;
-		private ProgressMonitor fProgressMonitor;
-		private Cursor fArrowCursor;
-		private Cursor fWaitCursor;
-		private Shell fParentShell;
-		
-		private ProgressMonitorDialog(Shell parent, boolean cancelable, ProgressMonitor pm) {
-			super(parent);
-			fProgressMonitor= pm;
-			fParentShell= parent;
-			fEnableCancelButton= cancelable;
-			this.setBlockOnOpen(false);
-			setShellStyle(SWT.BORDER | SWT.TITLE | SWT.APPLICATION_MODAL); // no close button
-		}
-		
-		public boolean close() {
-			if (fCancel != null && !fCancel.isDisposed())
-				fCancel.setCursor(null);
-			Shell shell= getShell();
-			if (shell != null && !shell.isDisposed())
-				shell.setCursor(null);
-			if (fArrowCursor != null)
-				fArrowCursor.dispose();
-			if (fWaitCursor != null)
-				fWaitCursor.dispose();
-			fArrowCursor= null;
-			fWaitCursor= null;
-			return super.close();
-		}
-		
-		protected void configureShell(Shell shell) {
-			super.configureShell(shell);
-			shell.setText(JFaceResources.getString("ProgressMonitorDialog.title")); //$NON-NLS-1$
-			if (fWaitCursor == null)
-				fWaitCursor= new Cursor(shell.getDisplay(),SWT.CURSOR_WAIT);
-			shell.setCursor(fWaitCursor);
-		}
-		
-		protected void createButtonsForButtonBar(Composite parent) {
-			// cancel button		
-			fCancel= createButton(parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, true);
-			if(fArrowCursor == null)
-				fArrowCursor= new Cursor(fCancel.getDisplay(),SWT.CURSOR_ARROW);		
-			fCancel.setCursor(fArrowCursor);
-			fCancel.addListener(SWT.Selection,
-				new Listener() {
-					public void handleEvent(Event e) {
-						if (fCancel != null && !fCancel.isDisposed())
-							fCancel.setEnabled(false);
-						fProgressMonitor.setCanceled(true);
-					}
-				}
-			);
-			fCancel.setEnabled(fEnableCancelButton);
-		}
-		
-		protected Control createDialogArea(Composite parent) {
-		
-			Composite c= (Composite)super.createDialogArea(parent);
-			((GridLayout)c.getLayout()).numColumns= 2;
-	
-			// icon
-			Label iconLabel= new Label(c, SWT.LEFT);
-			GridData gd= new GridData();
-			iconLabel.setLayoutData(gd);
-			iconLabel.setFont(parent.getFont());
-			Image i= JFaceResources.getImageRegistry().get(org.eclipse.jface.dialogs.Dialog.DLG_IMG_INFO);
-			if (i != null)
-				iconLabel.setImage(i);
-			else
-				iconLabel.setText(JFaceResources.getString("Image_not_found")); //$NON-NLS-1$
-	
-			// label on right hand side of icon
-			fTaskLabel= new Label(c, SWT.LEFT | SWT.WRAP);
-			fTaskLabel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-			fTaskLabel.setFont(parent.getFont());
-	
-			// progress indicator
-			fProgressIndicator= new ProgressIndicator(c);
-			gd= new GridData();
-			gd.heightHint= 15;
-			gd.horizontalAlignment= GridData.FILL;
-			gd.grabExcessHorizontalSpace= true;
-			gd.horizontalSpan= 2;
-			fProgressIndicator.setLayoutData(gd);
-	
-			// label showing current task
-			fSubTaskLabel= new Label(c, SWT.LEFT | SWT.WRAP);
-			gd= new GridData(GridData.FILL_HORIZONTAL);
-			gd.heightHint= 35;	
-			gd.horizontalSpan= 2;
-			fSubTaskLabel.setLayoutData(gd);
-			fSubTaskLabel.setFont(parent.getFont());
-						
-			// update with values fProgressMonitor
-			String s= fProgressMonitor.fTask;
-			if (s == null)
-				s= ""; //$NON-NLS-1$
-			fTaskLabel.setText(s);
-			
-			if (fProgressMonitor.fMaxWork == IProgressMonitor.UNKNOWN)
-				fProgressIndicator.beginAnimatedTask();
-			else
-				fProgressIndicator.beginTask(fProgressMonitor.fMaxWork);
-
-			if (fProgressMonitor.fSubTask != null)
-				fSubTaskLabel.setText(fProgressMonitor.fSubTask);
-			fProgressIndicator.worked(fProgressMonitor.fWorked);
-	
-			fProgressMonitor.activate(this);
-			applyDialogFont(c);
-			return c;
-		}
-		
-		void beginTask(final String name, final int totalWork) {
-			fParentShell.getDisplay().syncExec(
-				new Runnable() {
-					public void run() {
-						fTaskLabel.setText(name);
-						
-						if (fProgressIndicator != null && fProgressIndicator.isDisposed()) {
-							if (totalWork == IProgressMonitor.UNKNOWN)
-								fProgressIndicator.beginAnimatedTask();
-							else
-								fProgressIndicator.beginTask(totalWork);
-						}
-					}
-				}
-			);
-		}
-		
-		void setTaskName(final String name) {
-			fParentShell.getDisplay().syncExec(
-				new Runnable() {
-					public void run() {
-						if (fTaskLabel != null && fTaskLabel.isDisposed())
-							fTaskLabel.setText(name);
-					}
-				}
-			);
-		}
-
-		void setSubTaskName(final String name) {
-			fParentShell.getDisplay().syncExec(
-				new Runnable() {
-					public void run() {
-						String n= (name == null) ? "" : name;	//$NON-NLS-1$
-						if (fSubTaskLabel != null && !fSubTaskLabel.isDisposed())
-							fSubTaskLabel.setText(n);
-					}
-				}
-			);	
-		}
-		
-		void done() {
-			fParentShell.getDisplay().syncExec(
-				new Runnable() {
-					public void run() {
-						if (fProgressIndicator != null && !fProgressIndicator.isDisposed()) {
-							fProgressIndicator.sendRemainingWork();
-							fProgressIndicator.done();
-						}
-					}
-				}
-			);
-		}
-		
-		void worked(final double work) {
-			fParentShell.getDisplay().syncExec(
-				new Runnable() {
-					public void run() {
-						if (fProgressIndicator != null && !fProgressIndicator.isDisposed())
-							fProgressIndicator.worked(work);
-					}
-				}
-			);
-		}
-
-		protected Point getInitialSize() {
-			return getShell().computeSize(450, SWT.DEFAULT);
-		}
-	}
-
-	private static class ProgressMonitor implements IProgressMonitor {
-		
-		private int fMaxWork;
-		private String fTask;
-		private String fSubTask;
-		private int fWorked;
-		private ProgressMonitorDialog fProgressMonitorDialog;
-		private boolean fIsCanceled;
-		
-		public void beginTask(String name, int totalWork) {
-			
-			fTask= name;
-			fMaxWork= totalWork;
-			fWorked= 0;
-			
-			if (fProgressMonitorDialog != null)	
-				fProgressMonitorDialog.beginTask(name, totalWork);			
-		}
-		
-		void activate(ProgressMonitorDialog dialog) {
-			fProgressMonitorDialog= dialog;
-		}
-		
-		public void done() {
-			if (fProgressMonitorDialog != null)				
-				fProgressMonitorDialog.done();
-		}
-		
-		public void setTaskName(String name) {
-			fTask= name;
-			if (fProgressMonitorDialog != null)				
-				fProgressMonitorDialog.setTaskName(name);
-		}
-				
-		public boolean isCanceled() {
-			return fIsCanceled;
-		}
-		
-		public void setCanceled(boolean b) {
-			fIsCanceled= b;
-		}
-		
-		public void subTask(String name) {
-			fSubTask= name;
-			if (fProgressMonitorDialog != null)				
-				fProgressMonitorDialog.setSubTaskName(name);
-		}
-		
-		public void worked(int work) {
-			if (fProgressMonitorDialog != null)
-				internalWorked(work);
-			else
-				fWorked+= work;
-		}
-		
-		public void internalWorked(double work) {
-			if (fProgressMonitorDialog != null)				
-				fProgressMonitorDialog.worked(work);
-		}
-	}
-	
-	public static void run(boolean cancelable, int timeout, Shell parent, IRunnableWithProgress runnable) throws InvocationTargetException, InterruptedException {
-		
-		Display display= parent.getDisplay();
-		
-		ProgressMonitor pm= new ProgressMonitor();
-				
-		ModalContextThread t= new ModalContextThread(runnable, pm);
-		t.start();	// start the long running operation
-		
-		// wait until long operations terminates or timeout
-		try {
-			t.join(timeout);
-		} catch (InterruptedException e) {
-		}
-		
-		if (t.timeout(display)) {	// timeout
-			ProgressMonitorDialog dialog= new ProgressMonitorDialog(parent, cancelable, pm);
-			dialog.open();
-			t.block();
-			dialog.close();
-		}
-		
-		Throwable throwable= t.fThrowable;
-		if (throwable != null) {
-			if (throwable instanceof InvocationTargetException) {
-				throw (InvocationTargetException) throwable;
-			} else if (throwable instanceof InterruptedException) {
-				throw (InterruptedException) throwable;
-			} else if (throwable instanceof OperationCanceledException) {
-				throw new InterruptedException(throwable.getMessage());
-			} else {
-				throw new InvocationTargetException(throwable);
-			}	
-		}
-	}
-}
-
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/TokenComparator.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/TokenComparator.java
deleted file mode 100644
index e1aca48..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/TokenComparator.java
+++ /dev/null
@@ -1,176 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import org.eclipse.jface.util.Assert;
-
-import org.eclipse.compare.rangedifferencer.IRangeComparator;
-import org.eclipse.compare.contentmergeviewer.ITokenComparator;
-
-/**
- * Implements the <code>ITokenComparator</code> interface for words (or tokens)
- * in a string.
- * A <code>TokenComparator</code> is used as the input for the <code>RangeDifferencer</code>
- * engine to perform a token oriented compare on strings.
- */
-public class TokenComparator implements ITokenComparator {
-
-	private boolean fShouldEscape= true;
-	private String fText;
-	private int fCount;
-	private int[] fStarts;
-	private int[] fLengths;
-
-	/**
-	 * Creates a <code>TokenComparator</code> for the given string.
-	 *
-	 * @param string the string that is split into token
-	 */
-	public TokenComparator(String text) {
-		
-		Assert.isNotNull(text);
-
-		fText= text;
-		
-		int length= fText.length();
-		fStarts= new int[length];	// pessimistic assumption!
-		fLengths= new int[length];
-		fCount= 0;
-		
-		char lastCategory= 0;	// 0: no category
-		for (int i= 0; i < length; i++) {
-			char c= fText.charAt(i);
-			
-			char category= '?';	// unspecified category
-			if (Character.isWhitespace(c))
-				category= ' ';	// white space category
-			else if (Character.isDigit(c))
-				category= '0';	// digits
-			else if (Character.isLetter(c))
-				category= 'a';	// letters
-			
-			if (category != lastCategory) {
-				// start a new token
-				fStarts[fCount++]= i;
-				lastCategory= category;
-			}
-			fLengths[fCount-1]++;
-		}
-	}
-	
-	/**
-	 * Creates a <code>TokenComparator</code> for the given string.
-	 *
-	 * @param string the string that is split into token
-	 * @param shouldEscape
-	 */
-	public TokenComparator(String s, boolean shouldEscape) {
-		this(s);
-		fShouldEscape= shouldEscape;
-	}
-
-	/**
-	 * Returns the number of token in the string.
-	 *
-	 * @return number of token in the string
-	 */
-	public int getRangeCount() {
-		return fCount;
-	}
-
-	/* (non Javadoc)
-	 * see ITokenComparator.getTokenStart
-	 */
-	public int getTokenStart(int index) {
-		if (index < fCount)
-			return fStarts[index];
-		return fText.length();
-	}
-
-	/* (non Javadoc)
-	 * see ITokenComparator.getTokenLength
-	 */
-	public int getTokenLength(int index) {
-		if (index < fCount)
-			return fLengths[index];
-		return 0;
-	}
-		
-	/**
-	 * Returns <code>true</code> if a token given by the first index
-	 * matches a token specified by the other <code>IRangeComparator</code> and index.
-	 *
-	 * @param thisIndex	the number of the token within this range comparator
-	 * @param other the range comparator to compare this with
-	 * @param otherIndex the number of the token within the other comparator
-	 * @return <code>true</code> if the token are equal
-	 */
-	public boolean rangesEqual(int thisIndex, IRangeComparator other, int otherIndex) {
-		if (other != null && getClass() == other.getClass()) {
-			TokenComparator tc= (TokenComparator) other;
-			int thisLen= getTokenLength(thisIndex);
-			int otherLen= tc.getTokenLength(otherIndex);
-			if (thisLen == otherLen)
-				return fText.regionMatches(false, getTokenStart(thisIndex), tc.fText, tc.getTokenStart(otherIndex), thisLen);
-		}
-		return false;
-	}
-
-	/**
-	 * Aborts the comparison if the number of tokens is too large.
-	 *
-	 * @return <code>true</code> to abort a token comparison
-	 */
-	public boolean skipRangeComparison(int length, int max, IRangeComparator other) {
-
-		if (!fShouldEscape)
-			return false;
-
-		if (getRangeCount() < 50 || other.getRangeCount() < 50)
-			return false;
-
-		if (max < 100)
-			return false;
-
-		if (length < 100)
-			return false;
-
-		if (max > 800)
-			return true;
-
-		if (length < max / 4)
-			return false;
-
-		return true;
-	}
-		
-//	public static void main(String args[]) {
-//		//String in= "private static boolean isWhitespace(char c) {";
-//		//String in= "for (int j= 0; j < l-1; j++) {";
-//		String in= "for do    i= 123; i++";
-//		TokenComparator tc= new TokenComparator(in, false);
-//		
-//		System.out.println("n: " + tc.getRangeCount());
-//		System.out.println(in);
-//		
-//		int p= 0;
-//		for (int i= 0; i < tc.getRangeCount(); i++) {
-//			int l= tc.getTokenLength(i);
-//			System.out.print("<");
-//			
-//			for (int j= 0; j < l-1; j++)
-//				System.out.print(" ");
-//		}
-//		System.out.println();
-//		
-//		//System.out.println("extract: <" + tc.extract(16, 1) + ">");
-//	}
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/Utilities.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/Utilities.java
deleted file mode 100644
index b73ab6b..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/Utilities.java
+++ /dev/null
@@ -1,401 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import java.io.*;
-import java.text.MessageFormat;
-import java.util.*;
-
-import org.eclipse.swt.widgets.*;
-
-import org.eclipse.core.resources.ResourcesPlugin;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.util.*;
-import org.eclipse.jface.viewers.*;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IAdaptable;
-
-import org.eclipse.ui.*;
-
-import org.eclipse.compare.CompareConfiguration;
-
-/**
- * Convenience and utility methods.
- */
-public class Utilities {
-	
-	public static void registerAction(IKeyBindingService kbs, IAction a, String id) {
-		if (kbs != null) {
-			a.setActionDefinitionId(id);
-			kbs.registerAction(a);
-		}
-	}
-	
-	public static IWorkbenchPartSite findSite(Control c) {
-		while (c != null && !c.isDisposed()) {
-			Object data= c.getData();
-			if (data instanceof IWorkbenchPart)
-				return ((IWorkbenchPart)data).getSite();
-			c= c.getParent();
-		}
-		return null;
-	}
-
-	public static IActionBars findActionBars(Control c) {
-		while (c != null && !c.isDisposed()) {
-			Object data= c.getData();
-			if (data instanceof CompareEditor)
-				return ((CompareEditor)data).getActionBars();
-				
-			// PR 1GDVZV7: ITPVCM:WIN98 - CTRL + C does not work in Java source compare
-			if (data instanceof IViewPart)
-				return ((IViewPart)data).getViewSite().getActionBars();
-			// end PR 1GDVZV7
-			
-			c= c.getParent();
-		}
-		return null;
-	}
-
-	public static void setEnableComposite(Composite composite, boolean enable) {
-		Control[] children= composite.getChildren();
-		for (int i= 0; i < children.length; i++)
-			children[i].setEnabled(enable);
-	}
-
-	public static boolean getBoolean(CompareConfiguration cc, String key, boolean dflt) {
-		if (cc != null) {
-			Object value= cc.getProperty(key);
-			if (value instanceof Boolean)
-				return ((Boolean) value).booleanValue();
-		}
-		return dflt;
-	}
-	
-	public static void firePropertyChange(ListenerList ll, Object source, String property, Object old, Object newValue) {
-		if (ll != null) {
-			PropertyChangeEvent event= null;
-			Object[] listeners= ll.getListeners();
-			for (int i= 0; i < listeners.length; i++) {
-				IPropertyChangeListener l= (IPropertyChangeListener) listeners[i];
-				if (event == null)
-					event= new PropertyChangeEvent(source, property, old, newValue);
-				l.propertyChange(event);
-			}
-		}
-	}
-
-	public static boolean okToUse(Widget widget) {
-		return widget != null && !widget.isDisposed();
-	}
-	
-	public static boolean isMotif() {
-		return false;
-	}
-		
-	/**
-	 * Returns the elements of the given selection. 
-	 * Returns an empty array if the selection is empty or if 
-	 * the given selection is not of type <code>IStructuredSelection</code>.
-	 *
-	 * @param selection the selection
-	 * @return the selected elements
-	 */
-	public static Object[] toArray(ISelection selection) {
-		if (!(selection instanceof IStructuredSelection)) {
-			return new Object[0];
-		}
-		IStructuredSelection ss= (IStructuredSelection) selection;
-		return ss.toArray();
-	}
-
-	/**
-	 * Convenience method: extract all <code>IResources</code> from given selection.
-	 * Never returns null.
-	 */
-	public static IResource[] getResources(ISelection selection) {
-		
-		ArrayList tmp= new ArrayList();
-
-		if (selection instanceof IStructuredSelection) {
-		
-			Object[] s= ((IStructuredSelection)selection).toArray();
-				
-			for (int i= 0; i < s.length; i++) {
-				Object o= s[i];
-				if (o instanceof IResource) {
-					tmp.add(o);
-					continue;
-				}
-				if (o instanceof IAdaptable) {
-					IAdaptable a= (IAdaptable) o;
-					Object adapter= a.getAdapter(IResource.class);
-					if (adapter instanceof IResource)
-						tmp.add(adapter);
-					continue;
-				}
-			}
-		}
-		return (IResource[]) tmp.toArray(new IResource[tmp.size()]);
-	}
-
-	public static byte[] readBytes(InputStream in) {
-		ByteArrayOutputStream bos= new ByteArrayOutputStream();
-		try {		
-			while (true) {
-				int c= in.read();
-				if (c == -1)
-					break;
-				bos.write(c);
-			}
-					
-		} catch (IOException ex) {
-			return null;
-		
-		} finally {
-			if (in != null) {
-				try {
-					in.close();
-				} catch (IOException x) {
-				}
-			}
-			try {
-				bos.close();
-			} catch (IOException x) {
-			}
-		}
-		
-		return bos.toByteArray();
-	}
-
-	/**
-	 * Returns null if an error occurred.
-	 */
-	public static String readString(InputStream is) {
-		if (is == null)
-			return null;
-		BufferedReader reader= null;
-		try {
-			StringBuffer buffer= new StringBuffer();
-			char[] part= new char[2048];
-			int read= 0;
-			reader= new BufferedReader(new InputStreamReader(is, ResourcesPlugin.getEncoding()));
-
-			while ((read= reader.read(part)) != -1)
-				buffer.append(part, 0, read);
-			
-			return buffer.toString();
-			
-		} catch (IOException ex) {
-		} finally {
-			if (reader != null) {
-				try {
-					reader.close();
-				} catch (IOException ex) {
-				}
-			}
-		}
-		return null;
-	}
-	
-	public static byte[] getBytes(String s) {
-		try {
-			return s.getBytes(ResourcesPlugin.getEncoding());
-		} catch (UnsupportedEncodingException e) {
-			return s.getBytes();
-		}
-	}
-
-	public static String getIconPath(Display display) {
-		return "icons/full/";	//$NON-NLS-1$
-	}
-	
-	/**
-	 * Initialize the given Action from a ResourceBundle.
-	 */
-	public static void initAction(IAction a, ResourceBundle bundle, String prefix) {
-		
-		String labelKey= "label"; //$NON-NLS-1$
-		String tooltipKey= "tooltip"; //$NON-NLS-1$
-		String imageKey= "image"; //$NON-NLS-1$
-		String descriptionKey= "description"; //$NON-NLS-1$
-		
-		if (prefix != null && prefix.length() > 0) {
-			labelKey= prefix + labelKey;
-			tooltipKey= prefix + tooltipKey;
-			imageKey= prefix + imageKey;
-			descriptionKey= prefix + descriptionKey;
-		}
-		
-		a.setText(getString(bundle, labelKey, labelKey));
-		a.setToolTipText(getString(bundle, tooltipKey, null));
-		a.setDescription(getString(bundle, descriptionKey, null));
-		
-		String relPath= getString(bundle, imageKey, null);
-		if (relPath != null && relPath.trim().length() > 0) {
-			
-			String cPath;
-			String dPath;
-			String ePath;
-			
-			if (relPath.indexOf("/") >= 0) { //$NON-NLS-1$
-				String path= relPath.substring(1);
-				cPath= 'c' + path;
-				dPath= 'd' + path;
-				ePath= 'e' + path;
-			} else {
-				cPath= "clcl16/" + relPath; //$NON-NLS-1$
-				dPath= "dlcl16/" + relPath; //$NON-NLS-1$
-				ePath= "elcl16/" + relPath; //$NON-NLS-1$
-			}
-			
-			ImageDescriptor id= CompareUIPlugin.getImageDescriptor(dPath);	// we set the disabled image first (see PR 1GDDE87)
-			if (id != null)
-				a.setDisabledImageDescriptor(id);
-			id= CompareUIPlugin.getImageDescriptor(cPath);
-			if (id != null)
-				a.setHoverImageDescriptor(id);
-			id= CompareUIPlugin.getImageDescriptor(ePath);
-			if (id != null)
-				a.setImageDescriptor(id);
-		}
-	}
-	
-	public static void initToggleAction(IAction a, ResourceBundle bundle, String prefix, boolean checked) {
-
-		String tooltip= null;
-		if (checked)
-			tooltip= getString(bundle, prefix + "tooltip.checked", null);	//$NON-NLS-1$
-		else
-			tooltip= getString(bundle, prefix + "tooltip.unchecked", null);	//$NON-NLS-1$
-		if (tooltip == null)
-			tooltip= getString(bundle, prefix + "tooltip", null);	//$NON-NLS-1$
-		
-		if (tooltip != null)
-			a.setToolTipText(tooltip);
-			
-		String description= null;
-		if (checked)
-			description= getString(bundle, prefix + "description.checked", null);	//$NON-NLS-1$
-		else
-			description= getString(bundle, prefix + "description.unchecked", null);	//$NON-NLS-1$
-		if (description == null)
-			description= getString(bundle, prefix + "description", null);	//$NON-NLS-1$
-		
-		if (description != null)
-			a.setDescription(description);
-			
-	}
-
-	public static String getString(ResourceBundle bundle, String key, String dfltValue) {
-		
-		if (bundle != null) {
-			try {
-				return bundle.getString(key);
-			} catch (MissingResourceException x) {
-			}
-		}
-		return dfltValue;
-	}
-	
-	public static String getFormattedString(ResourceBundle bundle, String key, String arg) {
-		
-		if (bundle != null) {
-			try {
-				return MessageFormat.format(bundle.getString(key), new String[] { arg });
-			} catch (MissingResourceException x) {
-			}
-		}
-		return "!" + key + "!";//$NON-NLS-2$ //$NON-NLS-1$
-	}
-	
-	public static String getString(String key) {
-		try {
-			return CompareUIPlugin.getResourceBundle().getString(key);
-		} catch (MissingResourceException e) {
-			return "!" + key + "!";//$NON-NLS-2$ //$NON-NLS-1$
-		}
-	}
-	
-	public static String getFormattedString(String key, String arg) {
-		try{
-			return MessageFormat.format(CompareUIPlugin.getResourceBundle().getString(key), new String[] { arg });
-		} catch (MissingResourceException e) {
-			return "!" + key + "!";//$NON-NLS-2$ //$NON-NLS-1$
-		}	
-	}
-
-	public static String getString(ResourceBundle bundle, String key) {
-		return getString(bundle, key, key);
-	}
-	
-	public static int getInteger(ResourceBundle bundle, String key, int dfltValue) {
-		
-		if (bundle != null) {
-			try {
-				String s= bundle.getString(key);
-				if (s != null)
-					return Integer.parseInt(s);
-			} catch (NumberFormatException x) {
-			} catch (MissingResourceException x) {
-			}
-		}
-		return dfltValue;
-	}
-
-	/**
-	 * Answers <code>true</code> if the given selection contains resources that don't
-	 * have overlapping paths and <code>false</code> otherwise. 
-	 */
-	/*
-	public static boolean isSelectionNonOverlapping() throws TeamException {
-		IResource[] resources = getSelectedResources();
-		// allow operation for non-overlapping resource selections
-		if(resources.length>0) {
-			List validPaths = new ArrayList(2);
-			for (int i = 0; i < resources.length; i++) {
-				IResource resource = resources[i];
-				
-				// only allow cvs resources to be selected
-				if(RepositoryProvider.getProvider(resource.getProject(), CVSProviderPlugin.getTypeId()) == null) {
-					return false;
-				}
-				
-				// check if this resource overlaps other selections		
-				IPath resourceFullPath = resource.getFullPath();
-				if(!validPaths.isEmpty()) {
-					for (Iterator it = validPaths.iterator(); it.hasNext();) {
-						IPath path = (IPath) it.next();
-						if(path.isPrefixOf(resourceFullPath) || 
-					       resourceFullPath.isPrefixOf(path)) {
-							return false;
-						}
-					}
-				}
-				validPaths.add(resourceFullPath);
-				
-				// ensure that resources are managed
-				ICVSResource cvsResource = CVSWorkspaceRoot.getCVSResourceFor(resource);
-				if(cvsResource.isFolder()) {
-					if( ! ((ICVSFolder)cvsResource).isCVSFolder()) return false;
-				} else {
-					if( ! cvsResource.isManaged()) return false;
-				}
-			}
-			return true;
-		}
-		return false;
-	}
-	*/
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ViewerDescriptor.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ViewerDescriptor.java
deleted file mode 100644
index c3b601c..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ViewerDescriptor.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-import org.eclipse.swt.widgets.Composite;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.compare.*;
-
-import org.eclipse.jface.viewers.Viewer;
-
-/**
- * Creates <code>Viewer</code>s from an <code>IConfigurationElement</code>.
- */
-public class ViewerDescriptor implements IViewerDescriptor {
-
-	private final static String CLASS_ATTRIBUTE= "class"; //$NON-NLS-1$
-	private final static String EXTENSIONS_ATTRIBUTE= "extensions"; //$NON-NLS-1$
-
-	private IConfigurationElement fConfiguration;
-	private IViewerCreator fViewerCreator;
-	private Class fViewerClass;
-
-	public ViewerDescriptor(IConfigurationElement config) {
-		fConfiguration= config;
-	}
-
-	public Viewer createViewer(Viewer currentViewer, Composite parent, CompareConfiguration mp) {
-		
-		if (currentViewer != null && currentViewer.getClass() == fViewerClass) {
-			//System.out.println("reused viewer: " + currentViewer.getClass().getName());
-			return currentViewer;
-		}
-		
-		if (fViewerCreator == null) {
-			try {
-				fViewerCreator= (IViewerCreator) fConfiguration.createExecutableExtension(CLASS_ATTRIBUTE);
-			} catch (CoreException e) {
-			}
-		}
-
-		if (fViewerCreator != null) {
-			Viewer viewer= fViewerCreator.createViewer(parent, mp);
-			if (viewer != null)
-				fViewerClass= viewer.getClass();
-			return viewer;
-		}
-
-		return null;
-	}
-
-	public String getExtension() {
-		return fConfiguration.getAttribute(EXTENSIONS_ATTRIBUTE);
-	}
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ViewerSwitchingCancelled.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ViewerSwitchingCancelled.java
deleted file mode 100644
index 27e580c..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/ViewerSwitchingCancelled.java
+++ /dev/null
@@ -1,17 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal;
-
-
-public class ViewerSwitchingCancelled extends Error {
-
-}
-
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/Attic/LineReader.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/Attic/LineReader.java
deleted file mode 100644
index 33b9ca5..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/Attic/LineReader.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal.patch;
-
-import java.io.*;
-import java.util.*;
-
-import org.eclipse.jface.util.Assert;
-
-/* package */ class LineReader {
-
-	private boolean fHaveChar= false;
-	private int fLastChar;
-	private boolean fSawEOF= false;
-	private BufferedReader fReader;
-	private boolean fIgnoreSingleCR= false;
-	
-	
-	/* package */ LineReader(BufferedReader reader) {
-		fReader= reader;
-		Assert.isNotNull(reader);
-	}
-
-	void ignoreSingleCR() {
-		fIgnoreSingleCR= true;
-	}
-	
-    /**
-     * Reads a line of text. A line is considered to be terminated by any one
-     * of a line feed ('\n'), a carriage return ('\r'), or a carriage return
-     * followed immediately by a linefeed.
-     * @return A string containing the contents of the line including
-     *	the line-termination characters, or <code>null</code> if the end of the
-     *	stream has been reached
-     * @exception IOException If an I/O error occurs
-     */
-	/* package */ String readLine() throws IOException {
-		StringBuffer sb= null;
-				
-		while (!fSawEOF) {
-			int c= readChar();
-			if (c == -1) {
-				fSawEOF= true;
-				break;
-			}
-			if (sb == null)
-				sb= new StringBuffer();
-			sb.append((char)c);
-			if (c == '\n')
-				break;
-			if (c == '\r') {
-				c= readChar();
-				if (c == -1) {
-					fSawEOF= true;
-					break;	// EOF
-				}
-				if (c != '\n') {
-					if (fIgnoreSingleCR) {
-						sb.append((char)c);	
-						continue;
-					} else {
-						fHaveChar= true;
-						fLastChar= c;
-					}
-				} else
-					sb.append((char)c);	
-				break;
-			}
-		}
-		
-		if (sb != null)
-			return sb.toString();
-		return null;
-	}
-	
-	/* package */ void close() {
-		try {
-			fReader.close();
-		} catch (IOException ex) {
-		}
-	}
-	
-	/* package */ List readLines() {
-		try {
-			List lines= new ArrayList();
-			String line;
-			while ((line= readLine()) != null)
-				lines.add(line);
-			return lines;
-		} catch (IOException ex) {
-			//System.out.println("error while reading file: " + fileName + "(" + ex + ")");
-		} finally {
-			close();
-		}
-		return null;
-	}
-	/**
-	 * Returns the number of characters in the given string without
-	 * counting a trailing line separator.
-	 */
-	/* package */ int lineContentLength(String line) {
-		if (line == null)
-			return 0;
-		int length= line.length();
-		for (int i= length-1; i >= 0; i--) {
-			char c= line.charAt(i);
-			if (c =='\n' || c == '\r')
-				length--;
-			else
-				break;
-		}
-		return length;
-	}
-	
-	//---- private
-	
-	private int readChar() throws IOException {
-		if (fHaveChar) {
-			fHaveChar= false;
-			return fLastChar;
-		}
-		return fReader.read();
-	}
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/CompareWithPatchAction.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/CompareWithPatchAction.java
deleted file mode 100644
index 02bc955..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/CompareWithPatchAction.java
+++ /dev/null
@@ -1,158 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal.patch;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.Arrays;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Shell;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.ProgressMonitorDialog;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.util.Assert;
-import org.eclipse.jface.viewers.*;
-import org.eclipse.jface.wizard.IWizard;
-import org.eclipse.jface.wizard.WizardDialog;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.*;
-
-import org.eclipse.ui.IActionDelegate;
-import org.eclipse.ui.IEditorPart;
-
-import org.eclipse.compare.internal.*;
-
-
-public class CompareWithPatchAction implements IActionDelegate {
-
-	static class PatchWizardDialog extends WizardDialog {
-	
-		PatchWizardDialog(Shell parent, IWizard wizard) {
-			super(parent, wizard);
-			
-			setShellStyle(getShellStyle() | SWT.RESIZE);
-			setMinimumPageSize(700, 500);
-		}
-	}
-	
-	private ISelection fSelection;
-	
-
-	public void selectionChanged(IAction action, ISelection selection) {
-		fSelection= selection;
-		IResource[] resources= PatchWizard.getResource(fSelection);
-		action.setEnabled(resources != null && resources.length == 1);
-	}
-		
-	public void run(IAction action) {
-		PatchWizard wizard= new PatchWizard(fSelection);
-		
-		if (areAllEditorsSaved()) {
-			PatchWizardDialog dialog= new PatchWizardDialog(CompareUIPlugin.getShell(), wizard);
-			dialog.open();
-		}
-	}
-
-	private boolean areAllEditorsSaved(){
-		if (CompareUIPlugin.getDirtyEditors().length == 0)
-			return true;
-		if (! saveAllDirtyEditors())
-			return false;
-		Shell shell= CompareUIPlugin.getShell();
-		try {
-			// Save isn't cancelable.
-			IWorkspace workspace= ResourcesPlugin.getWorkspace();
-			IWorkspaceDescription description= workspace.getDescription();
-			boolean autoBuild= description.isAutoBuilding();
-			description.setAutoBuilding(false);
-			workspace.setDescription(description);
-			try {
-				new ProgressMonitorDialog(shell).run(false, false, createRunnable());
-			} finally {
-				description.setAutoBuilding(autoBuild);
-				workspace.setDescription(description);
-			}
-			return true;
-		} catch (InvocationTargetException e) {
-			ExceptionHandler.handle(e, shell, PatchMessages.getString("PatchAction.ExceptionTitle"), PatchMessages.getString("Exception"));  //$NON-NLS-1$ //$NON-NLS-2$
-			return false;
-		} catch (CoreException e) {
-			ExceptionHandler.handle(e, shell, PatchMessages.getString("PatchAction.ExceptionTitle"), PatchMessages.getString("Exception"));  //$NON-NLS-1$ //$NON-NLS-2$
-			return false;			
-		} catch (InterruptedException e) {
-			Assert.isTrue(false); // Can't happen. Operation isn't cancelable.
-			return false;
-		}
-	}
-
-	private IRunnableWithProgress createRunnable() {
-		return new IRunnableWithProgress() {
-			public void run(IProgressMonitor pm) {
-				IEditorPart[] editorsToSave= CompareUIPlugin.getDirtyEditors();
-				pm.beginTask(PatchMessages.getString("PatchAction.SavingDirtyEditorsTask"), editorsToSave.length); //$NON-NLS-1$
-				for (int i= 0; i < editorsToSave.length; i++) {
-					editorsToSave[i].doSave(new SubProgressMonitor(pm, 1));
-					pm.worked(1);
-				}
-				pm.done();
-			}
-		};
-	}
-
-	private boolean saveAllDirtyEditors() {
-		if (ComparePreferencePage.getSaveAllEditors()) //must save everything
-			return true;
-		ListDialog dialog= new ListDialog(CompareUIPlugin.getShell()) {
-			protected Control createDialogArea(Composite parent) {
-				Composite result= (Composite) super.createDialogArea(parent);
-				final Button check= new Button(result, SWT.CHECK);
-				check.setText(PatchMessages.getString("PatchAction.AlwaysSaveQuestion")); //$NON-NLS-1$
-				check.setSelection(ComparePreferencePage.getSaveAllEditors());
-				check.addSelectionListener(
-					new SelectionAdapter() {
-						public void widgetSelected(SelectionEvent e) {
-							ComparePreferencePage.setSaveAllEditors(check.getSelection());
-						}
-					}
-				);
-				applyDialogFont(result);
-				return result;
-			}
-		};
-		dialog.setTitle(PatchMessages.getString("PatchAction.SaveAllQuestion")); //$NON-NLS-1$
-		dialog.setAddCancelButton(true);
-		dialog.setLabelProvider(createDialogLabelProvider());
-		dialog.setMessage(PatchMessages.getString("PatchAction.SaveAllDescription")); //$NON-NLS-1$
-		dialog.setContentProvider(new ListContentProvider());
-		dialog.setInput(Arrays.asList(CompareUIPlugin.getDirtyEditors()));
-		return dialog.open() == Dialog.OK;
-	}
-
-	private ILabelProvider createDialogLabelProvider() {
-		return new LabelProvider() {
-			public Image getImage(Object element) {
-				return ((IEditorPart) element).getTitleImage();
-			}
-			public String getText(Object element) {
-				return ((IEditorPart) element).getTitle();
-			}
-		};
-	}
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/Diff.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/Diff.java
deleted file mode 100644
index 12e7e2c..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/Diff.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal.patch;
-
-import java.util.*;
-
-import org.eclipse.core.runtime.IPath;
-
-import org.eclipse.compare.structuremergeviewer.Differencer;
-
-
-/* package */ class Diff {
-		
-	IPath fOldPath, fNewPath;
-	long fOldDate, fNewDate;	// if 0: no file
-	List fHunks= new ArrayList();
-	boolean fMatches= false;
-	private boolean fIsEnabled2= true;
-	String fRejected;
-
-	
- 	/* package */ Diff(IPath oldPath, long oldDate, IPath newPath, long newDate) {
-		fOldPath= oldPath;
-		fOldDate= oldPath == null ? 0 : oldDate;
-		fNewPath= newPath;
-		fNewDate= newPath == null ? 0 : newDate;	
-	}
-	
-	boolean isEnabled() {
-		return fIsEnabled2;
-	}
-	
-	void setEnabled(boolean b) {
-		fIsEnabled2= b;
-	}
-	
-	void reverse() {
-		IPath tp= fOldPath;
-		fOldPath= fNewPath;
-		fNewPath= tp;
-		
-		long t= fOldDate;
-		fOldDate= fNewDate;
-		fNewDate= t;
-		
-		Iterator iter= fHunks.iterator();
-		while (iter.hasNext()) {
-			Hunk hunk= (Hunk) iter.next();
-			hunk.reverse();
-		}
-	}
-	
-	Hunk[] getHunks() {
-		return (Hunk[]) fHunks.toArray((Hunk[]) new Hunk[fHunks.size()]);
-	}
-
-	IPath getPath() {
-		if (fOldPath != null)
-			return fOldPath;
-		return fNewPath;
-	}
-	
-	void finish() {
-		if (fHunks.size() == 1) {
-			Hunk h= (Hunk) fHunks.get(0);
-			if (h.fNewLength == 0) {
-				fNewDate= 0;
-				fNewPath= fOldPath;
-			}
-		}
-	}
-	
-	/* package */ void add(Hunk hunk) {
-		fHunks.add(hunk);
-	}
-	
-	/* package */ int getType() {
-		if (fOldDate == 0)
-			return Differencer.ADDITION;
-		if (fNewDate == 0)
-			return Differencer.DELETION;
-		return Differencer.CHANGE;
-	}
-	
-	/* package */ String getDescription(int strip) {
-		IPath path= fOldPath;
-		if (fOldDate == 0)
-			path= fNewPath;
-		if (strip > 0 && strip < path.segmentCount())
-			path= path.removeFirstSegments(strip);
-		return path.toOSString();
-	}
-}
-
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/Hunk.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/Hunk.java
deleted file mode 100644
index 4bb105b..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/Hunk.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal.patch;
-
-import java.util.List;
-
-/**
- * A Hunk describes a range of changed lines and some context lines.
- */
-/* package */ class Hunk {
-	
-	Diff fParent;
-	int fOldStart, fOldLength;
-	int fNewStart, fNewLength;
-	String[] fLines;
-	boolean fMatches= false;
-	private boolean fIsEnabled= true;
-	
-	
-	/* package */ Hunk(Diff parent, int[] oldRange, int[] newRange, List lines) {
-		
-		fParent= parent;
-		if (fParent != null)
-			fParent.add(this);
-		
-		if (oldRange[0] > 0)
-			fOldStart= oldRange[0]-1;	// line number start at 0!
-		else
-			fOldStart= 0;
-		fOldLength= oldRange[1];
-		if (newRange[0] > 0)
-			fNewStart= newRange[0]-1;	// line number start at 0!
-		else
-			fNewStart= 0;
-		fNewLength= newRange[1];
-		
-		fLines= (String[]) lines.toArray(new String[lines.size()]);
-	}
-		
-	boolean isEnabled() {
-		return fIsEnabled;
-	}
-	
-	void setEnabled(boolean enable) {
-		fIsEnabled= enable;
-	}
-	
-	void reverse() {
-		int t= fOldStart;
-		fOldStart= fNewStart;
-		fNewStart= t;
-		
-		t= fOldLength;
-		fOldLength= fNewLength;
-		fNewLength= t;
-		
-		for (int i= 0; i < fLines.length; i++) {
-			String line= fLines[i];
-			char c= line.charAt(0);
-			switch (c) {
-			case '+':
-				fLines[i]= '-' + line.substring(1);
-				break;
-			case '-':
-				fLines[i]= '+' + line.substring(1);
-				break;
-			default:
-				break;
-			}
-		}
-	}
-
-	/**
-	 * Returns the contents of this hunk.
-	 * Each line starts with a control character. Their meaning is as follows:
-	 * <ul>
-	 * <li>
-	 * '+': add the line
-	 * <li>
-	 * '-': delete the line
-	 * <li>
-	 * ' ': no change, context line
-	 * </ul>
-	 */
-	String getContent() {
-		StringBuffer sb= new StringBuffer();
-		for (int i= 0; i < fLines.length; i++) {
-			String line= fLines[i];
-			sb.append(line.substring(0, Patcher.length(line)));
-			sb.append('\n');
-		}
-		return sb.toString();
-	}
-	
-	/**
-	 * Returns a descriptive String for this hunk.
-	 * It is in the form old_start,old_length -> new_start,new_length.
-	 */
-	String getDescription() {
-		StringBuffer sb= new StringBuffer();
-		sb.append(Integer.toString(fOldStart));
-		sb.append(',');
-		sb.append(Integer.toString(fOldLength));
-		sb.append(" -> "); //$NON-NLS-1$
-		sb.append(Integer.toString(fNewStart));
-		sb.append(',');
-		sb.append(Integer.toString(fNewLength));
-		return sb.toString();
-	}
-	
-	String getRejectedDescription() {
-		StringBuffer sb= new StringBuffer();
-		sb.append("@@ -"); //$NON-NLS-1$
-		sb.append(Integer.toString(fOldStart));
-		sb.append(',');
-		sb.append(Integer.toString(fOldLength));
-		sb.append(" +"); //$NON-NLS-1$
-		sb.append(Integer.toString(fNewStart));
-		sb.append(',');
-		sb.append(Integer.toString(fNewLength));
-		sb.append(" @@"); //$NON-NLS-1$
-		return sb.toString();
-	}
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/InputPatchPage.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/InputPatchPage.java
deleted file mode 100644
index 1a3c09a..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/InputPatchPage.java
+++ /dev/null
@@ -1,522 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal.patch;
-
-import java.io.*;
-import java.text.MessageFormat;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.dnd.*;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-
-import org.eclipse.jface.dialogs.*;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.viewers.*;
-import org.eclipse.jface.wizard.*;
-
-import org.eclipse.ui.help.*;
-import org.eclipse.ui.model.*;
-
-import org.eclipse.compare.internal.ICompareContextIds;
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.*;
-
-
-/* package */ class InputPatchPage extends WizardPage {
-
-	// constants
-	protected static final int SIZING_TEXT_FIELD_WIDTH= 250;
-	protected static final int COMBO_HISTORY_LENGTH= 5;
-	
-	// dialog store id constants
-	private final static String PAGE_NAME= "PatchWizardPage1"; //$NON-NLS-1$
-	private final static String STORE_PATCH_FILES_ID= PAGE_NAME + ".PATCH_FILES";	//$NON-NLS-1$
-	private final static String STORE_USE_CLIPBOARD_ID= PAGE_NAME + ".USE_CLIPBOARD";	//$NON-NLS-1$
-	
-	private boolean fShowError= false;
-	
-	// SWT widgets
-	private Button fUseClipboardButton;
-	private Combo fPatchFileNameField;
-	private Button fPatchFileBrowseButton;
-	private Button fUsePatchFileButton;
-	private Group fPatchFileGroup;
-	private CheckboxTreeViewer fPatchTargets;
-	private PatchWizard fPatchWizard;
-
-
-	InputPatchPage(PatchWizard pw) {
-		super("InputPatchPage", PatchMessages.getString("InputPatchPage.title"), null); //$NON-NLS-1$ //$NON-NLS-2$
-		fPatchWizard= pw;
-		setMessage(PatchMessages.getString("InputPatchPage.message")); //$NON-NLS-1$
-	}
-	
-	/**
-	 * Get a path from the supplied text widget.
-	 * @return org.eclipse.core.runtime.IPath
-	 */
-	protected IPath getPathFromText(Text textField) {
-		return (new Path(textField.getText())).makeAbsolute();
-	}
-
-	/* package */ String getPatchName() {
-		if (getUseClipboard())
-			return PatchMessages.getString("InputPatchPage.Clipboard"); //$NON-NLS-1$
-		return getPatchFilePath();
-	}
-	
-	public void createControl(Composite parent) {
-				
-		Composite composite= new Composite(parent, SWT.NULL);
-		composite.setLayout(new GridLayout());
-		composite.setLayoutData(new GridData(/* GridData.VERTICAL_ALIGN_FILL | */ GridData.HORIZONTAL_ALIGN_FILL));
-		setControl(composite);
-		
-		Label l= new Label(composite, SWT.NONE);	// a spacer
-		l.setText(PatchMessages.getString("InputPatchPage.SelectInput")); //$NON-NLS-1$
-		buildInputGroup(composite);
-		
-		new Label(composite, SWT.NONE);	// a spacer		
-		
-		buildPatchFileGroup(composite);		
-			
-		restoreWidgetValues();
-
-		updateWidgetEnablements();
-		//updatePageCompletion();
-		
-		Dialog.applyDialogFont(composite);
-		WorkbenchHelp.setHelp(composite, ICompareContextIds.PATCH_INPUT_WIZARD_PAGE);
-	}
-	
-	/* (non-JavaDoc)
-	 * Method declared in IWizardPage.
-	 */
-	public IWizardPage getNextPage() {
-			
-		Patcher patcher= ((PatchWizard) getWizard()).getPatcher();
-		
-		String source;
-		// Create a reader for the input
-		Reader reader= null;
-		if (getUseClipboard()) {
-			Control c= getControl();
-			if (c != null) {
-				Clipboard clipboard= new Clipboard(c.getDisplay());
-				Object o= clipboard.getContents(TextTransfer.getInstance());
-				clipboard.dispose();
-				if (o instanceof String)
-					reader= new StringReader((String)o);
-			}
-			source= PatchMessages.getString("InputPatchPage.Clipboard.title");	//$NON-NLS-1$
-		} else {
-			String patchFilePath= getPatchFilePath();
-			if (patchFilePath != null) {
-				try {
-					reader= new FileReader(patchFilePath);
-				} catch (FileNotFoundException ex) {
-					MessageDialog.openError(null,
-						PatchMessages.getString("InputPatchPage.PatchErrorDialog.title"),	//$NON-NLS-1$
-						PatchMessages.getString("InputPatchPage.PatchFileNotFound.message")); //$NON-NLS-1$
-				}
-			}
-			source= PatchMessages.getString("InputPatchPage.PatchFile.title");	//$NON-NLS-1$
-		}
-		
-		// parse the input
-		if (reader != null) {
-			try {
-				patcher.parse(new BufferedReader(reader));
-			} catch (IOException ex) {
-				MessageDialog.openError(null,
-					PatchMessages.getString("InputPatchPage.PatchErrorDialog.title"), //$NON-NLS-1$ 
-					PatchMessages.getString("InputPatchPage.ParseError.message")); //$NON-NLS-1$
-			}
-			
-			try {
-				reader.close();
-			} catch (IOException x) {
-			}
-		}
-		
-		Diff[] diffs= patcher.getDiffs();
-		if (diffs == null || diffs.length == 0) {
-			String format= PatchMessages.getString("InputPatchPage.NoDiffsFound.format");	//$NON-NLS-1$
-			String message= MessageFormat.format(format, new String[] { source });
-			MessageDialog.openInformation(null,
-				PatchMessages.getString("InputPatchPage.PatchErrorDialog.title"), message); //$NON-NLS-1$
-			return this;
-		}
-		
-		// if selected target is file ensure that patch file
-		// contains only a patch for a single file
-		IResource target= fPatchWizard.getTarget();
-		if (target instanceof IFile && diffs.length > 1) {
-			String format= PatchMessages.getString("InputPatchPage.SingleFileError.format");	//$NON-NLS-1$
-			String message= MessageFormat.format(format, new String[] { source });
-			MessageDialog.openInformation(null,
-				PatchMessages.getString("InputPatchPage.PatchErrorDialog.title"), message); //$NON-NLS-1$
-			return this;
-		}
-		
-		// guess prefix count
-		int guess= 0; // guessPrefix(diffs);
-		patcher.setStripPrefixSegments(guess);
-
-		return super.getNextPage();
-	}
-			
-	/* (non-JavaDoc)
-	 * Method declared in IWizardPage.
-	 */
-	public boolean canFlipToNextPage() {
-		// we can't call getNextPage to determine if flipping is allowed since computing
-		// the next page is quite expensive. So we say yes if the page is complete.
-		return isPageComplete();
-	}
-	
-	private void setEnablePatchFile(boolean enable) {
-		fPatchFileNameField.setEnabled(enable);
-		fPatchFileBrowseButton.setEnabled(enable);
-	}
-
-	/**
-	 *	Create the group for selecting the patch file
-	 */
-	private void buildPatchFileGroup(Composite parent) {
-		
-		fPatchFileGroup= new Group(parent, SWT.NONE);
-		fPatchFileGroup.setText(PatchMessages.getString("InputPatchPage.SelectPatch.title")); //$NON-NLS-1$
-		GridLayout layout= new GridLayout();
-		layout.numColumns= 3;
-		fPatchFileGroup.setLayout(layout);
-		fPatchFileGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		
-		// 1st row
-		fUsePatchFileButton= new Button(fPatchFileGroup, SWT.RADIO);
-		fUsePatchFileButton.setText(PatchMessages.getString("InputPatchPage.FileButton.text")); //$NON-NLS-1$
-		
-		fPatchFileNameField= new Combo(fPatchFileGroup, SWT.BORDER);
-		GridData gd= new GridData(GridData.FILL_HORIZONTAL);
-		//gd.horizontalIndent= 8;
-		gd.widthHint= SIZING_TEXT_FIELD_WIDTH;
-		fPatchFileNameField.setLayoutData(gd);
-		
-		fPatchFileBrowseButton= new Button(fPatchFileGroup, SWT.PUSH);
-		fPatchFileBrowseButton.setText(PatchMessages.getString("InputPatchPage.ChooseFileButton.text")); //$NON-NLS-1$
-		fPatchFileBrowseButton.setLayoutData(new GridData());
-		
-		// 2nd row
-		fUseClipboardButton= new Button(fPatchFileGroup, SWT.RADIO);
-		fUseClipboardButton.setText(PatchMessages.getString("InputPatchPage.UseClipboardButton.text")); //$NON-NLS-1$
-		gd= new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
-		gd.horizontalSpan= 2;
-		fUseClipboardButton.setLayoutData(gd);
-
-
-		// Add listeners
-		fUsePatchFileButton.addSelectionListener(
-			new SelectionAdapter() {
-				public void widgetSelected(SelectionEvent e) {
-					fShowError= true;
-					setEnablePatchFile(!getUseClipboard());
-					updateWidgetEnablements();
-				}
-			}
-		);
-		fPatchFileNameField.addSelectionListener(
-			new SelectionAdapter() {
-				public void widgetSelected(SelectionEvent e) {
-					setSourceName(fPatchFileNameField.getText());
-					updateWidgetEnablements();
-				}
-			}
-		);
-		fPatchFileNameField.addModifyListener(
-			new ModifyListener() {
-				public void modifyText(ModifyEvent e) {
-					fShowError= true;
-					updateWidgetEnablements();
-				}
-			}
-		);
-		fPatchFileBrowseButton.addSelectionListener(
-			new SelectionAdapter() {
-				public void widgetSelected(SelectionEvent e) {
-					handlePatchFileBrowseButtonPressed();
-					updateWidgetEnablements();
-				}
-			}
-		);
-		
-		//fPatchFileNameField.setFocus();
-	}
-
-	private void buildInputGroup(Composite parent) {
-		
-		PatchWizard pw= (PatchWizard) getWizard();
-		IResource target= pw.getTarget();
-		IWorkspace workspace= target.getWorkspace();
-		IWorkspaceRoot root= workspace.getRoot();
-		
-		Tree tree= new Tree(parent, SWT.BORDER);
-		GridData gd= new GridData(GridData.FILL_HORIZONTAL);
-		gd.heightHint= 200;
-		tree.setLayoutData(gd);
-		
-		fPatchTargets= new CheckboxTreeViewer(tree);
-		fPatchTargets.setLabelProvider(new WorkbenchLabelProvider());
-		fPatchTargets.setContentProvider(new WorkbenchContentProvider());
-		fPatchTargets.setSorter(new WorkbenchViewerSorter());
-		fPatchTargets.setInput(root);
-		if (target != null) {
-			fPatchTargets.expandToLevel(target, 0);
-			fPatchTargets.setSelection(new StructuredSelection(target));
-		}
-		
-		// register listeners
-		fPatchTargets.addSelectionChangedListener(
-			new ISelectionChangedListener() {
-				public void selectionChanged(SelectionChangedEvent event) {
-					fPatchWizard.setTargets(PatchWizard.getResource(event.getSelection()));
-					updateWidgetEnablements();
-				}
-			}
-		);
-	}
-		
-	/**
-	 * Updates the enable state of this page's controls.
-	 */
-	private void updateWidgetEnablements() {
-		
-		String error= null;
-
-		ISelection selection= fPatchTargets.getSelection();
-		boolean anySelected= selection != null && !selection.isEmpty();
-		if (!anySelected)
-			error= PatchMessages.getString("InputPatchPage.NothingSelected.message"); //$NON-NLS-1$
-
-		boolean gotPatch= false;
-		if (getUseClipboard()) {
-			Control c= getControl();
-			if (c != null) {
-				Clipboard clipboard= new Clipboard(c.getDisplay());
-				Object o= clipboard.getContents(TextTransfer.getInstance());
-				clipboard.dispose();
-				if (o instanceof String) {
-					String s= ((String) o).trim();
-					if (s.length() > 0)
-						gotPatch= true;
-					else
-						error= PatchMessages.getString("InputPatchPage.ClipboardIsEmpty.message"); //$NON-NLS-1$
-				} else
-					error= PatchMessages.getString("InputPatchPage.NoTextInClipboard.message");					 //$NON-NLS-1$
-			} else
-				error= PatchMessages.getString("InputPatchPage.CouldNotReadClipboard.message");					 //$NON-NLS-1$
-		} else {
-			String path= fPatchFileNameField.getText();
-			if (path != null && path.length() > 0) {
-				File file= new File(path);
-				gotPatch= file.exists() && file.isFile() && file.length() > 0;
-				if (!gotPatch)
-					error= PatchMessages.getString("InputPatchPage.CannotLocatePatch.message") + path; //$NON-NLS-1$
-			} else {
-				error= PatchMessages.getString("InputPatchPage.NoFileName.message"); //$NON-NLS-1$
-			}
-		}
-		
-		setPageComplete(anySelected && gotPatch);
-		if (fShowError)
-			setErrorMessage(error);
-	}
-	
-	protected void handlePatchFileBrowseButtonPressed() {
-		FileDialog dialog= new FileDialog(getShell(), SWT.NONE);
-		dialog.setText(PatchMessages.getString("InputPatchPage.SelectPatchFileDialog.title"));		 //$NON-NLS-1$
-		dialog.setFilterPath(getPatchFilePath());
-		String res= dialog.open();
-		if (res == null)
-			return;
-		
-		String patchFilePath= dialog.getFileName();
-		IPath filterPath= new Path(dialog.getFilterPath());
-		IPath path= filterPath.append(patchFilePath).makeAbsolute();	
-		patchFilePath= path.toOSString();
-		//fDialogSettings.put(IUIConstants.DIALOGSTORE_LASTEXTJAR, filterPath.toOSString());
-		
-		fPatchFileNameField.setText(patchFilePath);
-		//setSourceName(patchFilePath);
-	}
-	
-	/**
-	 * Sets the source name of the import to be the supplied path.
-	 * Adds the name of the path to the list of items in the
-	 * source combo and selects it.
-	 *
-	 * @param path the path to be added
-	 */
-	protected void setSourceName(String path) {
-	
-		if (path.length() > 0) {
-	
-			String[] currentItems= fPatchFileNameField.getItems();
-			int selectionIndex= -1;
-			for (int i= 0; i < currentItems.length; i++)
-				if (currentItems[i].equals(path))
-					selectionIndex= i;
-			
-			if (selectionIndex < 0) {	// not found in history
-				int oldLength= currentItems.length;
-				String[] newItems= new String[oldLength + 1];
-				System.arraycopy(currentItems, 0, newItems, 0, oldLength);
-				newItems[oldLength]= path;
-				fPatchFileNameField.setItems(newItems);
-				selectionIndex= oldLength;
-			}
-			fPatchFileNameField.select(selectionIndex);
-	
-			//resetSelection();
-		}
-	}
-	
-	/**
-	 *	The Finish button was pressed. Try to do the required work now and answer
-	 *	a boolean indicating success. If false is returned then the wizard will
-	 *	not close.
-	 *
-	 * @return boolean
-	 */
-	public boolean finish() {
-//		if (!ensureSourceIsValid())
-//			return false;
-	
-		saveWidgetValues();
-	
-//		Iterator resourcesEnum = getSelectedResources().iterator();
-//		List fileSystemObjects = new ArrayList();
-//		while (resourcesEnum.hasNext()) {
-//			fileSystemObjects.add(
-//				((FileSystemElement) resourcesEnum.next()).getFileSystemObject());
-//		}
-//	
-//		if (fileSystemObjects.size() > 0)
-//			return importResources(fileSystemObjects);
-//	
-//		MessageDialog
-//			.openInformation(
-//				getContainer().getShell(),
-//				DataTransferMessages.getString("DataTransfer.information"), //$NON-NLS-1$
-//				DataTransferMessages.getString("FileImport.noneSelected")); //$NON-NLS-1$
-//	
-//		return false;
-
-		return true;
-	}
-	
-	/**
-	 *	Use the dialog store to restore widget values to the values that they held
-	 *	last time this wizard was used to completion
-	 */
-	private void restoreWidgetValues() {
-		
-		boolean useClipboard= false;
-		
-		IDialogSettings settings= getDialogSettings();
-		if (settings != null) {
-			
-			useClipboard= settings.getBoolean(STORE_USE_CLIPBOARD_ID);
-
-			// set filenames history
-			String[] sourceNames= settings.getArray(STORE_PATCH_FILES_ID);
-			if (sourceNames != null)
-				for (int i= 0; i < sourceNames.length; i++)
-					if (sourceNames[i] != null && sourceNames[i].length() > 0)
-						fPatchFileNameField.add(sourceNames[i]);
-			
-			// set patch file path
-			String patchFilePath= settings.get(STORE_PATCH_FILES_ID);
-			if (patchFilePath != null)
-				setSourceName(patchFilePath);
-		}
-		
-		// set 'Use Clipboard' radio buttons
-		setUseClipboard(useClipboard);
-	}
-	
-	/**
-	 * 	Since Finish was pressed, write widget values to the dialog store so that they
-	 *	will persist into the next invocation of this wizard page
-	 */
-	void saveWidgetValues() {
-		IDialogSettings settings= getDialogSettings();
-		if (settings != null) {
-			
-			settings.put(STORE_USE_CLIPBOARD_ID, getUseClipboard());
-			settings.put(STORE_PATCH_FILES_ID, getPatchFilePath());
-			
-			// update source names history
-			String[] sourceNames= settings.getArray(STORE_PATCH_FILES_ID);
-			if (sourceNames == null)
-				sourceNames= new String[0];
-	
-			sourceNames= addToHistory(sourceNames, getPatchFilePath());
-			settings.put(STORE_PATCH_FILES_ID, sourceNames);
-		}
-	}
-	
-	// static helpers
-		
-	private void setUseClipboard(boolean useClipboard) {
-		if (useClipboard)
-			fUseClipboardButton.setSelection(true);
-		else
-			fUsePatchFileButton.setSelection(true);
-		setEnablePatchFile(!useClipboard);
-	}
-	
-	private boolean getUseClipboard() {
-		if (fUseClipboardButton != null)
-			return fUseClipboardButton.getSelection();
-		return false;
-	}
-
-	private String getPatchFilePath() {
-		if (fPatchFileNameField != null)
-			return fPatchFileNameField.getText();
-		return ""; //$NON-NLS-1$
-	} 
-
-	/**
-	 * Adds an entry to a history, while taking care of duplicate history items
-	 * and excessively long histories. The assumption is made that all histories
-	 * should be of length <code>COMBO_HISTORY_LENGTH</code>.
-	 *
-	 * @param history the current history
-	 * @param newEntry the entry to add to the history
-	 */
-	protected static String[] addToHistory(String[] history, String newEntry) {
-		java.util.ArrayList l= new java.util.ArrayList(java.util.Arrays.asList(history));
-
-		l.remove(newEntry);
-		l.add(0,newEntry);
-	
-		// since only one new item was added, we can be over the limit
-		// by at most one item
-		if (l.size() > COMBO_HISTORY_LENGTH)
-			l.remove(COMBO_HISTORY_LENGTH);
-		
-		return (String[]) l.toArray(new String[l.size()]);
-	}
-}
-
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/LineReader.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/LineReader.java
deleted file mode 100644
index 33b9ca5..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/LineReader.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal.patch;
-
-import java.io.*;
-import java.util.*;
-
-import org.eclipse.jface.util.Assert;
-
-/* package */ class LineReader {
-
-	private boolean fHaveChar= false;
-	private int fLastChar;
-	private boolean fSawEOF= false;
-	private BufferedReader fReader;
-	private boolean fIgnoreSingleCR= false;
-	
-	
-	/* package */ LineReader(BufferedReader reader) {
-		fReader= reader;
-		Assert.isNotNull(reader);
-	}
-
-	void ignoreSingleCR() {
-		fIgnoreSingleCR= true;
-	}
-	
-    /**
-     * Reads a line of text. A line is considered to be terminated by any one
-     * of a line feed ('\n'), a carriage return ('\r'), or a carriage return
-     * followed immediately by a linefeed.
-     * @return A string containing the contents of the line including
-     *	the line-termination characters, or <code>null</code> if the end of the
-     *	stream has been reached
-     * @exception IOException If an I/O error occurs
-     */
-	/* package */ String readLine() throws IOException {
-		StringBuffer sb= null;
-				
-		while (!fSawEOF) {
-			int c= readChar();
-			if (c == -1) {
-				fSawEOF= true;
-				break;
-			}
-			if (sb == null)
-				sb= new StringBuffer();
-			sb.append((char)c);
-			if (c == '\n')
-				break;
-			if (c == '\r') {
-				c= readChar();
-				if (c == -1) {
-					fSawEOF= true;
-					break;	// EOF
-				}
-				if (c != '\n') {
-					if (fIgnoreSingleCR) {
-						sb.append((char)c);	
-						continue;
-					} else {
-						fHaveChar= true;
-						fLastChar= c;
-					}
-				} else
-					sb.append((char)c);	
-				break;
-			}
-		}
-		
-		if (sb != null)
-			return sb.toString();
-		return null;
-	}
-	
-	/* package */ void close() {
-		try {
-			fReader.close();
-		} catch (IOException ex) {
-		}
-	}
-	
-	/* package */ List readLines() {
-		try {
-			List lines= new ArrayList();
-			String line;
-			while ((line= readLine()) != null)
-				lines.add(line);
-			return lines;
-		} catch (IOException ex) {
-			//System.out.println("error while reading file: " + fileName + "(" + ex + ")");
-		} finally {
-			close();
-		}
-		return null;
-	}
-	/**
-	 * Returns the number of characters in the given string without
-	 * counting a trailing line separator.
-	 */
-	/* package */ int lineContentLength(String line) {
-		if (line == null)
-			return 0;
-		int length= line.length();
-		for (int i= length-1; i >= 0; i--) {
-			char c= line.charAt(i);
-			if (c =='\n' || c == '\r')
-				length--;
-			else
-				break;
-		}
-		return length;
-	}
-	
-	//---- private
-	
-	private int readChar() throws IOException {
-		if (fHaveChar) {
-			fHaveChar= false;
-			return fLastChar;
-		}
-		return fReader.read();
-	}
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatchErrorDialog.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatchErrorDialog.java
deleted file mode 100644
index c4aee63..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatchErrorDialog.java
+++ /dev/null
@@ -1,19 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal.patch;
-
-public class PatchErrorDialog {
-	
-	private PatchErrorDialog() {
-		// no instance.
-	}
-	
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatchMessages.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatchMessages.java
deleted file mode 100644
index 569b875..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatchMessages.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal.patch;
-
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-public class PatchMessages {
-
-	private static final String RESOURCE_BUNDLE= "org.eclipse.compare.internal.patch.PatchMessages";//$NON-NLS-1$
-
-	private static ResourceBundle fgResourceBundle= ResourceBundle.getBundle(RESOURCE_BUNDLE);
-
-	private PatchMessages() {
-	}
-
-	public static String getString(String key) {
-		try {
-			return fgResourceBundle.getString(key);
-		} catch (MissingResourceException e) {
-			return "!" + key + "!";//$NON-NLS-2$ //$NON-NLS-1$
-		}
-	}
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatchMessages.properties b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatchMessages.properties
deleted file mode 100644
index 20c8633..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatchMessages.properties
+++ /dev/null
@@ -1,90 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-#
-# 'Compare with Patch' Action
-#
-PatchAction.ExceptionTitle=Saving Resources
-PatchAction.Exception=Unexpected exception. See log for details
-PatchAction.SavingDirtyEditorsTask=Saving dirty editors
-PatchAction.AlwaysSaveQuestion=&Always save all modified resources automatically prior to patching
-PatchAction.SaveAllQuestion=Save all modified resources
-PatchAction.SaveAllDescription=All modified resources have to be saved before this operation.\nClick 'OK' to confirm or click 'Cancel'.
-
-#
-# PatchWizard
-#
-PatchWizard.title=Apply Patch
-PatchWizard.unexpectedException.message= Unexpected exception while applying the patch. See log for a detailed error description.
-
-#
-# InputPatchPage
-#
-InputPatchPage.title= Patch Input Specification
-InputPatchPage.message= Define the resource to patch and the patch to apply
-InputPatchPage.Clipboard=Clipboard
-InputPatchPage.SelectInput=Select a single file or folder to patch:
-InputPatchPage.PatchErrorDialog.title=Patch Error
-InputPatchPage.PatchErrorDialog=Patch Error
-InputPatchPage.SelectPatch.title=Select Patch
-InputPatchPage.FileButton.text=Fil&e
-InputPatchPage.ChooseFileButton.text=&Browse...
-InputPatchPage.UseClipboardButton.text=&Clipboard
-InputPatchPage.NothingSelected.message=Select a file or folder to be patched
-InputPatchPage.ClipboardIsEmpty.message=Clipboard is empty
-InputPatchPage.NoTextInClipboard.message=Clipboard does not contain text
-InputPatchPage.CouldNotReadClipboard.message=Couldn't retrieve clipboard contents
-InputPatchPage.CannotLocatePatch.message=Can't locate patch file: 
-InputPatchPage.NoFileName.message=No file name
-InputPatchPage.SelectPatchFileDialog.title=Select Patch File
-InputPatchPage.PatchFileNotFound.message=Patch file not found.
-InputPatchPage.ParseError.message=Error while parsing patch
-InputPatchPage.Clipboard.title=Clipboard
-InputPatchPage.PatchFile.title=Patch file
-InputPatchPage.NoDiffsFound.format={0} does not contain valid patch.
-InputPatchPage.SingleFileError.format={0} contains multiple patches. You cannot apply them to a single file.
-
-#
-# PreviewPatchPage
-#
-PreviewPatchPage.title= Verify Patch
-PreviewPatchPage.message= The tree shows the contents of the patch.\nA checked item indicates that a patch can be applied successfully. To remove an item, clear its checkbox.
-PreviewPatchPage.Left.title= Original
-PreviewPatchPage.Right.title= Result
-PreviewPatchPage.PatchOptions.title=Patch Options
-PreviewPatchPage.IgnoreSegments.text=&Ignore leading path name segments:
-PreviewPatchPage.ReversePatch.text=&Reverse patch
-PreviewPatchPage.FuzzFactor.text=&Maximum fuzz factor:
-PreviewPatchPage.FuzzFactor.tooltip=Allow context to shift this number of lines from the original place
-PreviewPatchPage.IgnoreWhitespace.text=Ignore &white space
-PreviewPatchPage.NoName.text=no name
-PreviewPatchPage.FileExists.error=(file already exists)
-PreviewPatchPage.FileDoesNotExist.error=(file doesn't exist)
-PreviewPatchPage.NoMatch.error=(no match)
-PreviewPatchPage.FileIsReadOnly.error=(file is read only)
-PreviewPatchPage.GuessFuzz.text= &Guess
-PreviewPatchPage.GuessFuzzProgress.text= Guessing Fuzz Factor...
-PreviewPatchPage.GuessFuzzProgress.format= {0} (hunk #{1})
-
-#
-# Patcher
-#
-Patcher.ErrorDialog.title=title
-Patcher.DeleteError.message=Error while deleting resource
-Patcher.UpdateError.message=Error while updating resource
-Patcher.RefreshError.message=Error while refreshing from local
-Patcher.Marker.message=Rejected patch
-Patcher.Task.message=Patching
-
-#
-# PatchCompareInput
-#
-PatchCompareInput.RightTitle.format= Patch: {0}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatchWizard.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatchWizard.java
deleted file mode 100644
index 8144490..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PatchWizard.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal.patch;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
-
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.viewers.*;
-import org.eclipse.jface.wizard.Wizard;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.CoreException;
-
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-
-import org.eclipse.compare.internal.*;
-
-
-/* package */ class PatchWizard extends Wizard {
-	
-	// dialog store id constants
-	private final static String DIALOG_SETTINGS_KEY= "PatchWizard"; //$NON-NLS-1$
-
-	private boolean fHasNewDialogSettings;
-	
-	private InputPatchPage fPatchWizardPage;
-	
-	private Patcher fPatcher;
-	private IResource fTarget;
-
-		
-	/**
-	 * Creates a wizard for applying a patch file to the workspace.
-	 */
-	/* package */ PatchWizard(ISelection selection) {
-		
-		setDefaultPageImageDescriptor(CompareUIPlugin.getImageDescriptor("wizban/applypatch_wizban.gif"));	//$NON-NLS-1$
-		setWindowTitle(PatchMessages.getString("PatchWizard.title")); //$NON-NLS-1$
-
-		setTargets(getResource(selection));
-
-		fPatcher= new Patcher();
-				
-		IDialogSettings workbenchSettings= CompareUIPlugin.getDefault().getDialogSettings();
-		IDialogSettings section= workbenchSettings.getSection(DIALOG_SETTINGS_KEY); //$NON-NLS-1$
-		if (section == null)
-			fHasNewDialogSettings= true;
-		else {
-			fHasNewDialogSettings= false;
-			setDialogSettings(section);
-		}	
-	}
-	
-	static IResource[] getResource(ISelection selection) {
-		IResource[] rs= Utilities.getResources(selection);
-		ArrayList list= null;
-		for (int i= 0; i < rs.length; i++) {
-			IResource r= rs[i];
-			if (r != null && r.isAccessible()) {
-				if (list == null)
-					list= new ArrayList();
-				list.add(r);
-			}
-		}
-		if (list != null && list.size() > 0)
-			return (IResource[]) list.toArray(new IResource[list.size()]);
-		return null;
-	}
-	
-	Patcher getPatcher() {
-		return fPatcher;
-	}
-	
-	IResource getTarget() {
-		return fTarget;
-	}
-	
-	void setTargets(IResource[] targets) {
-		if (targets != null)
-			fTarget= targets[0];	// right now we can only deal with a single selection
-	}
-	
-	/* (non-Javadoc)
-	 * Method declared on IWizard.
-	 */
-	public void addPages() {
-		super.addPages();
-		
-		addPage(fPatchWizardPage= new InputPatchPage(this));
-		addPage(new PreviewPatchPage(this));
-	}
-	
-	/* (non-Javadoc)
-	 * Method declared on IWizard.
-	 */
-	public boolean needsProgressMonitor() {
-		return true;
-	}
-
-	/* (non-Javadoc)
-	 * Method declared on IWizard.
-	 */
-	public boolean performFinish() {
-		
-		fPatcher.setName(fPatchWizardPage.getPatchName());
-
-		try {
-			WorkspaceModifyOperation op= new WorkspaceModifyOperation() {
-				protected void execute(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
-					try {
-						fPatcher.applyAll(getTarget(), monitor);
-					} catch (CoreException e) {
-						throw new InvocationTargetException(e);
-					}
-				}
-			};
-			getContainer().run(true, false, op);
-
-		} catch (InvocationTargetException e) {
-			ExceptionHandler.handle(e,
-					PatchMessages.getString("PatchWizard.title"),	//$NON-NLS-1$ 
-					PatchMessages.getString("PatchWizard.unexpectedException.message"));	//$NON-NLS-1$
-		} catch (InterruptedException e) {
-			// cannot happen
-		}
-		
-		// Save the dialog settings
-		if (fHasNewDialogSettings) {
-			IDialogSettings workbenchSettings= CompareUIPlugin.getDefault().getDialogSettings();
-			IDialogSettings section= workbenchSettings.getSection(DIALOG_SETTINGS_KEY);
-			section= workbenchSettings.addNewSection(DIALOG_SETTINGS_KEY);
-			setDialogSettings(section);
-		}
-		
-		fPatchWizardPage.saveWidgetValues();
-		//fPreviewPatchPage.saveWidgetValues();
-		
-		return true;
-	}
-}
-
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/Patcher.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/Patcher.java
deleted file mode 100644
index 34e193f..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/Patcher.java
+++ /dev/null
@@ -1,1052 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal.patch;
-
-import java.io.*;
-import java.text.*;
-import java.util.*;
-
-import org.eclipse.swt.SWT;
-
-import org.eclipse.jface.util.Assert;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.core.resources.*;
-
-import org.eclipse.compare.structuremergeviewer.Differencer;
-
-/**
- * A Patcher 
- * - knows how to parse various patch file formats into some in-memory structure,
- * - holds onto the parsed data and the options to use when applying the patches,
- * - knows how to apply the patches to files and folders.
- */
-public class Patcher {
-	
-	private static final boolean DEBUG= false;
-	
-	private static final String DEV_NULL= "/dev/null"; //$NON-NLS-1$
-	
-	private static final String REJECT_FILE_EXTENSION= ".rej"; //$NON-NLS-1$
-	
-	private static final String MARKER_TYPE= "org.eclipse.compare.rejectedPatchMarker";	//$NON-NLS-1$
-
-	// diff formats
-//	private static final int CONTEXT= 0;
-//	private static final int ED= 1;
-//	private static final int NORMAL= 2;
-//	private static final int UNIFIED= 3;
-	
-	// we recognize the following date/time formats
-	private static DateFormat[] DATE_FORMATS= new DateFormat[] {
-		new SimpleDateFormat("EEE MMM dd kk:mm:ss yyyy"), //$NON-NLS-1$
-		new SimpleDateFormat("yyyy/MM/dd kk:mm:ss"), //$NON-NLS-1$
-		new SimpleDateFormat("EEE MMM dd kk:mm:ss yyyy", Locale.US) //$NON-NLS-1$
-	};
-		
-	private String fName;
-	private Diff[] fDiffs;
-	// patch options
-	private int fStripPrefixSegments;
-	private int fFuzz;
-	private boolean fIgnoreWhitespace= false;
-	private boolean fIgnoreLineDelimiter= true;
-	private boolean fPreserveLineDelimiters= false;
-	private boolean fReverse= false;
-	private boolean fAdjustShift= true;
-	
-	
-	Patcher() {
-	}
-	
-	//---- options
-	
-	void setName(String name) {
-		fName= name;
-	}
-	
-	String getName() {
-		return fName;
-	}
-	
-	/**
-	 * Returns an array of Diffs after a sucessfull call to <code>parse</code>.
-	 * If <code>parse</code> hasn't been called returns <code>null</code>.
-	 */
-	Diff[] getDiffs() {
-		return fDiffs;
-	}
-	
-	IPath getPath(Diff diff) {
-		IPath path= diff.getPath();
-		if (fStripPrefixSegments > 0 && fStripPrefixSegments < path.segmentCount())
-			path= path.removeFirstSegments(fStripPrefixSegments);
-		return path;
-	}
-
-	/**
-	 * Returns <code>true</code> if new value differs from old.
-	 */
-	boolean setStripPrefixSegments(int strip) {
-		if (strip != fStripPrefixSegments) {
-			fStripPrefixSegments= strip;
-			return true;
-		}
-		return false;
-	}
-	
-	int getStripPrefixSegments() {
-		return fStripPrefixSegments;
-	}
-	
-	/**
-	 * Returns <code>true</code> if new value differs from old.
-	 */
-	boolean setFuzz(int fuzz) {
-		if (fuzz != fFuzz) {
-			fFuzz= fuzz;
-			return true;
-		}
-		return false;
-	}
-	
-	/**
-	 * Returns <code>true</code> if new value differs from old.
-	 */
-	boolean setReversed(boolean reverse) {
-		if (fReverse != reverse) {
-			fReverse= reverse;
-			
-			for (int i= 0; i < fDiffs.length; i++)
-				fDiffs[i].reverse();
-						
-			return true;
-		}
-		return false;
-	}
-		
-	/**
-	 * Returns <code>true</code> if new value differs from old.
-	 */
-	boolean setIgnoreWhitespace(boolean ignoreWhitespace) {
-		if (ignoreWhitespace != fIgnoreWhitespace) {
-			fIgnoreWhitespace= ignoreWhitespace;
-			return true;
-		}
-		return false;
-	}
-		
-	//---- parsing patch files
-		
-	/* package */ void parse(BufferedReader reader) throws IOException {
-		List diffs= new ArrayList();
-		String line= null;
-		boolean reread= false;
-		String diffArgs= null;
-		String fileName= null;
-		
-		LineReader lr= new LineReader(reader);
-		if (!"carbon".equals(SWT.getPlatform()))	//$NON-NLS-1$
-			lr.ignoreSingleCR();
-		
-		// read leading garbage
-		while (true) {
-			if (!reread)
-				line= lr.readLine();
-			reread= false;
-			if (line == null)
-				break;
-			if (line.length() < 4)
-				continue;	// too short
-								
-			// remember some infos
-			if (line.startsWith("Index: ")) { //$NON-NLS-1$
-				fileName= line.substring(7).trim();
-				continue;
-			}
-			if (line.startsWith("diff")) { //$NON-NLS-1$
-				diffArgs= line.substring(4).trim();
-				continue;
-			}
-
-			if (line.startsWith("--- ")) { //$NON-NLS-1$
-				line= readUnifiedDiff(diffs, lr, line, diffArgs, fileName);
-				diffArgs= fileName= null;
-				reread= true;
-			} else if (line.startsWith("*** ")) { //$NON-NLS-1$
-				line= readContextDiff(diffs, lr, line, diffArgs, fileName);
-				diffArgs= fileName= null;
-				reread= true;
-			}
-		}
-		
-		lr.close();
-		
-		fDiffs= (Diff[]) diffs.toArray((Diff[]) new Diff[diffs.size()]);
-	}
-
-	/**
-	 * Returns the next line that does not belong to this diff
-	 */
-	private String readUnifiedDiff(List diffs, LineReader reader, String line, String args, String fileName) throws IOException {
-								
-		String[] oldArgs= split(line.substring(4));
-
-		// read info about new file
-		line= reader.readLine();
-		if (line == null || !line.startsWith("+++ ")) //$NON-NLS-1$
-			return line;
-			
-		String[] newArgs= split(line.substring(4));
-	
-		Diff diff= new Diff(extractPath(oldArgs, 0, fileName), extractDate(oldArgs, 1),
-				   			extractPath(newArgs, 0, fileName), extractDate(newArgs, 1));
-		diffs.add(diff);
-				   
-		int[] oldRange= new int[2];
-		int[] newRange= new int[2];
-		List lines= new ArrayList();
-
-		try {
-			// read lines of hunk
-			while (true) {
-				
-				line= reader.readLine();
-				if (line == null)
-					return null;
-					
-				if (reader.lineContentLength(line) == 0) {
-					//System.out.println("Warning: found empty line in hunk; ignored");
-					//lines.add(' ' + line);
-					continue;
-				}
-				
-				char c= line.charAt(0);
-				switch (c) {
-				case '@':
-					if (line.startsWith("@@ ")) { //$NON-NLS-1$
-						// flush old hunk
-						if (lines.size() > 0) {
-							new Hunk(diff, oldRange, newRange, lines);
-							lines.clear();
-						}
-								
-						// format: @@ -oldStart,oldLength +newStart,newLength @@
-						extractPair(line, '-', oldRange);
-						extractPair(line, '+', newRange);
-						continue;
-					}
-					break;
-				case ' ':
-				case '+':
-				case '-':
-					lines.add(line);
-					continue;
-				case '\\':
-					if (line.startsWith("No newline at end of file", 2)) { //$NON-NLS-1$
-						int lastIndex= lines.size();
-						if (lastIndex > 0) {
-							line= (String) lines.get(lastIndex-1);
-							int end= line.length()-1;
-							char lc= line.charAt(end);
-							if (lc == '\n') {
-								end--;
-								if (end > 0 && line.charAt(end-1) == '\r')
-									end--;
-							} else if (lc == '\r') {
-								end--;
-							}
-							line= line.substring(0, end);
-							lines.set(lastIndex-1, line);
-						}
-						continue;
-					}
-					break;
-				default:
-					if (DEBUG) {
-						int a1= c, a2= 0;
-						if (line.length() > 1)
-							a2= line.charAt(1);
-						System.out.println("char: " + a1 + " " + a2); //$NON-NLS-1$ //$NON-NLS-2$
-					}
-					break;
-				}
-				return line;
-			}
-		} finally {
-			if (lines.size() > 0)
-				new Hunk(diff, oldRange, newRange, lines);
-			diff.finish();
-		}
-	}
-	
-	/**
-	 * Returns the next line that does not belong to this diff
-	 */
-	private String readContextDiff(List diffs, LineReader reader, String line, String args, String fileName) throws IOException {
-		
-		String[] oldArgs= split(line.substring(4));
-		
-		// read info about new file
-		line= reader.readLine();
-		if (line == null || !line.startsWith("--- ")) //$NON-NLS-1$
-			return line;
-		
-		String[] newArgs= split(line.substring(4));
-						
-		Diff diff= new Diff(extractPath(oldArgs, 0, fileName), extractDate(oldArgs, 1),
-				   			extractPath(newArgs, 0, fileName), extractDate(newArgs, 1));
-		diffs.add(diff);
-				   
-		int[] oldRange= new int[2];
-		int[] newRange= new int[2];
-		List oldLines= new ArrayList();
-		List newLines= new ArrayList();
-		List lines= oldLines;
-		
-		try {
-			// read lines of hunk
-			while (true) {
-				
-				line= reader.readLine();
-				if (line == null)
-					return line;
-				
-				int l= line.length();
-				if (l == 0)
-					continue;
-				if (l > 1) {
-					switch (line.charAt(0)) {
-					case '*':	
-						if (line.startsWith("***************")) {	// new hunk //$NON-NLS-1$
-							// flush old hunk
-							if (oldLines.size() > 0 || newLines.size() > 0) {
-								new Hunk(diff, oldRange, newRange, unifyLines(oldLines, newLines));
-								oldLines.clear();
-								newLines.clear();
-							}
-							continue;
-						}
-						if (line.startsWith("*** ")) {	// old range //$NON-NLS-1$
-							// format: *** oldStart,oldEnd ***
-							extractPair(line, ' ', oldRange);
-							oldRange[1]= oldRange[1]-oldRange[0]+1;
-							lines= oldLines;
-							continue;
-						}
-						break;
-					case ' ':	// context line
-					case '+':	// addition
-					case '!':	// change
-						if (line.charAt(1) == ' ') {
-							lines.add(line);
-							continue;
-						}
-						break;
-					case '-':
-						if (line.charAt(1) == ' ') {	// deletion
-							lines.add(line);
-							continue;
-						}
-						if (line.startsWith("--- ")) {	// new range //$NON-NLS-1$
-							// format: *** newStart,newEnd ***
-							extractPair(line, ' ', newRange);
-							newRange[1]= newRange[1]-newRange[0]+1;
-							lines= newLines;
-							continue;
-						}
-						break;
-					default:
-						break;
-					}
-				}
-				return line;
-			}
-		} finally {
-			// flush last hunk
-			if (oldLines.size() > 0 || newLines.size() > 0)
-				new Hunk(diff, oldRange, newRange, unifyLines(oldLines, newLines));
-			diff.finish();
-		}
-	}
-	
-	/**
-	 * Creates a List of lines in the unified format from
-	 * two Lists of lines in the 'classic' format.
-	 */
-	private List unifyLines(List oldLines, List newLines) {
-		List result= new ArrayList();
-
-		String[] ol= (String[]) oldLines.toArray(new String[oldLines.size()]);
-		String[] nl= (String[]) newLines.toArray(new String[newLines.size()]);
-		
-		int oi= 0, ni= 0;
-		
-		while (true) {
-			
-			char oc= 0;
-			String o= null;
-			if (oi < ol.length) {
-				o= ol[oi];
-				oc= o.charAt(0);
-			}
-			
-			char nc= 0;
-			String n= null;
-			if (ni < nl.length) {
-				n= nl[ni];
-				nc= n.charAt(0);
-			}
-			
-			// EOF
-			if (oc == 0 && nc == 0)
-				break;
-				
-			// deletion in old
-			if (oc == '-') {
-				do {
-					result.add('-' + o.substring(2));
-					oi++;
-					if (oi >= ol.length)
-						break;
-					o= ol[oi];
-				} while (o.charAt(0) == '-');
-				continue;
-			}
-			
-			// addition in new
-			if (nc == '+') {
-				do {
-					result.add('+' + n.substring(2));
-					ni++;
-					if (ni >= nl.length)
-						break;
-					n= nl[ni];
-				} while (n.charAt(0) == '+');
-				continue;
-			}
-			
-			// differing lines on both sides
-			if (oc == '!' && nc == '!') {
-				// remove old
-				do {
-					result.add('-' + o.substring(2));
-					oi++;
-					if (oi >= ol.length)
-						break;
-					o= ol[oi];
-				} while (o.charAt(0) == '!');
-				
-				// add new
-				do {
-					result.add('+' + n.substring(2));
-					ni++;
-					if (ni >= nl.length)
-						break;
-					n= nl[ni];
-				} while (n.charAt(0) == '!');
-				
-				continue;
-			}
-			
-			// context lines
-			if (oc == ' ' && nc == ' ') {
-				do {
-					Assert.isTrue(o.equals(n), "non matching context lines"); //$NON-NLS-1$
-					result.add(' ' + o.substring(2));
-					oi++;
-					ni++;
-					if (oi >= ol.length || ni >= nl.length)
-						break;
-					o= ol[oi];
-					n= nl[ni];
-				} while (o.charAt(0) == ' ' && n.charAt(0) == ' ');
-				continue;
-			}
-			
-			if (oc == ' ') {
-				do {
-					result.add(' ' + o.substring(2));
-					oi++;
-					if (oi >= ol.length)
-						break;
-					o= ol[oi];
-				} while (o.charAt(0) == ' ');
-				continue;
-			}
-
-			if (nc == ' ') {
-				do {
-					result.add(' ' + n.substring(2));
-					ni++;
-					if (ni >= nl.length)
-						break;
-					n= nl[ni];
-				} while (n.charAt(0) == ' ');
-				continue;
-			}
-			
-			Assert.isTrue(false, "unexpected char <" + oc + "> <" + nc + ">"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		}
-		
-		return result;
-	}
-	
-	/**
-	 * Breaks the given string into tab separated substrings.
-	 * Leading and trailing whitespace is removed from each token.
-	 */ 
-	private String[] split(String line) {
-		List l= new ArrayList();
-		StringTokenizer st= new StringTokenizer(line, "\t"); //$NON-NLS-1$
-		while (st.hasMoreElements()) {
-			String token= st.nextToken().trim();
-			if (token.length() > 0)
- 				l.add(token);
-		}
-		return (String[]) l.toArray(new String[l.size()]);
-	}
-	
-	/**
-	 * @return the parsed time/date in milliseconds or -1 on error
-	 */
-	private long extractDate(String[] args, int n) {
-		if (n < args.length) {
-			String line= args[n];
-			for (int i= 0; i < DATE_FORMATS.length; i++) {
-				DATE_FORMATS[i].setLenient(true);
-				try {
-					Date date= DATE_FORMATS[i].parse(line);
-					return date.getTime();		
-				} catch (ParseException ex) {
-				}
-			}
-			// System.err.println("can't parse date: <" + line + ">");
-		}
-		return -1;
-	}
-	
-	/**
-	 * Returns null if file name is "/dev/null".
-	 */
-	private IPath extractPath(String[] args, int n, String path2) {
-		if (n < args.length) {
-			String path= args[n];
-			if (DEV_NULL.equals(path))
-				return null;
-			int pos= path.lastIndexOf(':');
-			if (pos >= 0)
-				path= path.substring(0, pos);
-			if (path2 != null && !path2.equals(path)) {
-				if (DEBUG) System.out.println("path mismatch: " + path2); //$NON-NLS-1$
-				path= path2;
-			}
-			return new Path(path);
-		}
-		return null;
-	}
-	
-	/**
-	 * Tries to extract two integers separated by a comma.
-	 * The parsing of the line starts at the position after
-	 * the first occurrence of the given character start an ends
-	 * at the first blank (or the end of the line).
-	 * If only a single number is found this is assumed to be the length of the range.
-	 * In this case the start of the range is set to 1.
-	 * If an error occurs the range -1,-1 is returned.
-	 */
-	private void extractPair(String line, char start, int[] pair) {
-		pair[0]= pair[1]= -1;
-		int startPos= line.indexOf(start);
-		if (startPos < 0) {
-			if (DEBUG) System.out.println("parsing error in extractPair: couldn't find \'" + start + "\'"); //$NON-NLS-1$ //$NON-NLS-2$
-			return;
-		}
-		line= line.substring(startPos+1);
-		int endPos= line.indexOf(' ');
-		if (endPos < 0) {
-			if (DEBUG) System.out.println("parsing error in extractPair: couldn't find end blank"); //$NON-NLS-1$
-			return;
-		}
-		line= line.substring(0, endPos);
-		int comma= line.indexOf(',');
-		if (comma >= 0) {
-			pair[0]= Integer.parseInt(line.substring(0, comma));
-			pair[1]= Integer.parseInt(line.substring(comma+1));
-		} else {
-			pair[0]= 1;
-			pair[1]= Integer.parseInt(line.substring(comma+1));
-		}
-	}
-	
-	//---- applying a patch file
-	
-	/**
-	 * Tries to patch the given lines with the specified Diff.
-	 * Any hunk that couldn't be applied is returned in the list failedHunks.
-	 */
-	/* package */ void patch(Diff diff, List lines, List failedHunks) {
-		
-		int shift= 0;
-		Iterator iter= diff.fHunks.iterator();
-		while (iter.hasNext()) {
-			Hunk hunk= (Hunk) iter.next();
-			hunk.fMatches= false;
-			shift= patch(hunk, lines, shift, failedHunks);
-		}
-	}
-
-	/**
-	 * Tries to apply the specified hunk to the given lines.
-	 * If the hunk cannot be applied at the original position
-	 * the methods tries Fuzz lines before and after.
-	 * If this fails the Hunk is added to the given list of failed hunks.
-	 */
-	private int patch(Hunk hunk, List lines, int shift, List failedHunks) {
-		if (tryPatch(hunk, lines, shift)) {
-			if (hunk.isEnabled())
-				shift+= doPatch(hunk, lines, shift);
-		} else {
-			boolean found= false;
-			int oldShift= shift;
-						
-			for (int i= 1; i <= fFuzz; i++) {
-				if (tryPatch(hunk, lines, shift-i)) {
-					if (fAdjustShift)
-						shift-= i;
-					found= true;
-					break;
-				}
-			}
-			
-			if (! found) {
-				for (int i= 1; i <= fFuzz; i++) {
-					if (tryPatch(hunk, lines, shift+i)) {
-						if (fAdjustShift)
-							shift+= i;
-						found= true;
-						break;
-					}
-				}
-			}
-			
-			if (found) {
-				if (DEBUG) System.out.println("patched hunk at offset: " + (shift-oldShift)); //$NON-NLS-1$
-				shift+= doPatch(hunk, lines, shift);
-			} else {
-				if (failedHunks != null) {
-					if (DEBUG) System.out.println("failed hunk"); //$NON-NLS-1$
-					failedHunks.add(hunk);
-				}
-			}
-		}
-		return shift;
-	}
-	
-	/**
-	 * Tries to apply the given hunk on the specified lines.
-	 * The parameter shift is added to the line numbers given
-	 * in the hunk.
-	 */
-	private boolean tryPatch(Hunk hunk, List lines, int shift) {
-		int pos= hunk.fOldStart + shift;
-		int deleteMatches= 0;
-		for (int i= 0; i < hunk.fLines.length; i++) {
-			String s= hunk.fLines[i];
-			Assert.isTrue(s.length() > 0);
-			String line= s.substring(1);
-			char controlChar= s.charAt(0);
-			if (controlChar == ' ') {	// context lines
-				while (true) {
-					if (pos < 0 || pos >= lines.size())
-						return false;
-					if (linesMatch(line, (String) lines.get(pos))) {
-						pos++;
-						break;
-					}
-					return false;
-				}
-			} else if (controlChar == '-') {
-				// deleted lines
-				while (true) {
-					if (pos < 0 || pos >= lines.size())
-						return false;
-					if (linesMatch(line, (String) lines.get(pos))) {
-						deleteMatches++;
-						pos++;
-						break;
-					}
-					if (deleteMatches <= 0)
-						return false;
-					pos++;
-				}
-			} else if (controlChar == '+') {
-				// added lines
-				// we don't have to do anything for a 'try'
-			} else
-				Assert.isTrue(false, "tryPatch: unknown control character: " + controlChar); //$NON-NLS-1$
-		}
-		return true;
-	}
-	
-	private int doPatch(Hunk hunk, List lines, int shift) {
-		int pos= hunk.fOldStart + shift;
-		for (int i= 0; i < hunk.fLines.length; i++) {
-			String s= hunk.fLines[i];
-			Assert.isTrue(s.length() > 0);
-			String line= s.substring(1);
-			char controlChar= s.charAt(0);
-			if (controlChar == ' ') {	// context lines
-				while (true) {
-					Assert.isTrue(pos < lines.size(), "doPatch: inconsistency in context"); //$NON-NLS-1$
-					if (linesMatch(line, (String) lines.get(pos))) {
-						pos++;
-						break;
-					}
-					pos++;
-				}
-			} else if (controlChar == '-') {
-				// deleted lines				
-				while (true) {
-					Assert.isTrue(pos < lines.size(), "doPatch: inconsistency in deleted lines"); //$NON-NLS-1$
-					if (linesMatch(line, (String) lines.get(pos))) {
-						break;
-					}
-					pos++;
-				}
-				lines.remove(pos);
-			} else if (controlChar == '+') {
-				// added lines
-				lines.add(pos,  line);
-				pos++;
-			} else
-				Assert.isTrue(false, "doPatch: unknown control character: " + controlChar); //$NON-NLS-1$
-		}
-		hunk.fMatches= true;
-		return hunk.fNewLength - hunk.fOldLength;
-	}
-
-	public void applyAll(IResource target, IProgressMonitor pm) throws CoreException {
-		
-		final int WORK_UNIT= 10;
-				
-		IFile singleFile= null;	// file to be patched
-		IContainer container= null;
-		if (target instanceof IContainer)
-			container= (IContainer) target;
-		else if (target instanceof IFile) {
-			singleFile= (IFile) target;
-			container= singleFile.getParent();
-		} else {
-			Assert.isTrue(false);
-		}
-		
-		if (pm != null) {
-			String message= PatchMessages.getString("Patcher.Task.message");	//$NON-NLS-1$
-			pm.beginTask(message, fDiffs.length*WORK_UNIT);
-		}
-		
-		for (int i= 0; i < fDiffs.length; i++) {
-			
-			int workTicks= WORK_UNIT;
-			
-			Diff diff= fDiffs[i];
-			if (diff.isEnabled()) {
-				
-				IPath path= getPath(diff);
-				if (pm != null)
-					pm.subTask(path.toString());
-			
-				IFile file= singleFile != null
-								? singleFile
-								: createPath(container, path);
-					
-				List failed= new ArrayList();
-				List result= null;
-				
-				int type= diff.getType();
-				switch (type) {
-				case Differencer.ADDITION:
-					// patch it and collect rejected hunks
-					result= apply(diff, file, true, failed);
-					store(createString(result), file, new SubProgressMonitor(pm, workTicks));
-					workTicks-= WORK_UNIT;
-					break;
-				case Differencer.DELETION:
-					file.delete(true, true, new SubProgressMonitor(pm, workTicks));
-					workTicks-= WORK_UNIT;
-					break;
-				case Differencer.CHANGE:
-					// patch it and collect rejected hunks
-					result= apply(diff, file, false, failed);
-					store(createString(result), file, new SubProgressMonitor(pm, workTicks));
-					workTicks-= WORK_UNIT;
-					break;
-				}
-
-				if (failed.size() > 0) {
-					IPath pp= null;
-					if (path.segmentCount() > 1) {
-						pp= path.removeLastSegments(1);
-						pp= pp.append(path.lastSegment() + REJECT_FILE_EXTENSION);
-					} else
-						pp= new Path(path.lastSegment() + REJECT_FILE_EXTENSION);
-					file= createPath(container, pp);
-					if (file != null) {
-						store(getRejected(failed), file, pm);
-						try {
-							IMarker marker= file.createMarker(MARKER_TYPE);
-							marker.setAttribute(IMarker.MESSAGE, PatchMessages.getString("Patcher.Marker.message"));	//$NON-NLS-1$
-							marker.setAttribute(IMarker.PRIORITY, IMarker.PRIORITY_HIGH);
-						} catch (CoreException ex) {
-						}
-					}
-				}
-			}
-			
-			if (pm != null) {
-				if (pm.isCanceled())
-					break;
-				if (workTicks > 0)
-					pm.worked(workTicks);
-			}
-		}
-	}
-	
-	/**
-	 * Reads the contents from the given file and returns them as
-	 * a List of lines.
-	 */
-	List load(IFile file, boolean create) {
-		List lines= null;
-		if (!create && file != null) {
-			// read current contents
-			InputStream is= null;
-			try {
-				is= file.getContents();
-				
-				Reader streamReader= null;
-				try {
-					streamReader= new InputStreamReader(is, ResourcesPlugin.getEncoding());
-				} catch (UnsupportedEncodingException x) {
-					// use default encoding
-					streamReader= new InputStreamReader(is);
-				}
-				
-				BufferedReader reader= new BufferedReader(streamReader);
-				LineReader lr= new LineReader(reader);
-				if (!"carbon".equals(SWT.getPlatform()))	//$NON-NLS-1$
-					lr.ignoreSingleCR();
-				lines= lr.readLines();
-			} catch(CoreException ex) {
-			} finally {
-				if (is != null)
-					try {
-						is.close();
-					} catch(IOException ex) {
-					}
-			}
-		}
-		
-		if (lines == null)
-			lines= new ArrayList();
-		return lines;
-	}
-	
-	List apply(Diff diff, IFile file, boolean create, List failedHunks) {
-		List lines= load(file, create);
-		patch(diff, lines, failedHunks);
-		return lines;
-	}
-	
-	/**
-	 * Converts the string into bytes and stores them in the given file.
-	 */
-	private void store(String contents, IFile file, IProgressMonitor pm) throws CoreException {
-		
-		byte[] bytes;
-		try {
-			bytes= contents.getBytes(ResourcesPlugin.getEncoding());
-		} catch (UnsupportedEncodingException x) {
-			// uses default encoding
-			bytes= contents.getBytes();
-		}
-		
-		InputStream is= new ByteArrayInputStream(bytes);
-		try {
-			if (file.exists()) {
-				file.setContents(is, false, true, pm);
-			} else {
-				file.create(is, false, pm);
-			}
-		} finally {
-			if (is != null)
-				try {
-					is.close();
-				} catch(IOException ex) {
-				}
-		}
-	}
-
-	/**
-	 * Concatenates all strings found in the given List.
-	 */
-	private String createString(List lines) {
-		StringBuffer sb= new StringBuffer();
-		Iterator iter= lines.iterator();
-		if (fPreserveLineDelimiters) {
-			while (iter.hasNext())
-				sb.append((String)iter.next());
-		} else {
-			String lineSeparator= System.getProperty("line.separator"); //$NON-NLS-1$
-			while (iter.hasNext()) {
-				String line= (String)iter.next();
-				int l= length(line);
-				if (l < line.length()) {	// line has delimiter
-					sb.append(line.substring(0, l));
-					sb.append(lineSeparator);
-				} else {
-					sb.append(line);
-				}
-			}
-		}
-		return sb.toString();
-	}
-
-	String getRejected(List failedHunks) {
-		if (failedHunks.size() <= 0)
-			return null;
-		
-		String lineSeparator= System.getProperty("line.separator"); //$NON-NLS-1$
-		StringBuffer sb= new StringBuffer();
-		Iterator iter= failedHunks.iterator();
-		while (iter.hasNext()) {
-			Hunk hunk= (Hunk) iter.next();
-			sb.append(hunk.getRejectedDescription());
-			sb.append(lineSeparator);
-			sb.append(hunk.getContent());
-		}
-		return sb.toString();
-	}
-	
-	/**
-	 * Ensures that a file with the given path exists in
-	 * the given container. Folder are created as necessary.
-	 */
-	private IFile createPath(IContainer container, IPath path) throws CoreException {
-		if (path.segmentCount() > 1) {
-			IFolder f= container.getFolder(path.uptoSegment(1));
-			if (!f.exists())
-				f.create(false, true, null);
-			return createPath(f, path.removeFirstSegments(1));
-		}
-		// a leaf
-		return container.getFile(path);
-	}
-
-	/**
-	 * Returns the given string with all whitespace characters removed.
-	 * Whitespace is defined by <code>Character.isWhitespace(...)</code>.
-	 */
-	private static String stripWhiteSpace(String s) {
-		StringBuffer sb= new StringBuffer();
-		int l= s.length();
-		for (int i= 0; i < l; i++) {
-			char c= s.charAt(i);
-			if (!Character.isWhitespace(c))
-				sb.append(c);
-		}
-		return sb.toString();
-	}
-	
-	/**
-	 * Compares two strings.
-	 * If fIgnoreWhitespace is true whitespace is ignored.
-	 */
-	private boolean linesMatch(String line1, String line2) {
-		if (fIgnoreWhitespace)
-			return stripWhiteSpace(line1).equals(stripWhiteSpace(line2));
-		if (fIgnoreLineDelimiter) {
-			int l1= length(line1);
-			int l2= length(line2);
-			if (l1 != l2)
-				return false;
-			return line1.regionMatches(0, line2, 0, l1);
-		}
-		return line1.equals(line2);
-	}
-	
-	/**
-	 * Returns the length (exluding a line delimiter CR, LF, CR/LF)
-	 * of the given string.
-	 */
-	/* package */ static int length(String s) {
-		int l= s.length();
-		if (l > 0) {
-			char c= s.charAt(l-1);
-			if (c == '\r')
-				return l-1;
-			if (c == '\n') {
-				if (l > 1 && s.charAt(l-2) == '\r')
-					return l-2;
-				return l-1;
-			}
-		}
-		return l;
-	}
-
-	int calculateFuzz(Hunk hunk, List lines, int shift, IProgressMonitor pm, int[] fuzz) {
-		
-		hunk.fMatches= false;
-		if (tryPatch(hunk, lines, shift)) {
-			shift+= doPatch(hunk, lines, shift);
-			fuzz[0]= 0;
-		} else {
-			boolean found= false;
-			int hugeFuzz= lines.size();	// the maximum we need for this file
-			fuzz[0]= -2;	// not found
-			
-			for (int i= 1; i <= hugeFuzz; i++) {
-				if (pm.isCanceled()) {
-					fuzz[0]= -1;
-					return 0;
-				}
-				if (tryPatch(hunk, lines, shift-i)) {
-					fuzz[0]= i;
-					if (fAdjustShift)
-						shift-= i;
-					found= true;
-					break;
-				}
-			}
-			
-			if (! found) {
-				for (int i= 1; i <= hugeFuzz; i++) {
-					if (pm.isCanceled()) {
-						fuzz[0]= -1;
-						return 0;
-					}
-					if (tryPatch(hunk, lines, shift+i)) {
-						fuzz[0]= i;
-						if (fAdjustShift)
-							shift+= i;
-						found= true;
-						break;
-					}
-				}
-			}
-			
-			if (found)
-				shift+= doPatch(hunk, lines, shift);
-		}
-		return shift;
-	}
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PreviewPatchPage.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PreviewPatchPage.java
deleted file mode 100644
index fe43b86..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/patch/PreviewPatchPage.java
+++ /dev/null
@@ -1,729 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.internal.patch;
-
-import java.io.*;
-import java.lang.reflect.InvocationTargetException;
-import java.text.MessageFormat;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ArrayList;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.help.WorkbenchHelp;
-
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.resource.ImageDescriptor;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.*;
-
-import org.eclipse.compare.*;
-import org.eclipse.compare.internal.CompareUIPlugin;
-import org.eclipse.compare.internal.DiffImage;
-import org.eclipse.compare.internal.ICompareContextIds;
-import org.eclipse.compare.internal.TimeoutContext;
-import org.eclipse.compare.structuremergeviewer.*;
-
-
-/**
- * Shows the parsed patch file and any mismatches
- * between files, hunks and the currently selected
- * resources.
- */
-/* package */ class PreviewPatchPage extends WizardPage {
-	
-	static final int GUESS_TIMEOUT= 1500; 	// show progress after 1.5sec of fuzz factor guessing
-	
-	/**
-	 * Used with CompareInput
-	 */
-	static class HunkInput implements ITypedElement, IStreamContentAccessor {
-		String fContent;
-		String fType;
-		
-		HunkInput(String type, String s) {
-			fType= type;
-			fContent= s;
-		}
-		public Image getImage() {
-			return null;
-		}
-		public String getName() {
-			return PatchMessages.getString("PreviewPatchPage.NoName.text"); //$NON-NLS-1$
-		}
-		public String getType() {
-			return fType;
-		}
-		public InputStream getContents() {
-			return new ByteArrayInputStream(fContent.getBytes());
-		}
-	};
-		
-	private PatchWizard fPatchWizard;
-	
-	private Tree fTree;
-	private Combo fStripPrefixSegments;
-	private CompareViewerSwitchingPane fHunkViewer;
-	private Button fIgnoreWhitespaceButton;
-	private Button fReversePatchButton;
-	private Text fFuzzField;
-	
-	private Image fNullImage;
-	private Image fAddImage;
-	private Image fDelImage;
-	private Image fErrorImage;
-	private Image fErrorAddImage;
-	private Image fErrorDelImage;
-	
-	private CompareConfiguration fCompareConfiguration;
-	
-	
-	/* package */ PreviewPatchPage(PatchWizard pw) {
-		super("PreviewPatchPage",	//$NON-NLS-1$ 
-			PatchMessages.getString("PreviewPatchPage.title"), null); //$NON-NLS-1$
-		
-		setMessage(PatchMessages.getString("PreviewPatchPage.message"));	//$NON-NLS-1$
-		
-		fPatchWizard= pw;
-		//setPageComplete(false);
-		
-		int w= 16;
-		
-		ImageDescriptor addId= CompareUIPlugin.getImageDescriptor("ovr16/add_ov.gif");	//$NON-NLS-1$
-		ImageDescriptor delId= CompareUIPlugin.getImageDescriptor("ovr16/del_ov.gif");	//$NON-NLS-1$
-
-		ImageDescriptor errId= CompareUIPlugin.getImageDescriptor("ovr16/error_ov.gif");	//$NON-NLS-1$
-		Image errIm= errId.createImage();
-		
-		fNullImage= new DiffImage(null, null, w).createImage();
-		fAddImage= new DiffImage(null, addId, w).createImage();
-		fDelImage= new DiffImage(null, delId, w).createImage();
-
-		fErrorImage= new DiffImage(errIm, null, w).createImage();
-		fErrorAddImage= new DiffImage(errIm, addId, w).createImage();
-		fErrorDelImage= new DiffImage(errIm, delId, w).createImage();
-		
-		fCompareConfiguration= new CompareConfiguration();
-		
-		fCompareConfiguration.setLeftEditable(false);
-		fCompareConfiguration.setLeftLabel(PatchMessages.getString("PreviewPatchPage.Left.title")); //$NON-NLS-1$
-		
-		fCompareConfiguration.setRightEditable(false);
-		fCompareConfiguration.setRightLabel(PatchMessages.getString("PreviewPatchPage.Right.title")); //$NON-NLS-1$
-	}
-	
-	/* (non-Javadoc)
-	 * Method declared in WizardPage
-	 */
-	public void setVisible(boolean visible) {
-		if (visible)
-			buildTree();
-		super.setVisible(visible);
-	}
-
-	Image getImage(Diff diff) {
-		if (diff.fMatches) {
-			switch (diff.getType()) {
-			case Differencer.ADDITION:
-				return fAddImage;
-			case Differencer.DELETION:
-				return fDelImage;
-			}
-			return fNullImage;
-		}
-		switch (diff.getType()) {
-		case Differencer.ADDITION:
-			return fErrorAddImage;
-		case Differencer.DELETION:
-			return fErrorDelImage;
-		}
-		return fErrorImage;
-	}
-	
-	Image getImage(Hunk hunk) {
-		if (hunk.fMatches)
-			return fNullImage;
-		return fErrorImage;
-	}
-	
-	public void createControl(Composite parent) {
-
-		Composite composite= new Composite(parent, SWT.NULL);
-		composite.setLayout(new GridLayout());
-		composite.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_FILL | GridData.HORIZONTAL_ALIGN_FILL));
-
-		WorkbenchHelp.setHelp(composite, ICompareContextIds.PATCH_PREVIEW_WIZARD_PAGE);		
-
-		setControl(composite);
-		
-		buildPatchOptionsGroup(composite);
-		
-		Splitter splitter= new Splitter(composite, SWT.VERTICAL);
-		splitter.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL
-					| GridData.VERTICAL_ALIGN_FILL | GridData.GRAB_VERTICAL));
-
-		
-		// top pane showing diffs and hunks in a check box tree 
-		fTree= new Tree(splitter, SWT.CHECK | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
-		GridData gd= new GridData();
-		gd.verticalAlignment= GridData.FILL;
-		gd.horizontalAlignment= GridData.FILL;
-		gd.grabExcessHorizontalSpace= true;
-		gd.grabExcessVerticalSpace= true;
-		fTree.setLayoutData(gd);
-				
-		// bottom pane showing hunks in compare viewer 
-		fHunkViewer= new CompareViewerSwitchingPane(splitter, SWT.BORDER | SWT.FLAT) {
-			protected Viewer getViewer(Viewer oldViewer, Object input) {
-				return CompareUI.findContentViewer(oldViewer, (ICompareInput)input, this, fCompareConfiguration);
-			}
-		};
-		gd= new GridData();
-		gd.verticalAlignment= GridData.FILL;
-		gd.horizontalAlignment= GridData.FILL;
-		gd.grabExcessHorizontalSpace= true;
-		gd.grabExcessVerticalSpace= true;
-		fHunkViewer.setLayoutData(gd);
-		
-		// register listeners
-		
-		fTree.addSelectionListener(
-			new SelectionAdapter() {
-				public void widgetSelected(SelectionEvent e) {
-					TreeItem ti= (TreeItem) e.item;
-					Object data= e.item.getData();
-					if (e.detail == SWT.CHECK) {
-						boolean checked= ti.getChecked();
-						if (data instanceof Hunk) {
-							Hunk hunk= (Hunk) data;
-							checked= checked && hunk.fMatches;
-							//hunk.setEnabled(checked);
-							ti.setChecked(checked);
-							updateGrayedState(ti);
-						} else if (data instanceof Diff) {
-							updateCheckedState(ti);
-						}
-					} else {
-						if (data instanceof Hunk)
-							PreviewPatchPage.this.fHunkViewer.setInput(createInput((Hunk)data));
-						else
-							PreviewPatchPage.this.fHunkViewer.setInput(null);
-					}
-				}
-			}
-		);
-		
-		// creating tree's content
-		buildTree();
-		Dialog.applyDialogFont(composite);		
-	}
-	
-	/**
-	 *	Create the group for setting various patch options
-	 */
-	private void buildPatchOptionsGroup(Composite parent) {
-		
-		GridLayout gl;
-		GridData gd;
-		Label l;
-				
-		final Patcher patcher= fPatchWizard.getPatcher();
-		
-		Group group= new Group(parent, SWT.NONE);
-		group.setText(PatchMessages.getString("PreviewPatchPage.PatchOptions.title")); //$NON-NLS-1$
-		gl= new GridLayout(); gl.numColumns= 4; gl.marginHeight= 0;
-		group.setLayout(gl);
-		group.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL));
-	
-		// 1st row
-		
-		Composite pair= new Composite(group, SWT.NONE);
-		gl= new GridLayout(); gl.numColumns= 2; gl.marginHeight= gl.marginWidth= 0;
-		pair.setLayout(gl);
-		gd= new GridData(GridData.HORIZONTAL_ALIGN_FILL);
-		pair.setLayoutData(gd);
-		
-			l= new Label(pair, SWT.NONE);
-			l.setText(PatchMessages.getString("PreviewPatchPage.IgnoreSegments.text")); //$NON-NLS-1$
-			gd= new GridData(GridData.VERTICAL_ALIGN_CENTER | GridData.HORIZONTAL_ALIGN_BEGINNING | GridData.GRAB_HORIZONTAL);
-			l.setLayoutData(gd);
-
-			fStripPrefixSegments= new Combo(pair, SWT.DROP_DOWN | SWT.READ_ONLY | SWT.SIMPLE);
-			int prefixCnt= patcher.getStripPrefixSegments();
-			String prefix= Integer.toString(prefixCnt);
-			fStripPrefixSegments.add(prefix);
-			fStripPrefixSegments.setText(prefix);
-			gd= new GridData(GridData.VERTICAL_ALIGN_CENTER | GridData.HORIZONTAL_ALIGN_END);
-			fStripPrefixSegments.setLayoutData(gd);
-		
-		addSpacer(group);
-		
-		fReversePatchButton= new Button(group, SWT.CHECK);
-		fReversePatchButton.setText(PatchMessages.getString("PreviewPatchPage.ReversePatch.text")); //$NON-NLS-1$
-		
-		addSpacer(group);
-		
-		// 2nd row
-		pair= new Composite(group, SWT.NONE);
-		gl= new GridLayout(); gl.numColumns= 3; gl.marginHeight= gl.marginWidth= 0;
-		pair.setLayout(gl);
-		gd= new GridData(GridData.HORIZONTAL_ALIGN_FILL);
-		pair.setLayoutData(gd);
-	
-			l= new Label(pair, SWT.NONE);
-			l.setText(PatchMessages.getString("PreviewPatchPage.FuzzFactor.text")); //$NON-NLS-1$
-			l.setToolTipText(PatchMessages.getString("PreviewPatchPage.FuzzFactor.tooltip")); //$NON-NLS-1$
-			gd= new GridData(GridData.VERTICAL_ALIGN_CENTER | GridData.HORIZONTAL_ALIGN_BEGINNING | GridData.GRAB_HORIZONTAL);
-			l.setLayoutData(gd);
-						
-			fFuzzField= new Text(pair, SWT.BORDER);
-			fFuzzField.setText("2"); //$NON-NLS-1$
-			gd= new GridData(GridData.VERTICAL_ALIGN_CENTER | GridData.HORIZONTAL_ALIGN_END); gd.widthHint= 30;
-			fFuzzField.setLayoutData(gd);
-	
-			Button b= new Button(pair, SWT.PUSH);
-			b.setText(PatchMessages.getString("PreviewPatchPage.GuessFuzz.text"));	//$NON-NLS-1$
-			b.addSelectionListener(
-				new SelectionAdapter() {
-					public void widgetSelected(SelectionEvent e) {
-						int fuzz= guessFuzzFactor(patcher);
-						if (fuzz >= 0)
-							fFuzzField.setText(Integer.toString(fuzz));
-					}
-				}
-			);
-			gd= new GridData(GridData.VERTICAL_ALIGN_CENTER);
-			b.setLayoutData(gd);
-		
-		addSpacer(group);
-		
-		fIgnoreWhitespaceButton= new Button(group, SWT.CHECK);
-		fIgnoreWhitespaceButton.setText(PatchMessages.getString("PreviewPatchPage.IgnoreWhitespace.text")); //$NON-NLS-1$
-		
-		addSpacer(group);
-				
-		// register listeners
-			
-		if (fStripPrefixSegments != null) 
-			fStripPrefixSegments.addSelectionListener(
-				new SelectionAdapter() {
-					public void widgetSelected(SelectionEvent e) {
-						if (patcher.setStripPrefixSegments(getStripPrefixSegments()))
-							updateTree();
-					}
-				}
-			);
-		fReversePatchButton.addSelectionListener(
-			new SelectionAdapter() {
-				public void widgetSelected(SelectionEvent e) {
-					if (patcher.setReversed(fReversePatchButton.getSelection()))
-						updateTree();
-				}
-			}
-		);
-		fIgnoreWhitespaceButton.addSelectionListener(
-			new SelectionAdapter() {
-				public void widgetSelected(SelectionEvent e) {
-					if (patcher.setIgnoreWhitespace(fIgnoreWhitespaceButton.getSelection()))
-						updateTree();
-				}
-			}
-		);
-		
-		fFuzzField.addModifyListener(
-			new ModifyListener() {
-				public void modifyText(ModifyEvent e) {
-					if (patcher.setFuzz(getFuzzFactor()))
-						updateTree();
-				}
-			}
-		);
-	}
-	
-	private int guessFuzzFactor(final Patcher patcher) {
-		final int strip= getStripPrefixSegments();
-		final int[] result= new int[1];
-		try {
-			TimeoutContext.run(true, GUESS_TIMEOUT, getControl().getShell(),
-				new IRunnableWithProgress() {
-					public void run(IProgressMonitor monitor) throws InterruptedException, InvocationTargetException {
-						result[0]= guess(patcher, monitor, strip);
-					}
-				}
-			);
-			return result[0];
-		} catch (InvocationTargetException ex) {
-		} catch (InterruptedException ex) {
-		}
-		return -1;
-	}
-	
-	private int guess(Patcher patcher, IProgressMonitor pm, int strip) {
-		
-		Diff[] diffs= patcher.getDiffs();
-		if (diffs == null || diffs.length <= 0)
-			return -1;
-		
-		// now collect files and determine "work"
-		IFile[] files= new IFile[diffs.length];
-		int work= 0;
-		for (int i= 0; i < diffs.length; i++) {
-			Diff diff= diffs[i];
-			if (diff == null)
-				continue;
-			if (diff.getType() != Differencer.ADDITION) {
-				IPath p= diff.fOldPath;
-				if (strip > 0 && strip < p.segmentCount())
-					p= p.removeFirstSegments(strip);
-				IFile file= existsInSelection(p);
-				if (file != null) {
-					files[i]= file;
-					work+= diff.fHunks.size();
-				}
-			}	
-		}
-		
-		// do the "work"
-		int[] fuzzRef= new int[1];
-		String format= PatchMessages.getString("PreviewPatchPage.GuessFuzzProgress.format");	//$NON-NLS-1$
-		pm.beginTask(PatchMessages.getString("PreviewPatchPage.GuessFuzzProgress.text"), work);	//$NON-NLS-1$
-		try {
-			int fuzz= 0;
-			for (int i= 0; i < diffs.length; i++) {
-				Diff d= diffs[i];
-				IFile file= files[i];
-				if (d != null && file != null) {
-					List lines= patcher.load(file, false);
-					String name= d.getPath().lastSegment();
-					Iterator iter= d.fHunks.iterator();
-					int shift= 0;
-					for (int hcnt= 1; iter.hasNext(); hcnt++) {
-						pm.subTask(MessageFormat.format(format, new String[] { name, Integer.toString(hcnt) } ));
-						Hunk h= (Hunk) iter.next();
-						shift= patcher.calculateFuzz(h, lines, shift, pm, fuzzRef);
-						int f= fuzzRef[0];
-						if (f == -1)	// cancel
-							return -1;
-						if (f > fuzz)
-							fuzz= f;
-						pm.worked(1);
-					}
-				}
-			}
-			return fuzz;
-		} finally {
-			pm.done();
-		}
-	}
-	
-	ICompareInput createInput(Hunk hunk) {
-		
-		String[] lines= hunk.fLines;
-		StringBuffer left= new StringBuffer();
-		StringBuffer right= new StringBuffer();
-		
-		for (int i= 0; i < lines.length; i++) {
-			String line= lines[i];
-			String rest= line.substring(1);
-			switch (line.charAt(0)) {
-			case ' ':
-				left.append(rest);
-				right.append(rest);
-				break;
-			case '-':
-				left.append(rest);
-				break;
-			case '+':
-				right.append(rest);
-				break;
-			}
-		}
-		
-		Diff diff= hunk.fParent;
-		IPath path= diff.getPath();
-		String type= path.getFileExtension();
-		
-		return new DiffNode(new HunkInput(type, left.toString()), new HunkInput(type, right.toString()));
-	}		
-	
-	/**
-	 * Builds a tree from list of Diffs.
-	 * As a side effect it calculates the maximum number of segments
-	 * in all paths.
-	 */
-	private void buildTree() {
-		setPageComplete(true);
-		if (fTree != null && !fTree.isDisposed()) {
-			fTree.removeAll();
-			fHunkViewer.setInput(null);
-			
-			int length= 99;
-			
-			Diff[] diffs= fPatchWizard.getPatcher().getDiffs();			
-			if (diffs != null) {
-				for (int i= 0; i < diffs.length; i++) {
-					Diff diff= diffs[i];
-					TreeItem d= new TreeItem(fTree, SWT.NULL);
-					d.setData(diff);
-					d.setImage(getImage(diff));
-					
-					if (diff.fOldPath != null)
-						length= Math.min(length, diff.fOldPath.segmentCount());
-					if (diff.fNewPath != null)
-						length= Math.min(length, diff.fNewPath.segmentCount());
-					
-					java.util.List hunks= diff.fHunks;
-					java.util.Iterator iter= hunks.iterator();
-					while (iter.hasNext()) {
-						Hunk hunk= (Hunk) iter.next();
-						TreeItem h= new TreeItem(d, SWT.NULL);
-						h.setData(hunk);
-						h.setText(hunk.getDescription());
-					}
-				}
-			}
-			if (fStripPrefixSegments != null && length != 99)
-				for (int i= 1; i < length; i++)
-					fStripPrefixSegments.add(Integer.toString(i));
-		}
-		
-		updateTree();
-	}
-	
-	private IFile existsInSelection(IPath path) {
-		IResource target= fPatchWizard.getTarget();
-		if (target instanceof IFile) {	// special case
-			IFile file= (IFile) target;
-			if (matches(file.getFullPath(), path))
-				return file;
-		} else if (target instanceof IContainer) {
-			IContainer c= (IContainer) target;
-			if (c.exists(path))
-				return c.getFile(path);
-		}
-		return null;
-	}
-	
-	/**
-	 * Returns true if path completely matches the end of fullpath
-	 */
-	private boolean matches(IPath fullpath, IPath path) {
-		
-		for (IPath p= fullpath; path.segmentCount() <= p.segmentCount();
-												p= p.removeFirstSegments(1)) {
-			if (p.equals(path))
-				return true;
-		}
-		return false;
-	}
-	
-	/**
-	 * Updates label and checked state of tree items.
-	 */
-	private void updateTree() {
-		if (fTree == null || fTree.isDisposed())
-			return;
-		int strip= getStripPrefixSegments();
-		TreeItem[] children= fTree.getItems();
-		for (int i= 0; i < children.length; i++) {
-			TreeItem item= children[i];
-			Diff diff= (Diff) item.getData();
-			diff.fMatches= false;
-			String error= null;
-			
-			boolean create= false;	
-			IFile file= null;
-			if (diff.getType() == Differencer.ADDITION) {
-				IPath p= diff.fNewPath;
-				if (strip > 0 && strip < p.segmentCount())
-					p= p.removeFirstSegments(strip);
-				file= existsInSelection(p);
-				if (file == null) {
-					diff.fMatches= true;
-				} else {
-					// file already exists
-					error= PatchMessages.getString("PreviewPatchPage.FileExists.error"); //$NON-NLS-1$
-				}
-				create= true;
-			} else {
-				IPath p= diff.fOldPath;
-				if (strip > 0 && strip < p.segmentCount())
-					p= p.removeFirstSegments(strip);
-				file= existsInSelection(p);
-				diff.fMatches= false;
-				if (file != null) {
-					if (file.isReadOnly()) {
-						// file is readonly
-						error= PatchMessages.getString("PreviewPatchPage.FileIsReadOnly.error"); //$NON-NLS-1$
-						file= null;
-					} else {
-						diff.fMatches= true;
-					}
-				} else {
-					// file doesn't exist
-					error= PatchMessages.getString("PreviewPatchPage.FileDoesNotExist.error"); //$NON-NLS-1$
-				}
-			}
-			
-			ArrayList failedHunks= new ArrayList();
-			Patcher patcher= fPatchWizard.getPatcher();
-			patcher.setFuzz(getFuzzFactor());
-			patcher.apply(diff, file, create, failedHunks);
-
-			if (failedHunks.size() > 0)
-				diff.fRejected= fPatchWizard.getPatcher().getRejected(failedHunks);
-			
-			int checkedSubs= 0;	// counts checked hunk items
-			TreeItem[] hunkItems= item.getItems();
-			for (int h= 0; h < hunkItems.length; h++) {
-				Hunk hunk= (Hunk) hunkItems[h].getData();
-				boolean failed= failedHunks.contains(hunk);
-				String hunkError= null;
-				if (failed)
-					hunkError= PatchMessages.getString("PreviewPatchPage.NoMatch.error"); //$NON-NLS-1$
-
-				boolean check= !failed;
-				hunkItems[h].setChecked(check);
-				if (check)
-					checkedSubs++;
-
-				String hunkLabel= hunk.getDescription();
-				if (hunkError != null)
-					hunkLabel+= "   " + hunkError; //$NON-NLS-1$
-				hunkItems[h].setText(hunkLabel);
-				hunkItems[h].setImage(getImage(hunk));
-			}
-			
-			String label= diff.getDescription(strip);
-			if (error != null)
-				label+= "    " + error; //$NON-NLS-1$
-			item.setText(label);
-			item.setImage(getImage(diff));
-			item.setChecked(checkedSubs > 0);
-			boolean gray= (checkedSubs > 0 &&  checkedSubs < hunkItems.length);
-			item.setGrayed(gray);
-			item.setExpanded(gray);
-		}
-		setPageComplete(updateModel());
-	}
-	
-	/**
-	 * Updates the gray state of the given diff and the checked state of its children.
-	 */
-	private void updateCheckedState(TreeItem diffItem) {
-		boolean checked= diffItem.getChecked();
-		// check whether we can enable all hunks
-		TreeItem[] hunks= diffItem.getItems();
-		int checkedCount= 0;
-		for (int i= 0; i < hunks.length; i++) {
-			Hunk hunk= (Hunk) hunks[i].getData();
-			if (checked) {
-				if (hunk.fMatches) {
-					hunks[i].setChecked(true);
-					checkedCount++;
-				}
-			} else {
-				hunks[i].setChecked(false);
-			}
-		}
-		diffItem.setGrayed(checkedCount > 0 && checkedCount < hunks.length);
-		diffItem.setChecked(checkedCount > 0);
-		
-		setPageComplete(updateModel());
-	}
-	
-	/**
-	 * Updates the gray state of the given items parent.
-	 */
-	private void updateGrayedState(TreeItem hunk) {
-		TreeItem diff= hunk.getParentItem();
-		TreeItem[] hunks= diff.getItems();
-		int checked= 0;
-		for (int i= 0; i < hunks.length; i++)
-			if (hunks[i].getChecked())
-				checked++;
-		diff.setChecked(checked > 0);
-		diff.setGrayed(checked > 0 && checked < hunks.length);
-		
-		setPageComplete(updateModel());
-	}
-	
-	private void addSpacer(Composite parent) {
-		Label label= new Label(parent, SWT.NONE);
-		GridData gd= new GridData(GridData.FILL_HORIZONTAL);
-		gd.widthHint= 20;
-		label.setLayoutData(gd);
-	}
-	
-	private int getStripPrefixSegments() {
-		int stripPrefixSegments= 0;
-		if (fStripPrefixSegments != null) {
-			String s= fStripPrefixSegments.getText();
-			try {
-				stripPrefixSegments= Integer.parseInt(s);
-			} catch(NumberFormatException ex) {
-			}
-		}
-		return stripPrefixSegments;
-	}
-	
-	private int getFuzzFactor() {
-		int fuzzFactor= 0;
-		if (fFuzzField != null) {
-			String s= fFuzzField.getText();
-			try {
-				fuzzFactor= Integer.parseInt(s);
-			} catch(NumberFormatException ex) {
-			}
-		}
-		return fuzzFactor;
-	}
-	
-	public boolean updateModel() {
-		boolean atLeastOneIsEnabled= false;
-		if (fTree != null && !fTree.isDisposed()) {
-			TreeItem [] diffItems= fTree.getItems();
-			for (int i= 0; i < diffItems.length; i++) {
-				TreeItem diffItem= diffItems[i];
-				Object data= diffItem.getData();
-				if (data instanceof Diff) {
-					Diff diff= (Diff) data;
-					boolean b= diffItem.getChecked();
-					diff.setEnabled(b);
-					if (b) {
-						TreeItem [] hunkItems= diffItem.getItems();
-						for (int j= 0; j < hunkItems.length; j++) {
-							TreeItem hunkItem= hunkItems[j];
-							data= hunkItem.getData();
-							if (data instanceof Hunk) {
-								Hunk hunk= (Hunk) data;
-								b= hunkItem.getChecked();
-								hunk.setEnabled(b);
-								if (b) {
-									atLeastOneIsEnabled= true;
-								}
-							}
-						}
-					}
-				}
-			}
-		}
-		return atLeastOneIsEnabled;
-	}
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/package.html b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/package.html
deleted file mode 100644
index 1963dd4..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/package.html
+++ /dev/null
@@ -1,99 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="Author" content="IBM">
-   <meta name="GENERATOR" content="Mozilla/4.75 [en] (WinNT; U) [Netscape]">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-Provides support for performing structural and textual
-compare operations on arbitrary data and displaying the results.
-<h2>
-Package Specification</h2>
-
-The class <b>CompareUI</b> defines the entry point to initiate a configurable
-compare operation on arbitrary resources. The result of the compare is
-opened into a compare editor where the details can be browsed and edited
-in dynamically selected structure and content viewers.
-<p>
-
-A compare operation must be implemented as a subclass of <b>CompareEditorInput</b>.
-A <b>CompareEditorInput</b> runs a (potentially lengthy) compare operation
-under progress monitor control, creates a UI for drilling-down into the
-compare results, tracks the dirty state of the result in case of merge,
-and saves any changes that occured during a merge.
-<p>
-
-The <b>NavigationAction</b> is used to navigate (step) through the individual
-differences of a <b>CompareEditorInput</b>.
-<p>
-
-An instance of <b>CompareConfiguration</b> configures various UI aspects
-of compare/merge viewers like title labels and images, or whether a side
-of a merge viewer is editable. It is passed to the <b>CompareEditorInput</b>
-on creation.
-<p>
-
-When implementing a hierarchical compare operation as a subclass of
-<b>CompareEditorInput</b> clients have to provide a tree of objects where each
-node implements the interface
-<b>org.eclipse.compare.structuremergeviewer.IStructureComparator</b>.
-This interface is used by the hierarchical differencing engine
-(<b>org.eclipse.compare.structuremergeviewer.Differencer</b>) to walk the tree.
-<br>
-In addition every leaf of the tree must implement the <b>IStreamContentAccessor</b>
-interface in order to give the differencing engine access to its stream content.
-<p>
-
-The abstract class <b>BufferedContent</b> provides a default implementation
-for the <b>IStreamContentAccessor</b> and <b>IContentChangeNotifier</b> interfaces.
-Its subclass <b>ResourceNode</b> adds an implementation for the
-<b>IStructureComparator</b> and <b>ITypedElement</b> interfaces
-based on Eclipse workbench resources (org.eclipse.core.resources.IResource). 
-It can be used without modification as the input to the differencing engine.
-<p>
-
-The <b>ZipFileStructureCreator</b> is an implementation of the
-<b>org.eclipse.compare.structuremergeviewer.IStructureCreator</b> interface
-and makes the contents of a zip archive available as a
-hierarchical structure of <b>IStructureComparator</b>s which can be easily compared
-by the differencing engine (<b>org.eclipse.compare.structuremergeviewer.Differencer</b>).
-It is a good example for how to make structured files available to the hierarchical 
-compare functionality of the Compare plugin.
-<p>
-
-The <b>EditionSelectionDialog</b> is a simple selection dialog where
-one input element can be compared against a list of historic variants (<i>editions</i>)
-of the same input element. The dialog can be used to implement functions
-like <i>"Replace with Version"</i> or <i>"Replace with Edition"</i> on workbench resources.
-<p>
-
-In addition it is possible to specify a subsection of the input element
-(e.g. a method in a Java source file) by means of a <i>path</i>. In this
-case the dialog compares only the subsection (as specified by the path)
-with the corresponding subsection in the list of editions. This functionality
-can be used to implement <i>"Replace with Method Edition"</i> for the Java
-language.
-<p>
-
-The <b>EditionSelectionDialog</b> requires that the editions implement
-the <b>IStreamContentAccessor</b> and <b>IModificationDate</b> interfaces.
-The <b>HistoryItem</b> is a convenience class that implements these interfaces
-for <b>IFileState</b> objects.
-<p>
-
-
-The <b>CompareViewerPane</b> is a convenience class which provides
-a label and local toolbar for a compare viewer (or any other subclass of a 
-JFace <b>Viewer</b>).
-<br>
-Its abstract subclass <b>CompareViewerSwitchingPane</b> supports <i>dynamic
-viewer switching</i>, that is the viewer installed in the pane is dynamically 
-determined by the pane's input object.
-Both classes are useful if you want to use compare viewers outside the context of
-a compare editor, for example in a dialog or wizard.
-
-
-</body>
-</html>
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/rangedifferencer/DifferencesIterator.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/rangedifferencer/DifferencesIterator.java
deleted file mode 100644
index bab4342..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/rangedifferencer/DifferencesIterator.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.rangedifferencer;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * A custom iterator to iterate over a List of <code>RangeDifferences</code>.
- * It is used internally by the <code>RangeDifferencer</code>.
- */
-/* package */ class DifferencesIterator {
-
-	List fRange;
-	int fIndex;
-	RangeDifference[] fArray;	
-	RangeDifference fDifference;
-	
-	/**
-	 * Creates a differences iterator on an array of <code>RangeDifference</code>s.
-	 */
-	DifferencesIterator(RangeDifference[] differenceRanges) {
-		
-		fArray= differenceRanges;
-		fIndex= 0;
-		fRange= new ArrayList();
-		if (fIndex < fArray.length)
-			fDifference= fArray[fIndex++];
-		else
-			fDifference= null;
-	}
-
-	/**
-	  * Returns the number of RangeDifferences
-	  */
-	int getCount() {
-		return fRange.size();
-	}
-
-	/**
-	 * Appends the edit to its list and moves to the next <code>RangeDifference</code>.
-	 */
-	void next() {
-		fRange.add(fDifference);
-		if (fDifference != null) {
-			if (fIndex < fArray.length)
-				fDifference= fArray[fIndex++];
-			else
-				fDifference= null;
-		}
-	}
-
-	/**
-	 * Difference iterators are used in pairs.
-	 * This method returns the other iterator.
-	 */
-	DifferencesIterator other(DifferencesIterator right, DifferencesIterator left) {
-		if (this == right)
-			return left;
-		return right;
-	}
-
-	/**
-	  * Removes all <code>RangeDifference</code>s
-	  */
-	void removeAll() {
-		fRange.clear();
-	}
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/rangedifferencer/IRangeComparator.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/rangedifferencer/IRangeComparator.java
deleted file mode 100644
index e4f87ad..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/rangedifferencer/IRangeComparator.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.rangedifferencer;
-
-/**
- * For breaking an object to compare into a sequence of comparable entities.
- * <p>
- * It is used by <code>RangeDifferencer</code> to find longest sequences of
- * matching and non-matching ranges.
- * <p>
- * For example, to compare two text documents and find longest common sequences
- * of matching and non-matching lines, the implementation must break the document
- * into lines. <code>getRangeCount</code> would return the number of lines in the 
- * document, and <code>rangesEqual</code> would compare a specified line given 
- * with one in another <code>IRangeComparator</code>.
- * </p>
- * <p>
- * Clients should implement this interface; there is no standard implementation.
- * </p>
- */
-public interface IRangeComparator {
-
-	/**
-	 * Returns the number of comparable entities.
-	 *
-	 * @return the number of comparable entities 
-	 */
-	int getRangeCount();
-
-	/**
-	 * Returns whether the comparable entity given by the first index
-	 * matches an entity specified by the other <code>IRangeComparator</code> and index.
-	 *
-	 * @param thisIndex the index of the comparable entity within this <code>IRangeComparator</code>
-	 * @param other the IRangeComparator to compare this with
-	 * @param otherIndex the index of the comparable entity within the other <code>IRangeComparator</code>
-	 * @return <code>true</code> if the comparable entities are equal
-	 */
-	boolean rangesEqual(int thisIndex, IRangeComparator other, int otherIndex);
-
-	/**
-	 * Returns whether a comparison should be skipped because it would be too costly (or lengthy).
-	 * 
-	 * @param length a number on which to base the decision whether to return
-	 * 	<code>true</code> or <code>false</code>
-	 * @param maxLength another number on which to base the decision whether to return
-	 *	<code>true</code> or <code>false</code>
-	 * @param other the other <code>IRangeComparator</code> to compare with
-	 * @return <code>true</code> to avoid a too lengthy range comparison
-	 */
-	boolean skipRangeComparison(int length, int maxLength, IRangeComparator other);
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/rangedifferencer/LinkedRangeDifference.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/rangedifferencer/LinkedRangeDifference.java
deleted file mode 100644
index 468888f..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/rangedifferencer/LinkedRangeDifference.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.rangedifferencer;
-
-/* package */ class LinkedRangeDifference extends RangeDifference {
-
-	static final int INSERT= 0;
-	static final int DELETE= 1;
-
-	LinkedRangeDifference fNext;
-
-	/**
-	 * Creates a LinkedRangeDifference an initializes it to the error state
-	 */
-	LinkedRangeDifference() {
-		super(ERROR);
-		fNext= null;
-	}
-
-	/**
-	 * Constructs and links a LinkeRangeDifference to another LinkedRangeDifference
-	 */
-	LinkedRangeDifference(LinkedRangeDifference next, int operation) {
-		super(operation);
-		fNext= next;
-	}
-
-	/**
-	 * Follows the next link
-	 */
-	LinkedRangeDifference getNext() {
-		return fNext;
-	}
-
-	boolean isDelete() {
-		return kind() == DELETE;
-	}
-
-	boolean isInsert() {
-		return kind() == INSERT;
-	}
-
-	/**
-	 * Sets the next link of this LinkedRangeDifference
-	 */
-	void setNext(LinkedRangeDifference next) {
-		fNext= next;
-	}
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/rangedifferencer/RangeDifference.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/rangedifferencer/RangeDifference.java
deleted file mode 100644
index 296cb96..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/rangedifferencer/RangeDifference.java
+++ /dev/null
@@ -1,208 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.rangedifferencer;
-
-/**
- * Description of a change between two or three ranges of comparable entities.
- * <p>
- * <code>RangeDifference</code> objects are the elements of a compare result returned from
- * the <code>RangeDifferencer</code> <code>find* </code> methods.
- * Clients use these objects as they are returned from the differencer.
- * This class is not intended to be instantiated or subclassed.
- * <p>
- * Note: A range in the <code>RangeDifference</code> object is given as a start index
- * and length in terms of comparable entities. However, these entity indices and counts
- * are not necessarily character positions. For example, if an entity represents a line
- * in a document, the start index would be a line number and the count would be in lines.
- * </p>
- *
- * @see RangeDifferencer
- */
-public class RangeDifference {
-
-	/** Two-way change constant indicating no change. */
-	public final static int NOCHANGE= 0;
-	/** Two-way change constant indicating two-way change (same as <code>RIGHT</code>) */
-	public final static int CHANGE= 2;
-
-	/** Three-way change constant indicating a change in both right and left. */
-	public final static int CONFLICT= 1;
-	/** Three-way change constant indicating a change in right. */
-	public final static int RIGHT= 2;
-	/** Three-way change constant indicating a change in left. */
-	public final static int LEFT= 3;
-	/**
-	 * Three-way change constant indicating the same change in both right and left,
-	 * that is only the ancestor is different.
-	 */
-	public final static int ANCESTOR= 4;
-	
-	/** Constant indicating an unknown change kind. */
-	public final static int ERROR= 5;
-
-	/** the kind of change: NOCHANGE, CHANGE, LEFT, RIGHT, ANCESTOR, CONFLICT, ERROR */
-	int fKind;
-
-	int fLeftStart;
-	int fLeftLength;
-	int fRightStart;
-	int fRightLength;
-	int lAncestorStart;
-	int lAncestorLength;
-	
-	/**
-	 * Creates a new range difference with the given change kind.
-	 *
-	 * @param changeKind the kind of change
-	 */
-	/* package */ RangeDifference(int changeKind) {
-		fKind= changeKind;
-	}
-
-	/**
-	 * Creates a new <code>RangeDifference</code> with the given change kind
-	 * and left and right ranges.
-	 *
-	 * @param changeKind the kind of change
-	 * @param rightStart start index of entity on right side
-	 * @param rightLength number of entities on right side
-	 * @param leftStart start index of entity on left side
-	 * @param leftLength number of entities on left side
-	 */
-	/* package */ RangeDifference(int kind, int rightStart, int rightLength, int leftStart, int leftLength) {
-		fKind= kind;
-		fRightStart= rightStart;
-		fRightLength= rightLength;
-		fLeftStart= leftStart;
-		fLeftLength= leftLength;
-	}
-
-	/**
-	 * Creates a new <code>RangeDifference</code> with the given change kind
-	 * and left, right, and ancestor ranges.
-	 *
-	 * @param changeKind the kind of change
-	 * @param rightStart start index of entity on right side
-	 * @param rightLength number of entities on right side
-	 * @param leftStart start index of entity on left side
-	 * @param leftLength number of entities on left side
-	 * @param ancestorStart start index of entity on ancestor side
-	 * @param ancestorLength number of entities on ancestor side
-	 */
-	/* package */ RangeDifference(int kind, int rightStart, int rightLength, int leftStart, int leftLength,
-									int ancestorStart, int ancestorLength) {
-		this(kind, rightStart, rightLength, leftStart, leftLength);
-		lAncestorStart= ancestorStart;
-		lAncestorLength= ancestorLength;
-	}
-
-	/**
-	 * Returns the kind of difference.
-	 *
-	 * @return the kind of difference, one of
-	 * <code>NOCHANGE</code>, <code>CHANGE</code>, <code>LEFT</code>, <code>RIGHT</code>,
-	 * <code>ANCESTOR</code>, <code>CONFLICT</code>, <code>ERROR</code>
-	 */
-	public int kind() {
-		return fKind;
-	}
-
-	/**
-	 * Returns the start index of the entity range on the ancestor side.
-	 *
-	 * @return the start index of the entity range on the ancestor side
-	 */
-	public int ancestorStart() {
-		return lAncestorStart;
-	}
-
-	/**
-	 * Returns the number of entities on the ancestor side.
-	 *
-	 * @return the number of entities on the ancestor side
-	 */
-	public int ancestorLength() {
-		return lAncestorLength;
-	}
-
-	/**
-	 * Returns the end index of the entity range on the ancestor side.
-	 *
-	 * @return the end index of the entity range on the ancestor side
-	 */
-	public int ancestorEnd() {
-		return lAncestorStart + lAncestorLength;
-	}
-
-	/**
-	 * Returns the start index of the entity range on the right side.
-	 *
-	 * @return the start index of the entity range on the right side
-	 */
-	public int rightStart() {
-		return fRightStart;
-	}
-
-	/**
-	 * Returns the number of entities on the right side.
-	 *
-	 * @return the number of entities on the right side
-	 */
-	public int rightLength() {
-		return fRightLength;
-	}
-
-	/**
-	 * Returns the end index of the entity range on the right side.
-	 *
-	 * @return the end index of the entity range on the right side
-	 */
-	public int rightEnd() {
-		return fRightStart + fRightLength;
-	}
-
-	/**
-	 * Returns the start index of the entity range on the left side.
-	 *
-	 * @return the start index of the entity range on the left side
-	 */
-	public int leftStart() {
-		return fLeftStart;
-	}
-
-	/**
-	 * Returns the number of entities on the left side.
-	 *
-	 * @return the number of entities on the left side
-	 */
-	public int leftLength() {
-		return fLeftLength;
-	}
-
-	/**
-	 * Returns the end index of the entity range on the left side.
-	 *
-	 * @return the end index of the entity range on the left side
-	 */
-	public int leftEnd() {
-		return fLeftStart + fLeftLength;
-	}
-
-	/**
-	 * Returns the maximum number of entities in the left, right, and ancestor sides of this range.
-	 *
-	 * @return the maximum number of entities in the left, right, and ancestor sides of this range
-	 */
-	public int maxLength() {
-		return Math.max(fRightLength, Math.max(fLeftLength, lAncestorLength));
-	}
-}
-
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/rangedifferencer/RangeDifferencer.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/rangedifferencer/RangeDifferencer.java
deleted file mode 100644
index 9d5eb18..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/rangedifferencer/RangeDifferencer.java
+++ /dev/null
@@ -1,542 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.rangedifferencer;
-
-import java.util.*;
-
-import org.eclipse.jface.util.Assert;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-
-/**
- * A <code>RangeDifferencer</code> finds the differences between two or three <code>IRangeComparator</code>s.
- * <p>
- * To use the differencer, clients provide an <code>IRangeComparator</code>
- * that breaks their input data into a sequence of comparable entities. The differencer
- * returns the differences among these sequences as an array of <code>RangeDifference</code> objects
- * (<code>findDifferences</code> methods).
- * Every <code>RangeDifference</code> represents a single kind of difference
- * and the corresponding ranges of the underlying comparable entities in the
- * left, right, and optionally ancestor sides.
- * <p>
- * Alternatively, the <code>findRanges</code> methods not only return objects for
- * the differing ranges but for non-differing ranges too.
- * <p>
- * The algorithm used is an objectified version of one described in:
- * <it>A File Comparison Program,</it> by Webb Miller and Eugene W. Myers, 
- * Software Practice and Experience, Vol. 15, Nov. 1985.
- *
- * @see IRangeComparator
- * @see RangeDifference
- */
-public final class RangeDifferencer {
-	
-	private static final RangeDifference[] EMPTY_RESULT= new RangeDifference[0];
-	
-	/* (non Javadoc)
-	 * Non instantiatiable!
-	 */
-	private RangeDifferencer() { 
-	}
-	
-	/**
-	 * Finds the differences between two <code>IRangeComparator</code>s.
-	 * The differences are returned as an array of <code>RangeDifference</code>s.
-	 * If no differences are detected an empty array is returned.
-	 * 
-	 * @param left the left range comparator
-	 * @param right the right range comparator
-	 * @return an array of range differences, or an empty array if no differences were found
-	 */
-	public static RangeDifference[] findDifferences(IRangeComparator left, IRangeComparator right) {
-		return findDifferences((IProgressMonitor)null, left, right);
-	}
-	
-	/**
-	 * Finds the differences between two <code>IRangeComparator</code>s.
-	 * The differences are returned as an array of <code>RangeDifference</code>s.
-	 * If no differences are detected an empty array is returned.
-	 * 
-	 * @param pm if not <code>null</code> used to report progress
-	 * @param left the left range comparator
-	 * @param right the right range comparator
-	 * @return an array of range differences, or an empty array if no differences were found
-	 * @since 2.0
-	 */
-	public static RangeDifference[] findDifferences(IProgressMonitor pm, IRangeComparator left, IRangeComparator right) {
-
-		// assert that both IRangeComparators are of the same class
-		Assert.isTrue(right.getClass().equals(left.getClass()));
-
-		int rightSize= right.getRangeCount();
-		int leftSize= left.getRangeCount();
-		//
-		// Differences matrix:
-		// only the last d of each diagonal is stored, i.e., lastDiagonal[k] = row of d    
-		//
-		int diagLen= 2 * Math.max(rightSize, leftSize); // bound on the size of edit script
-		int maxDiagonal= diagLen;
-		int lastDiagonal[]= new int[diagLen + 1]; // the row containing the last d
-		// on diagonal k (lastDiagonal[k] = row)
-		int origin= diagLen / 2; // origin of diagonal 0
-
-		// script corresponding to d[k] 
-		LinkedRangeDifference script[]= new LinkedRangeDifference[diagLen + 1];
-		int row, col;
-
-		// find common prefix
-		for (row= 0; row < rightSize && row < leftSize && rangesEqual(right, row, left, row) == true; ++row)
-			;
-
-		lastDiagonal[origin]= row;
-		script[origin]= null;
-		int lower= (row == rightSize) ? origin + 1 : origin - 1;
-		int upper= (row == leftSize) ? origin - 1 : origin + 1;
-
-		if (lower > upper)
-			return EMPTY_RESULT;
-			
-		//System.out.println("findDifferences: " + maxDiagonal + " " + lower + " " + upper);
-		
-		// for each value of the edit distance
-		for (int d= 1; d <= maxDiagonal; ++d) { // d is the current edit distance
-			
-			if (pm != null)
-				pm.worked(1);
-
-			if (right.skipRangeComparison(d, maxDiagonal, left))
-				return EMPTY_RESULT; // should be something we already found
-
-			// for each relevant diagonal (-d, -d+2 ..., d-2, d)
-			for (int k= lower; k <= upper; k += 2) { // k is the current diagonal
-				LinkedRangeDifference edit;
-
-				if (pm != null && pm.isCanceled())
-					return EMPTY_RESULT;
-
-				if (k == origin - d || k != origin + d && lastDiagonal[k + 1] >= lastDiagonal[k - 1]) {
-					//
-					// move down
-					//
-					row= lastDiagonal[k + 1] + 1;
-					edit= new LinkedRangeDifference(script[k + 1], LinkedRangeDifference.DELETE);
-				} else {
-					//
-					// move right
-					//
-					row= lastDiagonal[k - 1];
-					edit= new LinkedRangeDifference(script[k - 1], LinkedRangeDifference.INSERT);
-				}
-				col= row + k - origin;
-				edit.fRightStart= row;
-				edit.fLeftStart= col;
-				Assert.isTrue(k >= 0 && k <= maxDiagonal);
-				script[k]= edit;
-
-				// slide down the diagonal as far as possible 
-				while (row < rightSize && col < leftSize && rangesEqual(right, row, left, col) == true) {
-					++row;
-					++col;
-				}
-
-				Assert.isTrue(k >= 0 && k <= maxDiagonal); // Unreasonable value for diagonal index
-				lastDiagonal[k]= row;
-
-				if (row == rightSize && col == leftSize) {
-					//showScript(script[k], right, left);
-					return createDifferencesRanges(script[k]);
-				}
-				if (row == rightSize)
-					lower= k + 2;
-				if (col == leftSize)
-					upper= k - 2;
-			}
-			--lower;
-			++upper;
-		}
-		// too many differences
-		Assert.isTrue(false);
-		return null;
-	}
-
-	/**
-	 * Finds the differences among three <code>IRangeComparator</code>s.
-	 * The differences are returned as a list of <code>RangeDifference</code>s.
-	 * If no differences are detected an empty list is returned.
-	 * If the ancestor range comparator is <code>null</code>, a two-way
-	 * comparison is performed.
-	 * 
-	 * @param ancestor the ancestor range comparator or <code>null</code>
-	 * @param left the left range comparator
-	 * @param right the right range comparator
-	 * @return an array of range differences, or an empty array if no differences were found
-	 */
-	public static RangeDifference[] findDifferences(IRangeComparator ancestor, IRangeComparator left, IRangeComparator right) {
-		return findDifferences(null, ancestor, left, right);
-	}
-	
-	/**
-	 * Finds the differences among three <code>IRangeComparator</code>s.
-	 * The differences are returned as a list of <code>RangeDifference</code>s.
-	 * If no differences are detected an empty list is returned.
-	 * If the ancestor range comparator is <code>null</code>, a two-way
-	 * comparison is performed.
-	 * 
-	 * @param pm if not <code>null</code> used to report progress
-	 * @param ancestor the ancestor range comparator or <code>null</code>
-	 * @param left the left range comparator
-	 * @param right the right range comparator
-	 * @return an array of range differences, or an empty array if no differences were found
-	 * @since 2.0
-	 */
-	public static RangeDifference[] findDifferences(IProgressMonitor pm, IRangeComparator ancestor, IRangeComparator left, IRangeComparator right) {
-
-		if (ancestor == null)
-			return findDifferences(pm, left, right);
-
-		RangeDifference[] leftAncestorScript= null;
-		RangeDifference[] rightAncestorScript= findDifferences(pm, ancestor, right);
-		if (rightAncestorScript != null)
-			leftAncestorScript= findDifferences(pm, ancestor, left);
-		if (rightAncestorScript == null || leftAncestorScript == null)
-			return null;
-
-		DifferencesIterator myIter= new DifferencesIterator(rightAncestorScript);
-		DifferencesIterator yourIter= new DifferencesIterator(leftAncestorScript);
-
-		List diff3= new ArrayList();
-		diff3.add(new RangeDifference(RangeDifference.ERROR)); // add a sentinel
-
-		int changeRangeStart= 0;
-		int changeRangeEnd= 0;
-		//
-		// Combine the two two-way edit scripts into one
-		//
-		while (myIter.fDifference != null || yourIter.fDifference != null) {
-
-			DifferencesIterator startThread;
-			myIter.removeAll();
-			yourIter.removeAll();
-			//
-			// take the next diff that is closer to the start
-			//
-			if (myIter.fDifference == null)
-				startThread= yourIter;
-			else if (yourIter.fDifference == null)
-				startThread= myIter;
-			else { // not at end of both scripts take the lowest range
-				if (myIter.fDifference.fLeftStart <= yourIter.fDifference.fLeftStart) // 2 -> common (Ancestor) change range
-					startThread= myIter;
-				else
-					startThread= yourIter;
-			}
-			changeRangeStart= startThread.fDifference.fLeftStart;
-			changeRangeEnd= startThread.fDifference.leftEnd();
-
-			startThread.next();
-			//
-			// check for overlapping changes with other thread
-			// merge overlapping changes with this range
-			//
-			DifferencesIterator other= startThread.other(myIter, yourIter);
-			while (other.fDifference != null && other.fDifference.fLeftStart <= changeRangeEnd) {
-				int newMax= other.fDifference.leftEnd();
-				other.next();
-				if (newMax >= changeRangeEnd) {
-					changeRangeEnd= newMax;
-					other= other.other(myIter, yourIter);
-				}
-			}
-			diff3.add(createRangeDifference3(myIter, yourIter, diff3, right, left, changeRangeStart, changeRangeEnd));
-		}
-
-		// remove sentinel
-		diff3.remove(0);
-		return (RangeDifference[]) diff3.toArray(EMPTY_RESULT);
-	}
-
-	/**
-	 * Finds the differences among two <code>IRangeComparator</code>s.
-	 * In contrast to <code>findDifferences</code>, the result
-	 * contains <code>RangeDifference</code> elements for non-differing ranges too.
-	 * 
-	 * @param left the left range comparator
-	 * @param right the right range comparator
-	 * @return an array of range differences
-	 */
-	public static RangeDifference[] findRanges(IRangeComparator left, IRangeComparator right) {
-		return findRanges((IProgressMonitor)null, left, right);
-	}
-	
-	/**
-	 * Finds the differences among two <code>IRangeComparator</code>s.
-	 * In contrast to <code>findDifferences</code>, the result
-	 * contains <code>RangeDifference</code> elements for non-differing ranges too.
-	 * 
-	 * @param pm if not <code>null</code> used to report progress
-	 * @param left the left range comparator
-	 * @param right the right range comparator
-	 * @return an array of range differences
-	 * @since 2.0
-	 */
-	public static RangeDifference[] findRanges(IProgressMonitor pm, IRangeComparator left, IRangeComparator right) {
-		RangeDifference[] in= findDifferences(pm, left, right);
-		List out= new ArrayList();
-
-		RangeDifference rd;
-
-		int mstart= 0;
-		int ystart= 0;
-
-		for (int i= 0; i < in.length; i++) {
-			RangeDifference es= in[i];
-
-			rd= new RangeDifference(RangeDifference.NOCHANGE, mstart, es.rightStart() - mstart, ystart, es.leftStart() - ystart);
-			if (rd.maxLength() != 0)
-				out.add(rd);
-
-			out.add(es);
-
-			mstart= es.rightEnd();
-			ystart= es.leftEnd();
-		}
-		rd= new RangeDifference(RangeDifference.NOCHANGE, mstart, right.getRangeCount() - mstart, ystart, left.getRangeCount() - ystart);
-		if (rd.maxLength() > 0)
-			out.add(rd);
-
-		return (RangeDifference[]) out.toArray(EMPTY_RESULT);
-	}
-
-	/**
-	 * Finds the differences among three <code>IRangeComparator</code>s.
-	 * In contrast to <code>findDifferences</code>, the result
-	 * contains <code>RangeDifference</code> elements for non-differing ranges too.
-	 * If the ancestor range comparator is <code>null</code>, a two-way
-	 * comparison is performed.
-	 * 
-	 * @param pm if not <code>null</code> used to report progress
-	 * @param ancestor the ancestor range comparator or <code>null</code>
-	 * @param left the left range comparator
-	 * @param right the right range comparator
-	 * @return an array of range differences
-	 */
-	public static RangeDifference[] findRanges(IRangeComparator ancestor, IRangeComparator left, IRangeComparator right) {
-		return findRanges(null, ancestor, left, right);
-	}
-	
-	/**
-	 * Finds the differences among three <code>IRangeComparator</code>s.
-	 * In contrast to <code>findDifferences</code>, the result
-	 * contains <code>RangeDifference</code> elements for non-differing ranges too.
-	 * If the ancestor range comparator is <code>null</code>, a two-way
-	 * comparison is performed.
-	 * 
-	 * @param pm if not <code>null</code> used to report progress
-	 * @param ancestor the ancestor range comparator or <code>null</code>
-	 * @param left the left range comparator
-	 * @param right the right range comparator
-	 * @return an array of range differences
-	 * @since 2.0
-	 */
-	public static RangeDifference[] findRanges(IProgressMonitor pm, IRangeComparator ancestor, IRangeComparator left, IRangeComparator right) {
-
-		if (ancestor == null)
-			return findRanges(pm, left, right);
-
-		RangeDifference[] in= findDifferences(pm, ancestor, left, right);
-		List out= new ArrayList();
-
-		RangeDifference rd;
-
-		int mstart= 0;
-		int ystart= 0;
-		int astart= 0;
-
-		for (int i= 0; i < in.length; i++) {
-			RangeDifference es= (RangeDifference) in[i];
-
-			rd= new RangeDifference(RangeDifference.NOCHANGE, mstart, es.rightStart() - mstart, ystart, es.leftStart() - ystart, astart, es.ancestorStart() - astart);
-			if (rd.maxLength() > 0)
-				out.add(rd);
-
-			out.add(es);
-
-			mstart= es.rightEnd();
-			ystart= es.leftEnd();
-			astart= es.ancestorEnd();
-		}
-		rd= new RangeDifference(RangeDifference.NOCHANGE, mstart, right.getRangeCount() - mstart, ystart, left.getRangeCount() - ystart, astart, ancestor.getRangeCount() - astart);
-		if (rd.maxLength() > 0)
-			out.add(rd);
-
-		return (RangeDifference[]) out.toArray(EMPTY_RESULT);
-	}
-
-	//---- private methods
-
-	/**
-	 * Creates a Vector of DifferencesRanges out of the LinkedRangeDifference.
-	 * It coalesces adjacent changes.
-	 * In addition, indices are changed such that the ranges are 1) open, i.e,
-	 * the end of the range is not included, and 2) are zero based.
-	 */
-	private static RangeDifference[] createDifferencesRanges(LinkedRangeDifference start) {
-
-		LinkedRangeDifference ep= reverseDifferences(start);
-		ArrayList result= new ArrayList();
-		RangeDifference es= null;
-
-		while (ep != null) {
-			es= new RangeDifference(RangeDifference.CHANGE);
-
-			if (ep.isInsert()) {
-				es.fRightStart= ep.fRightStart + 1;
-				es.fLeftStart= ep.fLeftStart;
-				RangeDifference b= ep;
-				do {
-					ep= ep.getNext();
-					es.fLeftLength++;
-				} while (ep != null && ep.isInsert() && ep.fRightStart == b.fRightStart);
-			} else {
-				es.fRightStart= ep.fRightStart;
-				es.fLeftStart= ep.fLeftStart;
-
-				RangeDifference a= ep;
-				//
-				// deleted lines
-				//
-				do {
-					a= ep;
-					ep= ep.getNext();
-					es.fRightLength++;
-				} while (ep != null && ep.isDelete() && ep.fRightStart == a.fRightStart + 1);
-
-				boolean change= (ep != null && ep.isInsert() && ep.fRightStart == a.fRightStart);
-
-				if (change) {
-					RangeDifference b= ep;
-					//
-					// replacement lines
-					//
-					do {
-						ep= ep.getNext();
-						es.fLeftLength++;
-					} while (ep != null && ep.isInsert() && ep.fRightStart == b.fRightStart);
-				} else {
-					es.fLeftLength= 0;
-				}
-				es.fLeftStart++; // meaning of range changes from "insert after", to "replace with"
-
-			}
-			//
-			// the script commands are 1 based, subtract one to make them zero based
-			//
-			es.fRightStart--;
-			es.fLeftStart--;
-			result.add(es);
-		}
-		return (RangeDifference[]) result.toArray(EMPTY_RESULT);
-	}
-
-	/**
-	 * Creates a <code>RangeDifference3</code> given the
-	 * state of two DifferenceIterators.
-	 */
-	private static RangeDifference createRangeDifference3(
-		DifferencesIterator myIter, 
-		DifferencesIterator yourIter, 
-		List diff3, 
-		IRangeComparator right, 
-		IRangeComparator left, 
-		int changeRangeStart, 
-		int changeRangeEnd) {
-
-		int rightStart, rightEnd;
-		int leftStart, leftEnd;
-		int kind= RangeDifference.ERROR;
-		RangeDifference last= (RangeDifference) diff3.get(diff3.size() - 1);
-
-		Assert.isTrue((myIter.getCount() != 0 || yourIter.getCount() != 0));	// At least one range array must be non-empty
-		//
-		// find corresponding lines to fChangeRangeStart/End in right and left
-		//
-		if (myIter.getCount() == 0) { // only left changed
-			rightStart= changeRangeStart - last.ancestorEnd() + last.rightEnd();
-			rightEnd= changeRangeEnd - last.ancestorEnd() + last.rightEnd();
-			kind= RangeDifference.LEFT;
-		} else {
-			RangeDifference f= (RangeDifference) myIter.fRange.get(0);
-			RangeDifference l= (RangeDifference) myIter.fRange.get(myIter.fRange.size() - 1);
-			rightStart= changeRangeStart - f.fLeftStart + f.fRightStart;
-			rightEnd= changeRangeEnd - l.leftEnd() + l.rightEnd();
-		}
-
-		if (yourIter.getCount() == 0) { // only right changed
-			leftStart= changeRangeStart - last.ancestorEnd() + last.leftEnd();
-			leftEnd= changeRangeEnd - last.ancestorEnd() + last.leftEnd();
-			kind= RangeDifference.RIGHT;
-		} else {
-			RangeDifference f= (RangeDifference) yourIter.fRange.get(0);
-			RangeDifference l= (RangeDifference) yourIter.fRange.get(yourIter.fRange.size() - 1);
-			leftStart= changeRangeStart - f.fLeftStart + f.fRightStart;
-			leftEnd= changeRangeEnd - l.leftEnd() + l.rightEnd();
-		}
-
-		if (kind == RangeDifference.ERROR) { // overlapping change (conflict) -> compare the changed ranges
-			if (rangeSpansEqual(right, rightStart, rightEnd - rightStart, left, leftStart, leftEnd - leftStart))
-				kind= RangeDifference.ANCESTOR;
-			else
-				kind= RangeDifference.CONFLICT;
-		}
-		return new RangeDifference(kind, rightStart, rightEnd - rightStart, leftStart, leftEnd - leftStart, changeRangeStart, changeRangeEnd - changeRangeStart);
-	}
-
-	/**
-	 * Tests if two ranges are equal
-	 */
-	private static boolean rangesEqual(IRangeComparator a, int ai, IRangeComparator b, int bi) {
-		return a.rangesEqual(ai, b, bi);
-	}
-
-	/**
-	 * Tests whether <code>right</code> and <code>left</left> changed in the same way
-	 */
-	private static boolean rangeSpansEqual(IRangeComparator right, int rightStart, int rightLen, IRangeComparator left, int leftStart, int leftLen) {
-		if (rightLen == leftLen) {
-			int i= 0;
-			for (i= 0; i < rightLen; i++) {
-				if (!rangesEqual(right, rightStart + i, left, leftStart + i))
-					break;
-			}
-			if (i == rightLen)
-				return true;
-		}
-		return false;
-	}
-
-	/**
-	 * Reverses the range differences
-	 */
-	private static LinkedRangeDifference reverseDifferences(LinkedRangeDifference start) {
-		LinkedRangeDifference ep, behind, ahead;
-
-		ahead= start;
-		ep= null;
-		while (ahead != null) {
-			behind= ep;
-			ep= ahead;
-			ahead= ahead.getNext();
-			ep.setNext(behind);
-		}
-		return ep;
-	}
-}
-
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/rangedifferencer/package.html b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/rangedifferencer/package.html
deleted file mode 100644
index 368068b..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/rangedifferencer/package.html
+++ /dev/null
@@ -1,44 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="Author" content="IBM">
-   <meta name="GENERATOR" content="Mozilla/4.75 [en] (WinNT; U) [Netscape]">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-Provides support for finding the differences between
-two or three sequences of comparable entities.
-<h2>
-Package Specification</h2>
-
-The class <b>RangeDifferencer</b> finds longest sequences of matching and
-non-matching comparable entities. Its implementation is based on
-an objectified version of the algorithm described in:
-<i>A File Comparison Program,</i> by Webb Miller and Eugene W. Myers,
-Software Practice and Experience, Vol. 15, Nov. 1985.
-<p>
-
-Clients must supply the input to the differencer as an implementation
-of the <b>IRangeComparator</b> interface.
-An <b>IRangeComparator</b> breaks the input data into a sequence
-of entities and provides a method for comparing
-one entity with the entity in another <b>IRangeComparator</b>.
-<p>
-
-For example, to compare two text documents and find longest common
-sequences of matching and non-matching lines,
-the implementation of <b>IRangeComparator</b> 
-must break the document into lines and provide a method for testing
-whether two lines are considered equal.
-See <b>org.eclipse.compare.internal.DocLineComparator</b> for how this can be done.
-<p>
-
-The differencer returns the differences among these sequences as an
-array of <b>RangeDifference</b> objects.
-Every single <b>RangeDifference</b> describes the kind of difference
-(no change, change, addition, deletion) and the corresponding ranges
-of the underlying comparable entities in the two or three inputs.
-
-</body>
-</html>
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DiffContainer.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DiffContainer.java
deleted file mode 100644
index 0d01398..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DiffContainer.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.structuremergeviewer;
-
-import java.util.ArrayList;
-
-/**
- * The standard implementation of a diff container element.
- * <p>
- * This class may be instantiated, or further subclassed.
- * </p>
- */
-public abstract class DiffContainer extends DiffElement implements IDiffContainer {
-
-	private static IDiffElement[] fgEmptyArray= new IDiffElement[0];
-	private ArrayList fChildren;
-	
-	/**
-	 * Creates a new container with the specified kind under the given parent. 
-	 *
-	 * @param parent under which the new container is added as a child or <code>null</code>.
-	 * @param name of the container
-	 * @param kind of difference (defined in <code>Differencer</code>).
-	 */
-	public DiffContainer(IDiffContainer parent, int kind) {
-		super(parent, kind);
-	}
-	
-	/**
-	 * Tries to find the child with the given name.
-	 * Returns <code>null</code> if no such child exists.
-	 * 
-	 * @param name of the child to find
-	 * @return the first element with a matching name
-	 */
-	public IDiffElement findChild(String name) {
-		Object[] children= getChildren();
-		for (int i= 0; i < children.length; i++) {
-			IDiffElement child= (IDiffElement) children[i];
-			if (name.equals(child.getName()))
-				return child;
-		}
-		return null;
-	}
-
-	/* (non Javadoc)
-	 * see IDiffContainer.add
-	 */
-	public void add(IDiffElement diff) {
-		if (fChildren == null)
-			fChildren= new ArrayList();
-		fChildren.add(diff);
-		diff.setParent(this);
-	}
-
-	/**
-	 * Removes the given child from this container.
-	 * If the container becomes empty it is removed from its container.
-	 */
-	/* (non Javadoc)
-	 * see IDiffContainer.removeToRoot
-	 */
-	public void removeToRoot(IDiffElement child) {
-		if (fChildren != null) {
-			fChildren.remove(child);
-			child.setParent(null);
-			if (fChildren.size() == 0) {
-				IDiffContainer p= getParent();
-				if (p != null)
-					p.removeToRoot(this);
-			}
-		}
-	}
-
-	/**
-	 * Removes the given child (non-recursively) from this container.
-	 *
-	 * @param child to remove
-	 */
-	public void remove(IDiffElement child) {
-		if (fChildren != null) {
-			fChildren.remove(child);
-			child.setParent(null);
-		}
-	}
-	
-	/* (non Javadoc)
-	 * see IDiffContainer.hasChildren
-	 */
-	public boolean hasChildren() {
-		return fChildren != null && fChildren.size() > 0;
-	}
-
-	/* (non Javadoc)
-	 * see IDiffContainer.getChildren
-	 */
-	public IDiffElement[] getChildren() {
-		if (fChildren != null)
-			return (IDiffElement[]) fChildren.toArray(fgEmptyArray);
-		return fgEmptyArray;
-	}
-}
-
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DiffElement.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DiffElement.java
deleted file mode 100644
index 2630ac5..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DiffElement.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.structuremergeviewer;
-
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.compare.ITypedElement;
-
-/**
- * An abstract base implementation of the <code>IDiffElement</code> interface.
- * <p>
- * Subclasses may add behavior and state, and may override <code>getImage</code>
- * and <code>getType</code> to suit.
- * </p>
- */
-public abstract class DiffElement implements IDiffElement {
-
-	private int fKind;
-	private IDiffContainer fParent;
-
-	/**
-	 * Creates a new <code>DiffElement</code> as a child of the given parent.
-	 * If parent is not <code>null</code> the new element is added to the parent.
-	 *
-	 * @param parent the parent of this child; if not <code>null</code> this element is automatically added as a child
-	 * @param kind the kind of change
-	 */
-	public DiffElement(IDiffContainer parent, int kind) {
-		fParent= parent;
-		fKind= kind;
-		if (parent != null)
-			parent.add(this);
-	}
-
-	/**
-	 * The <code>DiffElement</code> implementation of this <code>ITypedInput</code>
-	 * method returns <code>null</code>. Subclasses may re-implement to provide
-	 * an image for this element.
-	 */
-	public Image getImage() {
-		return null;
-	}
-
-	/**
-	 * The <code>DiffElement</code> implementation of this <code>ITypedElement</code>
-	 * method returns <code>ITypedElement.UNKNOWN_TYPE</code>. Subclasses may
-	 * re-implement to provide a type for this element.
-	 */
-	public String getType() {
-		return ITypedElement.UNKNOWN_TYPE;
-	}
-
-	/**
-	 * Sets the kind of difference for this element.
-	 *
-	 * @param kind set the kind of difference this element represents
-	 * @see Differencer
-	 */
-	public void setKind(int kind) {
-		fKind= kind;
-	}
-
-	/* (non Javadoc)
-	 * see IDiffElement.getKind
-	 */
-	public int getKind() {
-		return fKind;
-	}
-
-	/* (non Javadoc)
-	 * see IDiffElement.getParent
-	 */
-	public IDiffContainer getParent() {
-		return fParent;
-	}
-
-	/* (non Javadoc)
-	 * see IDiffElement.setParent
-	 */
-	public void setParent(IDiffContainer parent) {
-		fParent= parent;
-	}
-}
-
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DiffNode.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DiffNode.java
deleted file mode 100644
index 9d86242..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DiffNode.java
+++ /dev/null
@@ -1,357 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.structuremergeviewer;
-
-import java.text.MessageFormat;
-
-import org.eclipse.swt.graphics.Image;
-
-import org.eclipse.jface.util.ListenerList;
-
-import org.eclipse.compare.*;
-import org.eclipse.compare.internal.Utilities;
-
-/**
- * Diff node are used as the compare result of the differencing engine.
- * Since it implements the <code>ITypedElement</code> and <code>ICompareInput</code>
- * interfaces it can be used directly to display the
- * compare result in a <code>DiffTreeViewer</code> and as the input to any other
- * compare/merge viewer.
- * <p>
- * <code>DiffNode</code>s are typically created as the result of performing
- * a compare with the <code>Differencer</code>.
- * <p>
- * Clients typically use this class as is, but may subclass if required.
- * 
- * @see DiffTreeViewer
- * @see Differencer
- */
-public class DiffNode extends DiffContainer implements ITypedElement, ICompareInput {
-
-	private ITypedElement fAncestor;
-	private ITypedElement fLeft;
-	private ITypedElement fRight;
-	private boolean fDontExpand;
-	private ListenerList fListener;
-	private boolean fSwapSides;
-
-	
-	/**
-	 * Creates a new <code>DiffNode</code> and initializes with the given values.
-	 *
-	 * @param parent under which the new container is added as a child or <code>null</code>
-	 * @param kind of difference (defined in <code>Differencer</code>)
-	 * @param ancestor the common ancestor input to a compare
-	 * @param left the left input to a compare
-	 * @param right the right input to a compare
-	 */
-	public DiffNode(IDiffContainer parent, int kind, ITypedElement ancestor, ITypedElement left, ITypedElement right) {
-		this(parent, kind);
-		fAncestor= ancestor;
-		fLeft= left;
-		fRight= right;
-	}
-
-	/**
-	 * Creates a new <code>DiffNode</code> with diff kind <code>Differencer.CHANGE</code>
-	 * and initializes with the given values.
-	 *
-	 * @param left the left input to a compare
-	 * @param right the right input to a compare
-	 */
-	public DiffNode(ITypedElement left, ITypedElement right) {
-		this(null, Differencer.CHANGE, null, left, right);
-	}
-
-	/**
-	 * Creates a new <code>DiffNode</code> and initializes with the given values.
-	 *
-	 * @param kind of difference (defined in <code>Differencer</code>)
-	 * @param ancestor the common ancestor input to a compare
-	 * @param left the left input to a compare
-	 * @param right the right input to a compare
-	 */
-	public DiffNode(int kind, ITypedElement ancestor, ITypedElement left, ITypedElement right) {
-		this(null, kind, ancestor, left, right);
-	}
-
-	/**
-	 * Creates a new <code>DiffNode</code> with the given diff kind.
-	 *
-	 * @param kind of difference (defined in <code>Differencer</code>)
-	 */
-	public DiffNode(int kind) {
-		super(null, kind);
-	}
-
-	/**
-	 * Creates a new <code>DiffNode</code> and initializes with the given values.
-	 *
-	 * @param parent under which the new container is added as a child or <code>null</code>
-	 * @param kind of difference (defined in <code>Differencer</code>)
-	 */
-	public DiffNode(IDiffContainer parent, int kind) {
-		super(parent, kind);
-	}
-
-	/**
-	 * Registers a listener for changes of this <code>ICompareInput</code>.
-	 * Has no effect if an identical listener is already registered.
-	 *
-	 * @param listener the listener to add
-	 */
-	public void addCompareInputChangeListener(ICompareInputChangeListener listener) {
-		if (fListener == null)
-			fListener= new ListenerList();
-		fListener.add(listener);
-	}
-	
-	/**
-	 * Unregisters a <code>ICompareInput</code> listener.
-	 * Has no effect if listener is not registered.
-	 *
-	 * @param listener the listener to remove
-	 */
-	public void removeCompareInputChangeListener(ICompareInputChangeListener listener) {
-		if (fListener != null) {
-			fListener.remove(listener);
-			if (fListener.isEmpty())
-				fListener= null;
-		}
-	}
-	
-	/**
-	 * Sends out notification that a change has occured on the <code>ICompareInput</code>.
-	 */
-	protected void fireChange() {
-		if (fListener != null) {
-			Object[] listeners= fListener.getListeners();
-			for (int i= 0; i < listeners.length; i++)
-				((ICompareInputChangeListener) listeners[i]).compareInputChanged(this);
-		}
-	}
-
-	//---- getters & setters
-
-	/**
-	 * Returns <code>true</code> if this node shouldn't automatically be expanded in
-	 * a </code>DiffTreeViewer</code>.
-	 *
-	 * @return <code>true</code> if node shouldn't automatically be expanded
-	 */
-	public boolean dontExpand() {
-		return fDontExpand;
-	}
-
-	/**
-	 * Controls whether this node is not automatically expanded when displayed in
-	 * a </code>DiffTreeViewer</code>.
-	 *
-	 * @param dontExpand if <code>true</code> this node is not automatically expanded in </code>DiffTreeViewer</code>
-	 */
-	public void setDontExpand(boolean dontExpand) {
-		fDontExpand= dontExpand;
-	}
-
-	/**
-	 * Returns the first not-<code>null</code> input of this node.
-	 * Method checks the three inputs in the order: ancestor, right, left.
-	 *
-	 * @return the first not-<code>null</code> input of this node
-	 */
-	public ITypedElement getId() {
-		if (fAncestor != null)
-			return fAncestor;
-		if (fRight != null)
-			return fRight;
-		return fLeft;
-	}
-
-	/**
-	 * Returns the (non-<code>null</code>) name of the left or right side if they are identical.
-	 * Otherwise both names are concatenated (separated with a slash ('/')).
-	 * <p>
-	 * Subclasses may re-implement to provide a different name for this node.
-	 */
-	/* (non Javadoc)
-	 * see ITypedElement.getName
-	 */
-	public String getName() {
-		String right= null;
-		if (fRight != null)
-			right= fRight.getName();
-
-		String left= null;
-		if (fLeft != null)
-			left= fLeft.getName();
-
-		if (right == null && left == null) {
-			if (fAncestor != null)
-				return fAncestor.getName();
-			return Utilities.getString("DiffNode.noName"); //$NON-NLS-1$
-		}
-
-		if (right == null)
-			return left;
-		if (left == null)
-			return right;
-
-		if (right.equals(left))
-			return right;
-			
-		String s1;
-		String s2;
-		
-		if (fSwapSides) {
-			s1= left;
-			s2= right;
-		} else {
-			s1= right;
-			s2= left;
-		}
-		
-		String fmt= Utilities.getString("DiffNode.nameFormat"); //$NON-NLS-1$
-		return MessageFormat.format(fmt, new String[] { s1, s2 });
-	}
-	
-	void swapSides(boolean swap) {
-		fSwapSides= swap;
-	}
-		
-	/* (non Javadoc)
-	 * see ITypedElement.getImage
-	 */
-	public Image getImage() {
-		ITypedElement id= getId();
-		if (id != null)
-			return id.getImage();
-		return null;
-	}
-
-	/* (non Javadoc)
-	 * see ITypedElement.getType
-	 */
-	public String getType() {
-		ITypedElement id= getId();
-		if (id != null)
-			return id.getType();
-		return ITypedElement.UNKNOWN_TYPE;
-	}
-
-	/* (non Javadoc)
-	 * see ICompareInput.getAncestor
-	 */
-	public ITypedElement getAncestor() {
-		return fAncestor;
-	}
-	
-	/**
-	 * Sets the left input to the given value.
-	 *
-	 * @param left the new value for the left input
-	 */
-	public void setLeft(ITypedElement left) {
-		fLeft= left;
-	}
-	
-	/* (non Javadoc)
-	 * see ICompareInput.getLeft
-	 */
-	public ITypedElement getLeft() {
-		return fLeft;
-	}
-
-	/**
-	 * Sets the right input to the given value.
-	 *
-	 * @param right the new value for the right input
-	 */
-	public void setRight(ITypedElement right) {
-		fRight= right;
-	}
-	
-	/* (non Javadoc)
-	 * see ICompareInput.getRight
-	 */
-	public ITypedElement getRight() {
-		return fRight;
-	}
-
-	/* (non Javadoc)
-	 * see ICompareInput.copy
-	 */
-	public void copy(boolean leftToRight) {
-		//System.out.println("DiffNode.copy: " + leftToRight);
-		
-		IDiffContainer pa= getParent();
-		if (pa instanceof ICompareInput) {
-			ICompareInput parent= (ICompareInput) pa;
-			Object dstParent= leftToRight ? parent.getRight() : parent.getLeft();
-			
-			if (dstParent instanceof IEditableContent) {
-				ITypedElement dst= leftToRight ? getRight() : getLeft();
-				ITypedElement src= leftToRight ? getLeft() : getRight();
-				dst= ((IEditableContent)dstParent).replace(dst, src);
-				if (leftToRight)
-					setRight(dst);
-				else
-					setLeft(dst);
-				
-				//setKind(Differencer.NO_CHANGE);
-				
-				fireChange();
-			}
-		}
-	}
-	
-	/* (non Javadoc)
-	 * see Object.hashCode
-	 */
-	public int hashCode() {
-		String[] path= getPath(this, 0);
-		int hashCode= 1;
-		for (int i= 0; i < path.length; i++) {
-	    	String s= path[i];
-	   	 	hashCode= (31*hashCode) + (s != null ? s.hashCode() : 0);
-		}
-		return hashCode;
-	}
-	
-	/* (non Javadoc)
-	 * see Object.equals
-	 */
-	public boolean equals(Object other) {
-		if (other != null && getClass() == other.getClass()) {
-			String[] path1= getPath(this, 0);
-			String[] path2= getPath((DiffNode) other, 0);
-			if (path1.length != path2.length)
-				return false;
-			for (int i= 0; i < path1.length; i++)
-				if (! path1[i].equals(path2[i]))
-					return false;
-			return true;
-		}
-		return super.equals(other);
-	}
-	
-	private static String[] getPath(ITypedElement el, int level) {
-		String[] path= null;
-		if (el instanceof IDiffContainer) {
-			IDiffContainer parent= ((IDiffContainer)el).getParent();
-			if (parent instanceof ITypedElement)
-				path= getPath((ITypedElement)parent, level+1);
-		}
-		if (path == null)
-			path= new String[level+1];
-		path[(path.length-1)-level]= el.getName();
-		return path;
-	}
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DiffTreeViewer.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DiffTreeViewer.java
deleted file mode 100644
index 94d0cd6..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DiffTreeViewer.java
+++ /dev/null
@@ -1,719 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.structuremergeviewer;
-
-import java.util.Iterator;
-import java.util.ResourceBundle;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.*;
-
-import org.eclipse.jface.util.*;
-import org.eclipse.jface.action.*;
-import org.eclipse.jface.viewers.*;
-
-import org.eclipse.compare.internal.*;
-import org.eclipse.compare.*;
-
-/**
- * A tree viewer that works on objects implementing
- * the <code>IDiffContainer</code> and <code>IDiffElement</code> interfaces.
- * <p>
- * This class may be instantiated; it is not intended to be subclassed outside
- * this package.
- * </p>
- *
- * @see IDiffContainer
- * @see IDiffElement
- */
-public class DiffTreeViewer extends TreeViewer {
-	
-	static class DiffViewerSorter extends ViewerSorter {
-	
-		public boolean isSorterProperty(Object element, Object property) {
-			return false;
-		}
-	
-		public int category(Object node) {
-			if (node instanceof DiffNode) {
-				Object o= ((DiffNode) node).getId();
-				if (o instanceof DocumentRangeNode)
-					return ((DocumentRangeNode) o).getTypeCode();
-			}
-			return 0;
-		}
-	}	
-
-	class DiffViewerContentProvider implements ITreeContentProvider {
-			
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-		}
-	
-		public boolean isDeleted(Object element) {
-			return false;
-		}
-			
-		public void dispose() {
-			inputChanged(DiffTreeViewer.this, getInput(), null);
-		}
-			
-		public Object getParent(Object element) {
-			if (element instanceof IDiffElement) 
-				return ((IDiffElement)element).getParent();
-			return null;
-		}
-		
-		public final boolean hasChildren(Object element) {
-			if (element instanceof IDiffContainer) 
-				return ((IDiffContainer)element).hasChildren();
-			return false;
-		}
-		
-		public final Object[] getChildren(Object element) {
-			if (element instanceof IDiffContainer)
-				return ((IDiffContainer)element).getChildren();
-			return new Object[0];
-		}
-		
-		public Object[] getElements(Object element) {
-			return getChildren(element);
-		}				
-	}
-	
-	/*
-	 * Takes care of swapping left and right if fLeftIsLocal
-	 * is true.
-	 */
-	class DiffViewerLabelProvider extends LabelProvider {
-		
-		public String getText(Object element) {
-			
-			if (element instanceof IDiffElement)
-				return ((IDiffElement)element).getName();
-						
-			return Utilities.getString(fBundle, "defaultLabel"); //$NON-NLS-1$
-		}
-	
-		public Image getImage(Object element) {
-			if (element instanceof IDiffElement) {
-				IDiffElement input= (IDiffElement) element;
-				
-				int kind= input.getKind();
-				if (fLeftIsLocal) {
-					switch (kind & Differencer.DIRECTION_MASK) {
-					case Differencer.LEFT:
-						kind= (kind &~ Differencer.LEFT) | Differencer.RIGHT;
-						break;
-					case Differencer.RIGHT:
-						kind= (kind &~ Differencer.RIGHT) | Differencer.LEFT;
-						break;
-					}
-				}
-				
-				return fCompareConfiguration.getImage(input.getImage(), kind);
-			}
-			return null;
-		}
-	}
-
-	static class FilterSame extends ViewerFilter {
-		public boolean select(Viewer viewer, Object parentElement, Object element) {
-			if (element instanceof IDiffElement)
-				return (((IDiffElement)element).getKind() & Differencer.PSEUDO_CONFLICT) == 0;
-			return true;
-		}
-		public boolean isFilterProperty(Object element, Object property) {
-			return false;
-		}
-	}
-	
-	private ResourceBundle fBundle;
-	private CompareConfiguration fCompareConfiguration;
-	/* package */ boolean fLeftIsLocal;
-	private IPropertyChangeListener fPropertyChangeListener;
-
-	private Action fCopyLeftToRightAction;
-	private Action fCopyRightToLeftAction;
-	private Action fEmptyMenuAction;
-	private Action fExpandAllAction;
-		
-	/**
-	 * Creates a new viewer for the given SWT tree control with the specified configuration.
-	 *
-	 * @param tree the tree control
-	 * @param configuration the configuration for this viewer
-	 */
-	public DiffTreeViewer(Tree tree, CompareConfiguration configuration) {
-		super(tree);
-		initialize(configuration);
-	}
-	
-	/**
-	 * Creates a new viewer under the given SWT parent and with the specified configuration.
-	 *
-	 * @param parent the SWT control under which to create the viewer
-	 * @param configuration the configuration for this viewer
-	 */
-	public DiffTreeViewer(Composite parent, CompareConfiguration configuration) {
-		super(new Tree(parent, SWT.MULTI));
-		initialize(configuration);
-	}
-	
-	private void initialize(CompareConfiguration configuration) {
-		
-		Control tree= getControl();
-		
-		INavigatable nav= new INavigatable() {
-			public boolean gotoDifference(boolean next) {
-				// Fix for http://dev.eclipse.org/bugs/show_bug.cgi?id=20106
-				return internalNavigate(next, true);
-			}
-		};
-		tree.setData(INavigatable.NAVIGATOR_PROPERTY, nav);
-		
-		// Fix for http://dev.eclipse.org/bugs/show_bug.cgi?id=20106
-		IOpenable openable= new IOpenable() {
-			public void openSelected() {
-				internalOpen();
-			}
-		};
-		tree.setData(IOpenable.OPENABLE_PROPERTY, openable);
-		
-		fLeftIsLocal= Utilities.getBoolean(configuration, "LEFT_IS_LOCAL", false); //$NON-NLS-1$
-
-		tree.setData(CompareUI.COMPARE_VIEWER_TITLE, getTitle());
-
-		Composite parent= tree.getParent();
-		
-		fBundle= ResourceBundle.getBundle("org.eclipse.compare.structuremergeviewer.DiffTreeViewerResources"); //$NON-NLS-1$
-		
-		// register for notification with the CompareConfiguration 
-		fCompareConfiguration= configuration;
-		if (fCompareConfiguration != null) {
-			fPropertyChangeListener= new IPropertyChangeListener() {
-				public void propertyChange(PropertyChangeEvent event) {
-					DiffTreeViewer.this.propertyChange(event);
-				}
-			};
-			fCompareConfiguration.addPropertyChangeListener(fPropertyChangeListener);
-		}				
-	
-		setContentProvider(new DiffViewerContentProvider());
-		setLabelProvider(new DiffViewerLabelProvider());
-		
-		addSelectionChangedListener(
-			new ISelectionChangedListener() {
-				public void selectionChanged(SelectionChangedEvent se) {
-					updateActions();
-				}
-			}
-		);
-										
-		setSorter(new DiffViewerSorter());
-		
-		ToolBarManager tbm= CompareViewerSwitchingPane.getToolBarManager(parent);
-		if (tbm != null) {
-			tbm.removeAll();
-			
-			tbm.add(new Separator("merge")); //$NON-NLS-1$
-			tbm.add(new Separator("modes")); //$NON-NLS-1$
-			tbm.add(new Separator("navigation")); //$NON-NLS-1$
-			
-			createToolItems(tbm);
-			updateActions();
-			
-			tbm.update(true);
-		}
-		
-		MenuManager mm= new MenuManager();
-		mm.setRemoveAllWhenShown(true);
-		mm.addMenuListener(
-			new IMenuListener() {
-				public void menuAboutToShow(IMenuManager mm2) {
-					fillContextMenu(mm2);
-					if (mm2.isEmpty()) {
-						if (fEmptyMenuAction == null) {
-							fEmptyMenuAction=
-								new Action(Utilities.getString(fBundle, "emptyMenuItem")) {};	//$NON-NLS-1$
-							fEmptyMenuAction.setEnabled(false);
-						}
-						mm2.add(fEmptyMenuAction);
-					}
-				}
-			}
-		);
-		tree.setMenu(mm.createContextMenu(tree));
-	}
-			
-	/**
-	 * Returns the viewer's name.
-	 *
-	 * @return the viewer's name
-	 */
-	public String getTitle() {
-		String title= Utilities.getString(fBundle, "title", null); //$NON-NLS-1$
-		if (title == null)
-			title= Utilities.getString("DiffTreeViewer.title"); //$NON-NLS-1$
-		return title;
-	}
-	
-	/**
-	 * Returns the resource bundle.
-	 *
-	 * @return the viewer's resource bundle
-	 */
-	protected ResourceBundle getBundle() {
-		return fBundle;
-	}
-
-	/**
-	 * Returns the compare configuration of this viewer.
-	 *
-	 * @return the compare configuration of this viewer
-	 */
-	public CompareConfiguration getCompareConfiguration() {
-		return fCompareConfiguration;
-	}
-			
-	/**
-	 * Called on the viewer disposal.
-	 * Unregisters from the compare configuration.
-	 * Clients may extend if they have to do additional cleanup.
-	 */
-	protected void handleDispose(DisposeEvent event) {
-		
-		if (fCompareConfiguration != null) {
-			if (fPropertyChangeListener != null)
-				fCompareConfiguration.removePropertyChangeListener(fPropertyChangeListener);
-			fCompareConfiguration= null;
-		}
-		fPropertyChangeListener= null;
-		
-		super.handleDispose(event);
-	}
-	
-	/**
-	 * Tracks property changes of the configuration object.
-	 * Clients may extend to track their own property changes.
-	 */
-	protected void propertyChange(PropertyChangeEvent event) {
-	}
-	
-	protected void inputChanged(Object in, Object oldInput) {
-		super.inputChanged(in, oldInput);
-		
-		if (in != oldInput) {
-			initialSelection();
-			updateActions();
-		}
-	}
-	
-	/**
-	 * This hook method is called from within <code>inputChanged</code>
-	 * after a new input has been set but before any controls are updated.
-	 * This default implementation calls <code>navigate(true)</code>
-	 * to select and expand the first leaf node.
-	 * Clients can override this method and are free to decide whether
-	 * they want to call the inherited method.
-	 * 
-	 * @since 2.0
-	 */
-	protected void initialSelection() {
-		navigate(true);
-	}
-
-	/**
-	 * Overridden to avoid expanding <code>DiffNode</code>s that shouldn't expand.
-	 */
-	protected void internalExpandToLevel(Widget node, int level) {
-				
-		Object data= node.getData();
-		
-		if (dontExpand(data))
-			return;
-		
-		super.internalExpandToLevel(node, level);
-	}
-	
-	/**
-	 * This hook method is called from within <code>internalExpandToLevel</code>
-	 * to control whether a given model node should be expanded or not.
-	 * This default implementation checks whether the object is a <code>DiffNode</code> and
-	 * calls <code>dontExpand()</code> on it.
-	 * Clients can override this method and are free to decide whether
-	 * they want to call the inherited method.
-	 * 
-	 * @param o the model object to be expanded
-	 * @return <code>false</code> if a node should be expanded, <code>true</code> to prevent expanding
-	 * @since 2.0
-	 */
-	protected boolean dontExpand(Object o) {
-		return o instanceof DiffNode && ((DiffNode)o).dontExpand();
-	}
-	
-	//---- merge action support
-
-	/**
-	 * This factory method is called after the viewer's controls have been created.
-	 * It installs four actions in the given <code>ToolBarManager</code>. Two actions
-	 * allow for copying one side of a <code>DiffNode</code> to the other side.
-	 * Two other actions are for navigating from one node to the next (previous).
-	 * <p>
-	 * Clients can override this method and are free to decide whether they want to call
-	 * the inherited method.
-	 *
-	 * @param toolbarManager the toolbar manager for which to add the actions
-	 */
-	protected void createToolItems(ToolBarManager toolbarManager) {
-		
-//		fCopyLeftToRightAction= new Action() {
-//			public void run() {
-//				copySelected(true);
-//			}
-//		};
-//		Utilities.initAction(fCopyLeftToRightAction, fBundle, "action.TakeLeft.");
-//		toolbarManager.appendToGroup("merge", fCopyLeftToRightAction);
-
-//		fCopyRightToLeftAction= new Action() {
-//			public void run() {
-//				copySelected(false);
-//			}
-//		};
-//		Utilities.initAction(fCopyRightToLeftAction, fBundle, "action.TakeRight.");
-//		toolbarManager.appendToGroup("merge", fCopyRightToLeftAction);
-		
-//		fNextAction= new Action() {
-//			public void run() {
-//				navigate(true);
-//			}
-//		};
-//		Utilities.initAction(fNextAction, fBundle, "action.NextDiff."); //$NON-NLS-1$
-//		toolbarManager.appendToGroup("navigation", fNextAction); //$NON-NLS-1$
-
-//		fPreviousAction= new Action() {
-//			public void run() {
-//				navigate(false);
-//			}
-//		};
-//		Utilities.initAction(fPreviousAction, fBundle, "action.PrevDiff."); //$NON-NLS-1$
-//		toolbarManager.appendToGroup("navigation", fPreviousAction); //$NON-NLS-1$
-	}
-	
-	/**
-	 * This method is called to add actions to the viewer's context menu.
-	 * It installs actions for expanding tree nodes, copying one side of a <code>DiffNode</code> to the other side.
-	 * Clients can override this method and are free to decide whether they want to call
-	 * the inherited method.
-	 *
-	 * @param manager the menu manager for which to add the actions
-	 */
-	protected void fillContextMenu(IMenuManager manager) {
-		if (fExpandAllAction == null) {
-			fExpandAllAction= new Action() {
-				public void run() {
-					expandSelection();
-				}
-			};
-			Utilities.initAction(fExpandAllAction, fBundle, "action.ExpandAll."); //$NON-NLS-1$
-		}
-		
-		boolean enable= false;
-		ISelection selection= getSelection();
-		if (selection instanceof IStructuredSelection) {
-			Iterator elements= ((IStructuredSelection)selection).iterator();
-			while (elements.hasNext()) {
-				Object element= elements.next();
-				if (element instanceof IDiffContainer) {
-					if (((IDiffContainer)element).hasChildren()) {
-						enable= true;
-						break;
-					}
-				}
-			}
-		}
-		fExpandAllAction.setEnabled(enable);
-
-		manager.add(fExpandAllAction);
-		
-		if (fCopyLeftToRightAction != null)
-			manager.add(fCopyLeftToRightAction);
-		if (fCopyRightToLeftAction != null)
-			manager.add(fCopyRightToLeftAction);
-	}
-
-	/**
-	 * Expands to infinity all items in the selection.
-	 * 
-	 * @since 2.0
-	 */
-	protected void expandSelection() {
-		ISelection selection= getSelection();
-		if (selection instanceof IStructuredSelection) {
-			Iterator elements= ((IStructuredSelection)selection).iterator();
-			while (elements.hasNext()) {
-				Object next= elements.next();
-				expandToLevel(next, ALL_LEVELS);
-			}
-		}
-	}
-
-	/**
-	 * Copies one side of all <code>DiffNode</code>s in the current selection to the other side.
-	 * Called from the (internal) actions for copying the sides of a <code>DiffNode</code>.
-	 * Clients may override. 
-	 * 
-	 * @param leftToRight if <code>true</code> the left side is copied to the right side.
-	 * If <code>false</code> the right side is copied to the left side
-	 */
-	protected void copySelected(boolean leftToRight) {
-		ISelection selection= getSelection();
-		if (selection instanceof IStructuredSelection) {
-			Iterator e= ((IStructuredSelection) selection).iterator();
-			while (e.hasNext()) {
-				Object element= e.next();
-				if (element instanceof ICompareInput)
-					copyOne((ICompareInput) element, leftToRight);
-			}
-		}
-	}
-	
-	/**
-	 * Called to copy one side of the given node to the other.
-	 * This default implementation delegates the call to <code>ICompareInput.copy(...)</code>.
-	 * Clients may override. 
-	 * 
-	 * @param leftToRight if <code>true</code> the left side is copied to the right side.
-	 * If <code>false</code> the right side is copied to the left side
-	 */
-	protected void copyOne(ICompareInput node, boolean leftToRight) {
-		
-		node.copy(leftToRight);
-		
-		// update node's image
-		update(new Object[] { node }, null);
-	}
-	
-	/**
-	 * Selects the next (or previous) node of the current selection.
-	 * If there is no current selection the first (last) node in the tree is selected.
-	 * Wraps around at end or beginning.
-	 * Clients may override. 
-	 *
-	 * @param next if <code>true</code> the next node is selected, otherwise the previous node
-	 */
-	protected void navigate(boolean next) {	
-		// Fix for http://dev.eclipse.org/bugs/show_bug.cgi?id=20106
-		internalNavigate(next, false);
-	}
-	
-	//---- private
-	
-	/**
-	 * Selects the next (or previous) node of the current selection.
-	 * If there is no current selection the first (last) node in the tree is selected.
-	 * Wraps around at end or beginning.
-	 * Clients may override. 
-	 *
-	 * @param next if <code>true</code> the next node is selected, otherwise the previous node
-	 * @return <code>true</code> if at end (or beginning)
-	 */
-	private boolean internalNavigate(boolean next, boolean fireOpen) {
-		
-		Control c= getControl();
-		if (!(c instanceof Tree))
-			return false;
-			
-		Tree tree= (Tree) c;
-		TreeItem item= null;
-		TreeItem children[]= tree.getSelection();
-		if (children != null && children.length > 0)
-			item= children[0];
-		if (item == null) {
-			children= tree.getItems();
-			if (children != null && children.length > 0) {
-				item= children[0];
-				if (item != null && item.getItemCount() <= 0) {
-					internalSetSelection(item, fireOpen);				// Fix for http://dev.eclipse.org/bugs/show_bug.cgi?id=20106
-					return false;
-				}
-			}
-		}
-			
-		while (true) {
-			item= findNextPrev(item, next);
-			if (item == null)
-				break;
-			if (item.getItemCount() <= 0)
-				break;
-		}
-		
-		if (item != null) {
-			internalSetSelection(item, fireOpen);	// Fix for http://dev.eclipse.org/bugs/show_bug.cgi?id=20106
-			return false;
-		}
-		return true;
-	}
-
-	private TreeItem findNextPrev(TreeItem item, boolean next) {
-		
-		if (item == null)
-			return null;
-		
-		TreeItem children[]= null;
-
-		if (!next) {
-		
-			TreeItem parent= item.getParentItem();
-			if (parent != null)
-				children= parent.getItems();
-			else
-				children= item.getParent().getItems();
-			
-			if (children != null && children.length > 0) {
-				// goto previous child
-				int index= 0;
-				for (; index < children.length; index++)
-					if (children[index] == item)
-						break;
-				
-				if (index > 0) {
-					
-					item= children[index-1];
-					
-					while (true) {
-						createChildren(item);
-						int n= item.getItemCount();
-						if (n <= 0)
-							break;
-							
-						item.setExpanded(true);
-						item= item.getItems()[n-1];
-					}
-
-					// previous
-					return item;
-				}
-			}
-			
-			// go up
-			return parent;
-					
-		} else {
-			item.setExpanded(true);
-			createChildren(item);
-			
-			if (item.getItemCount() > 0) {
-				// has children: go down
-				children= item.getItems();
-				return children[0];
-			}
-			
-			while (item != null) {
-				children= null;
-				TreeItem parent= item.getParentItem();
-				if (parent != null)
-					children= parent.getItems();
-				else
-					children= item.getParent().getItems();
-				
-				if (children != null && children.length > 0) {
-					// goto next child
-					int index= 0;
-					for (; index < children.length; index++)
-						if (children[index] == item)
-							break;
-					
-					if (index < children.length-1) {
-						// next
-						return children[index+1];
-					}
-				}
-				
-				// go up
-				item= parent;
-			}
-		}
-				
-		return item;
-	}
-	
-	private void internalSetSelection(TreeItem ti, boolean fireOpen) {
-		if (ti != null) {
-			Object data= ti.getData();
-			if (data != null) {
-				// Fix for http://dev.eclipse.org/bugs/show_bug.cgi?id=20106
-				ISelection selection= new StructuredSelection(data);
-				setSelection(selection, true);
-				ISelection currentSelection= getSelection();
-				if (fireOpen && currentSelection != null && selection.equals(currentSelection)) {
-					fireOpen(new OpenEvent(this, selection));
-				}
-			}
-		}
-	}
-			
-	private final boolean isEditable(Object element, boolean left) {
-		if (element instanceof ICompareInput) {
-			ICompareInput diff= (ICompareInput) element;
-			Object side= left ? diff.getLeft() : diff.getRight();
-			if (side == null && diff instanceof IDiffElement) {
-				IDiffContainer container= ((IDiffElement)diff).getParent();
-				if (container instanceof ICompareInput) {
-					ICompareInput parent= (ICompareInput) container;
-					side= left ? parent.getLeft() : parent.getRight();
-				}
-			}
-			if (side instanceof IEditableContent)
-				return ((IEditableContent) side).isEditable();
-		}
-		return false;
-	}
-		
-	private void updateActions() {
-		int leftToRight= 0;
-		int rightToLeft= 0;
-		ISelection selection= getSelection();
-		if (selection instanceof IStructuredSelection) {
-			IStructuredSelection ss= (IStructuredSelection) selection;
-			Iterator e= ss.iterator();
-			while (e.hasNext()) {
-				Object element= e.next();
-				if (element instanceof ICompareInput) {
-					if (isEditable(element, false))
-						leftToRight++;
-					if (isEditable(element, true))
-						rightToLeft++;
-					if (leftToRight > 0 && rightToLeft > 0)
-						break;
-				}
-			}
-			if (fExpandAllAction != null)
-				fExpandAllAction.setEnabled(selection.isEmpty());
-		}
-		if (fCopyLeftToRightAction != null)
-			fCopyLeftToRightAction.setEnabled(leftToRight > 0);
-		if (fCopyRightToLeftAction != null)
-			fCopyRightToLeftAction.setEnabled(rightToLeft > 0);
-	}
-	
-	/*
-	 * Fix for http://dev.eclipse.org/bugs/show_bug.cgi?id=20106
-	 */ 
-	private void internalOpen()  {
-		ISelection selection= getSelection();
-		if (selection != null && !selection.isEmpty()) {
-			fireOpen(new OpenEvent(this, selection));
-		}
-	}
-}
-
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DiffTreeViewerResources.properties b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DiffTreeViewerResources.properties
deleted file mode 100644
index 1691840..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DiffTreeViewerResources.properties
+++ /dev/null
@@ -1,53 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-# @(#)DiffTreeViewerResources.properties
-#
-# Resource strings for DiffTreeViewer.java
-
-title= Structure Compare
-defaultLabel= <no name>
-
-#####################################################
-# Dummy menu item for empty context menu
-#####################################################
-
-emptyMenuItem= <Empty Menu>
-
-#####################################################
-# Actions
-#####################################################
-
-action.Smart.label=Smart
-action.Smart.tooltip=Guess Similar Elements
-action.Smart.image=smartmode_co.gif
-
-action.ExpandAll.label=Expand All
-action.ExpandAll.tooltip=Expand All Nodes
-
-action.CompareContents.label= Show Content Comparison
-action.CompareContents.tooltip= Show content comparison
-
-action.NextDiff.label=Next
-action.NextDiff.tooltip=Select Next Change
-action.NextDiff.image=next_nav.gif
-
-action.PrevDiff.label=Previous
-action.PrevDiff.tooltip=Select Previous Change
-action.PrevDiff.image=prev_nav.gif
-
-action.TakeLeft.label=Copy Left to Right
-action.TakeLeft.tooltip=Copy Selected Nodes from Left to Right
-action.TakeLeft.image=copycont_r_co.gif
-
-action.TakeRight.label=Copy Right to Left
-action.TakeRight.tooltip=Copy Selected Nodes from Right to Left
-action.TakeRight.image=copycont_l_co.gif
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/Differencer.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/Differencer.java
deleted file mode 100644
index e71152b..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/Differencer.java
+++ /dev/null
@@ -1,522 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.structuremergeviewer;
-
-import java.io.*;
-import java.util.*;
-import java.text.MessageFormat;
-
-import org.eclipse.jface.util.Assert;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.OperationCanceledException;
-
-import org.eclipse.compare.*;
-import org.eclipse.compare.internal.Utilities;
-
-
-/**
- * A generic two-way or three-way differencing engine.
- * <p>
- * The engine is used by calling one of the <code>findDifferences</code> methods and passing
- * in the objects to compare.
- * The engine calls the following methods on the input objects to perform the compare:
- * <UL>
- * <LI><code>getChildren</code>: for enumerating the children of an object (if any),
- * <LI><code>contentsEqual</code>: for comparing the content of leaf objects, that is, objects without children,
- * <LI><code>visit</code>: for every pair of compared object the compare result is passed in.
- * </UL>
- * Clients may use as is, or subclass to provide a custom implementation for the three hooks. 
- * However the default implementation already deals with the typical case:
- * <UL>
- * <LI><code>getChildren</code>: tries to apply the <code>IStructureComparator</code>
- * 	interface to enumerate the children,
- * <LI><code>contentsEqual</code>: tries to apply the <code>IStreamContentAccessor</code> interface
- *	to perform a byte-wise content comparison,
- * <LI><code>visit</code>: creates a <code>DiffNode</code> for any detected difference between the compared objects and
- *	links it under a parent node effectively creating a tree of differences.
- * </UL>
- * The different kind of changes detected by the engine are decoded as follows:
- * In the two-way case only NO_CHANGE, ADDITION, DELETION, and CHANGE are used.
- * In the three-way case these constants are bitwise ORed with one of directional constants
- * LEFT, RIGHT, and CONFLICTING.
- */
-public class Differencer {
-	
-	// The kind of differences.
-	/**
-	 * Difference constant (value 0) indicating no difference.
-	 */
-	public static final int NO_CHANGE= 0;
-	/**
-	 * Difference constant (value 1) indicating one side was added.
-	 */
-	public static final int ADDITION= 1;
-	/**
-	 * Difference constant (value 2) indicating one side was removed.
-	 */
-	public static final int DELETION= 2;
-	/**
-	 * Difference constant (value 3) indicating side changed.
-	 */
-	public static final int CHANGE= 3;
-
-	/**
-	 * Bit mask (value 3) for extracting the kind of difference.
-	 */
-	public static final int CHANGE_TYPE_MASK= 3;
-
-	// The direction of a three-way change.
-	/**
-	 * Three-way change constant (value 4) indicating a change on left side.
-	 */
-	public static final int LEFT= 4;
-	
-	/**
-	 * Three-way change constant (value 8) indicating a change on right side.
-	 */
-	public static final int RIGHT= 8;
-	
-	/**
-	 * Three-way change constant (value 12) indicating a change on left and
-	 * right sides.
-	 */
-	public static final int CONFLICTING= 12;
-
-	/**
-	 * Bit mask (value 12) for extracting the direction of a three-way change.
-	 */
-	public static final int DIRECTION_MASK= 12;
-
-	/**
-	 * Constant (value 16) indicating a change on left and 
-	 * right side (with respect to ancestor) but left and right are identical.
-	 */
-	public static final int PSEUDO_CONFLICT= 16;
-
-	
-	static class Node {
-		List fChildren;
-		int fCode;
-		Object fAncestor;
-		Object fLeft;
-		Object fRight;
-		
-		Node() {
-		}
-		Node(Node parent, Object ancestor, Object left, Object right) {
-			parent.add(this);
-			fAncestor= ancestor;
-			fLeft= left;
-			fRight= right;
-		}
-		void add(Node child) {
-			if (fChildren == null)
-				fChildren= new ArrayList();
-			fChildren.add(child);
-		}
-		Object visit(Differencer d, Object parent, int level) {
-			if (fCode == NO_CHANGE)
-				return null;
-			//dump(level);
-			Object data= d.visit(parent, fCode, fAncestor, fLeft, fRight);
-			if (fChildren != null) {
-				Iterator i= fChildren.iterator();
-				while (i.hasNext()) {
-					Node n= (Node) i.next();
-					n.visit(d, data, level+1);
-				}
-			}
-			return data;
-		}
-//		private void dump(int level) {
-//			String name= null;
-//			if (fAncestor instanceof ITypedElement)
-//				name= ((ITypedElement)fAncestor).getName();
-//			if (name == null && fLeft instanceof ITypedElement)
-//				name= ((ITypedElement)fLeft).getName();
-//			if (name == null && fRight instanceof ITypedElement)
-//				name= ((ITypedElement)fRight).getName();
-//			if (name == null)
-//				name= "???"; //$NON-NLS-1$
-//			
-//			for (int i= 0; i < level; i++)
-//				System.out.print("  "); //$NON-NLS-1$
-//			
-//			System.out.println(getDiffType(fCode) + name);
-//		}
-
-//		private String getDiffType(int code) {
-//			String dir= " "; //$NON-NLS-1$
-//			switch (code & DIRECTION_MASK) {
-//			case LEFT:
-//				dir= ">"; //$NON-NLS-1$
-//				break;
-//			case RIGHT:
-//				dir= "<"; //$NON-NLS-1$
-//				break;
-//			case CONFLICTING:
-//				dir= "!"; //$NON-NLS-1$
-//				break;
-//			}
-//			String change= "="; //$NON-NLS-1$
-//			switch (code & CHANGE_TYPE_MASK) {
-//			case ADDITION:
-//				change= "+"; //$NON-NLS-1$
-//				break;
-//			case DELETION:
-//				change= "-"; //$NON-NLS-1$
-//				break;
-//			case CHANGE:
-//				change= "#"; //$NON-NLS-1$
-//				break;
-//			}
-//			return dir + change + " "; //$NON-NLS-1$
-//		}
-	} 
-	
-	/**
-	 * Creates a new differencing engine.
-	 */
-	public Differencer() {
-	}
-	
-	/**
-	 * Starts the differencing engine on the three input objects. If threeWay is <code>true</code> a 
-	 * three-way comparison is performed, otherwise a two-way compare (in the latter case the ancestor argument is ignored).
-	 * The progress monitor is passed to the method <code>updateProgress</code> which is called for every node or
-	 * leaf compare. The method returns the object that was returned from the top-most call to method <code>visit</code>.
-	 * At most two of the ancestor, left, and right parameters are allowed to be <code>null</code>.
-	 *
-	 * @param threeWay if <code>true</code> a three-way comparison is performed, otherwise a two-way compare
-	 * @param pm a progress monitor which is passed to method <code>updateProgress</code>
-	 * @param data a client data that is passed to the top-level call to <code>visit</code>
-	 * @param ancestor the ancestor object of the compare (may be <code>null</code>)
-	 * @param left the left object of the compare 
-	 * @param right the right object of the compare
-	 * @return the object returned from the top most call to method <code>visit</code>,
-	 *   possibly <code>null</code>
-	 */
-	public Object findDifferences(boolean threeWay, IProgressMonitor pm, Object data, Object ancestor, Object left, Object right) {
-		
-		Node root= new Node();
-		
-		int code= traverse(threeWay, root, pm, threeWay ? ancestor : null, left, right);
-				
-		if (code != NO_CHANGE) {
-			List l= root.fChildren;
-			if (l.size() > 0) {
-				Node first= (Node)l.get(0);
-				return first.visit(this, data, 0);
-			}
-		}
-		return null;
-	}
-	
-	/**
-	 * Traverse tree in postorder.
-	 */
-	private int traverse(boolean threeWay, Node parent, IProgressMonitor pm, Object ancestor, Object left, Object right) {
-				
-		Object[] ancestorChildren= getChildren(ancestor);
-		Object[] rightChildren= getChildren(right);
-		Object[] leftChildren= getChildren(left);
-		
-		int code= NO_CHANGE;
-		
-		Node node= new Node(parent, ancestor, left, right);
-			
-		boolean content= true;	// we reset this if we have at least one child
-		
-		if (((threeWay && ancestorChildren != null) || !threeWay)
-					 && rightChildren != null && leftChildren != null) {
-			// we only recurse down if no leg is null
-			// a node
-			
-			Set allSet= new HashSet(20);
-			Map ancestorSet= null;
-			Map rightSet= null;
-			Map leftSet= null;
-						
-			if (ancestorChildren != null) {
-				ancestorSet= new HashMap(10);
-				for (int i= 0; i < ancestorChildren.length; i++) {
-					Object ancestorChild= ancestorChildren[i];
-					ancestorSet.put(ancestorChild, ancestorChild);
-					allSet.add(ancestorChild);
-				}
-			}
-
-			if (rightChildren != null) {
-				rightSet= new HashMap(10);
-				for (int i= 0; i < rightChildren.length; i++) {
-					Object rightChild= rightChildren[i];
-					rightSet.put(rightChild, rightChild);
-					allSet.add(rightChild);
-				}
-			}
-
-			if (leftChildren != null) {
-				leftSet= new HashMap(10);
-				for (int i= 0; i < leftChildren.length; i++) {
-					Object leftChild= leftChildren[i];
-					leftSet.put(leftChild, leftChild);
-					allSet.add(leftChild);
-				}
-			}
-						
-			Iterator e= allSet.iterator();
-			while (e.hasNext()) {
-				Object keyChild= e.next();
-				
-				content= false;
-				
-				if (pm != null) {
-					
-					if (pm.isCanceled())
-						throw new OperationCanceledException();
-						
-					updateProgress(pm, keyChild);
-				}
-				
-				Object ancestorChild= ancestorSet != null ? ancestorSet.get(keyChild) : null;
-				Object leftChild= leftSet != null ? leftSet.get(keyChild) : null;
-				Object rightChild= rightSet != null ? rightSet.get(keyChild) : null;
-				
-				int c= traverse(threeWay, node, pm, ancestorChild, leftChild, rightChild);
-			
-				if ((c & CHANGE_TYPE_MASK) != NO_CHANGE) {
-					code|= CHANGE;	// deletions and additions of child result in a change of the container
-					code|= (c & DIRECTION_MASK);	// incoming & outgoing are just ored
-				}
-			}
-		}
-
-		if (content)			// a leaf
-			code= compare(threeWay, ancestor, left, right);
-								
-		node.fCode= code;
-							
-		return code;
-	}
-	
-	/**
-	 * Called for every node or leaf comparison.
-	 * The differencing engine passes in the input objects of the compare and the result of the compare.
-	 * The data object is the value returned from a call to the <code>visit</code> method on the parent input.
-	 * It can be considered the "parent" reference and is useful when building a tree.
-	 * <p>
-	 * The <code>Differencer</code> implementation returns a new
-	 * <code>DiffNode</code> which is initialized with the corresponding values.
-	 * Subclasses may override.
-	 *
-	 * @param data object returned from parent call to <code>visit</code>,
-	 *   possibly <code>null</code>
-	 * @param result the result of the compare operation performed on the three inputs
-	 * @param ancestor the compare ancestor of the left and right inputs
-	 * @param left the left input to the compare
-	 * @param right the right input to the compare
-	 * @return the result, possibly <code>null</code>
-	 */
-	protected Object visit(Object data, int result, Object ancestor, Object left, Object right) {
-		return new DiffNode((IDiffContainer) data, result, (ITypedElement)ancestor, (ITypedElement)left, (ITypedElement)right);
-	}
-	
-	/**
-	 * Performs a 2-way or 3-way compare of the given leaf elements and returns an integer
-	 * describing the kind of difference.
-	 */
-	private int compare(boolean threeway, Object ancestor, Object left, Object right) {
-		
-		int description= NO_CHANGE;
-		
-		if (threeway) {
-			if (ancestor == null) {
-				if (left == null) {
-					if (right == null) {
-						Assert.isTrue(false);
-						// shouldn't happen
-					} else {
-						description= RIGHT | ADDITION;
-					}
-				} else {
-					if (right == null) {
-						description= LEFT | ADDITION;
-					} else {
-						description= CONFLICTING | ADDITION;
-						if (contentsEqual(left, right))
-							description|= PSEUDO_CONFLICT;
-					}
-				}
-			} else {
-				if (left == null) {
-					if (right == null) {
-						description= CONFLICTING | DELETION | PSEUDO_CONFLICT;
-					} else {
-						if (contentsEqual(ancestor, right))		
-							description= LEFT | DELETION;
-						else
-							description= CONFLICTING | CHANGE;	
-					}
-				} else {
-					if (right == null) {
-						if (contentsEqual(ancestor, left))	
-							description= RIGHT | DELETION;
-						else
-							description= CONFLICTING | CHANGE;	
-					} else {
-						boolean ay= contentsEqual(ancestor, left);
-						boolean am= contentsEqual(ancestor, right);
-						
-						if (ay && am)
-							;
-						else if (ay && !am) {
-							description= RIGHT | CHANGE;
-						} else if (!ay && am) {
-							description= LEFT | CHANGE;
-						} else {
-							description= CONFLICTING | CHANGE;
-							if (contentsEqual(left, right))
-								description|= PSEUDO_CONFLICT;
-						}
-					}
-				}
-			}
-		} else {	// two way compare ignores ancestor
-			if (left == null) {
-				if (right == null) {
-					Assert.isTrue(false);
-					// shouldn't happen
-				} else {
-					description= ADDITION;
-				}
-			} else {
-				if (right == null) {
-					description= DELETION;
-				} else {
-					if (! contentsEqual(left, right))
-						description= CHANGE;
-				}
-			}
-		}
-							
-		return description;
-	}
-		
-	/**
-	 * Performs a content compare on the two given inputs.
-	 * <p>
-	 * The <code>Differencer</code> implementation
-	 * returns <code>true</code> if both inputs implement <code>IStreamContentAccessor</code>
-	 * and their byte contents is identical. Subclasses may override to implement 
-	 * a different content compare on the given inputs.
-	 * </p>
-	 *
-	 * @param input1 first input to contents compare
-	 * @param input2 second input to contents compare
-	 * @return <code>true</code> if content is equal
-	 */
-	protected boolean contentsEqual(Object input1, Object input2) {
-		
-		if (input1 == input2)
-			return true;
-			
-		InputStream is1= getStream(input1);
-		InputStream is2= getStream(input2);
-		
-		if (is1 == null && is2 == null)	// no byte contents
-			return true;
-		
-		try {
-			if (is1 == null || is2 == null)	// only one has contents
-				return false;
-			
-			while (true) {
-				int c1= is1.read();
-				int c2= is2.read();
-				if (c1 == -1 && c2 == -1)
-					return true;
-				if (c1 != c2)
-					break;
-				
-			}
-		} catch (IOException ex) {
-		} finally {
-			if (is1 != null) {
-				try {
-					is1.close();
-				} catch(IOException ex) {
-				}
-			}
-			if (is2 != null) {
-				try {
-					is2.close();
-				} catch(IOException ex) {
-				}
-			}
-		}
-		return false;
-	}
-	
-	/**
-	 * Tries to return an InputStream for the given object.
-	 * Returns <code>null</code> if the object not an IStreamContentAccessor
-	 * or an error occured.
-	 */
-	private InputStream getStream(Object o) {
-		if (o instanceof IStreamContentAccessor) {
-			try {
-				return ((IStreamContentAccessor)o).getContents();
-			} catch(CoreException ex) {
-			}
-		}
-		return null;
-	}
-	
-	/**
-	 * Returns the children of the given input or <code>null</code> if there are no children.
-	 * <p>
-	 * The <code>Differencer</code> implementation checks whether the input 
-	 * implements the <code>IStructureComparator</code> interface. If yes it is used
-	 * to return an array containing all children. Otherwise <code>null</code> is returned.
-	 * Subclasses may override to implement a different strategy to enumerate children.
-	 * </p>
-	 *
-	 * @param input the object for which to return children
-	 */
-	protected Object[] getChildren(Object input) {
-		if (input instanceof IStructureComparator)
-			return ((IStructureComparator)input).getChildren();
-		return null;
-	}
-	
-	/**
-	 * Called for every leaf or node compare to update progress information.
-	 * <p>
-	 * The <code>Differencer</code> implementation shows the name of the input object
-	 * as a subtask. Subclasses may override.
-	 * </p>
-	 *
-	 * @param progressMonitor the progress monitor for reporting progress
-	 * @param node the currently processed non-<code>null</code> node
-	 */
-	protected void updateProgress(IProgressMonitor progressMonitor, Object node) {
-		if (node instanceof ITypedElement) {
-			String name= ((ITypedElement)node).getName();
-			String fmt= Utilities.getString("Differencer.progressFormat"); //$NON-NLS-1$
-			String msg= MessageFormat.format(fmt, new String[] { name });
-			progressMonitor.subTask(msg);
-			//progressMonitor.worked(1);
-		}
-	}
-}
-
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DocumentRangeNode.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DocumentRangeNode.java
deleted file mode 100644
index 20044c7..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/DocumentRangeNode.java
+++ /dev/null
@@ -1,342 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.structuremergeviewer;
-
-import java.io.ByteArrayInputStream;
-import java.io.InputStream;
-import java.util.ArrayList;
-
-import org.eclipse.jface.text.*;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.compare.*;
-import org.eclipse.compare.internal.Utilities;
-import org.eclipse.compare.contentmergeviewer.IDocumentRange;
-
-
-/**
- * A document range node represents a structural element
- * when performing a structure compare of documents.
- * <code>DocumentRangeNodes</code> are created while parsing the document and represent
- * a semantic entity (e.g. a Java class or method).
- * As a consequence of the parsing a <code>DocumentRangeNode</code> maps to a range
- * of characters in the document.
- * <p>
- * Since a <code>DocumentRangeNode</code> implements the <code>IStructureComparator</code>
- * and <code>IStreamContentAccessor</code> interfaces it can be used as input to the
- * differencing engine. This makes it possible to perform
- * a structural diff on a document and have the nodes and leaves of the compare easily map
- * to character ranges within the document.
- * <p>
- * Subclasses may add additional state collected while parsing the document.
- * </p> 
- * @see Differencer
- */
-public class DocumentRangeNode
-		implements IDocumentRange, IStructureComparator, IEditableContent, IStreamContentAccessor {
-
-	private static final boolean POS_UPDATE= true;
-		
-	private IDocument fBaseDocument;
-	private Position fRange; // the range in the base document
-	private int fTypeCode;
-	private String fID;
-	private Position fAppendPosition; // a position where to insert a child textually
-	private ArrayList fChildren;
-
-	/**
-	 * Creates a new <code>DocumentRangeNode</code> for the given range within the specified
-	 * document. The <code>typeCode</code> is uninterpreted client data. The ID is used when comparing
-	 * two nodes with each other: i.e. the differencing engine performs a content compare 
-	 * on two nodes if their IDs are equal.
-	 *
-	 * @param typeCode a type code for this node
-	 * @param id an identifier for this node
-	 * @param document document on which this node is based on
-	 * @param start start position of range within document
-	 * @param length length of range
-	 */
-	public DocumentRangeNode(int typeCode, String id, IDocument document, int start, int length) {
-		
-		fTypeCode= typeCode;
-		fID= id;
-		
-		fBaseDocument= document;
-		fBaseDocument.addPositionCategory(RANGE_CATEGORY);
-		fRange= new Position(start, length);
-		
-		if (POS_UPDATE) {
-			try {
-				document.addPosition(RANGE_CATEGORY, fRange);
-			} catch (BadPositionCategoryException ex) {
-			} catch (BadLocationException ex) {
-			}
-		}
-	}
-
-	/* (non Javadoc)
-	 * see IDocumentRange.getDocument
-	 */
-	public IDocument getDocument() {
-		return fBaseDocument;
-	}
-	
-	/* (non Javadoc)
-	 * see IDocumentRange.getRange
-	 */
-	public Position getRange() {
-		return fRange;
-	}
-	
-	/**
-	 * Returns the type code of this node.
-	 * The type code is uninterpreted client data which can be set in the constructor.
-	 *
-	 * @return the type code of this node
-	 */
-	public int getTypeCode() {
-		return fTypeCode;
-	}
-	
-	/**
-	 * Returns this node's id.
-	 * It is used in <code>equals</code> and <code>hashcode</code>.
-	 *
-	 * @return the node's id
-	 */
-	public String getId() {
-		return fID;
-	}
-
-	/**
-	 * Sets this node's id.
-	 * It is used in <code>equals</code> and <code>hashcode</code>.
-	 *
-	 * @param id the new id for this node
-	 */
-	public void setId(String id) {
-		fID= id;
-	}
-
-	/**
-	 * Adds the given node as a child.
-	 *
-	 * @param node the node to add as a child
-	 */
-	public void addChild(DocumentRangeNode node) {
-		if (fChildren == null)
-			fChildren= new ArrayList();
-		fChildren.add(node);
-	}
-
-	/* (non Javadoc)
-	 * see IStructureComparator.getChildren
-	 */
-	public Object[] getChildren() {
-		if (fChildren != null)
-			return fChildren.toArray(); 
-		return new Object[0];
-	}
-
-	/**
-	 * Sets the length of the range of this node.
-	 *
-	 * @param length the length of the range
-	 */
-	public void setLength(int length) {
-		getRange().setLength(length);
-	}
-
-	/**
-	 * Sets a position within the document range that can be used to (legally) insert
-	 * text without breaking the syntax of the document.
-	 * <p>
-	 * E.g. when parsing a Java document the "append position" of a <code>DocumentRangeNode</code>
-	 * representating a Java class could be the character position just before the closing bracket.
-	 * Inserting the text of a new method there would not disturb the syntax of the class.
-	 *
-	 * @param pos the character position within the underlying document where text can be legally inserted
-	 */
-	public void setAppendPosition(int pos) {
-		if (POS_UPDATE) {
-			fBaseDocument.removePosition(fAppendPosition);
-			try {
-				Position p= new Position(pos);
-				fBaseDocument.addPosition(RANGE_CATEGORY, p);
-				fAppendPosition= p;
-			} catch (BadPositionCategoryException ex) {
-			} catch (BadLocationException ex) {
-				// ignore
-			}
-		} else {
-			fAppendPosition= new Position(pos);
-		}
-	}
-
-	/**
-	 * Returns the position that has been set with <code>setAppendPosition</code>.
-	 * If <code>setAppendPosition</code> hasn't been called, the position after the last character
-	 * of this range is returned.
-	 *
-	 * @return a position where text can be legally inserted
-	 */
-	public Position getAppendPosition() {
-		if (fAppendPosition == null) {
-			if (POS_UPDATE) {
-				try {
-					Position p= new Position(fBaseDocument.getLength());
-					fBaseDocument.addPosition(RANGE_CATEGORY, p);
-					fAppendPosition= p;
-				} catch (BadPositionCategoryException ex) {
-				} catch (BadLocationException ex) {
-					// ignore
-				}
-			} else {
-				fAppendPosition= new Position(fBaseDocument.getLength());
-			}
-		}
-		return fAppendPosition;
-	}
-
-	/**
-	 * Implementation based on <code>getID</code>.
-	 */
-	public boolean equals(Object other) {
-		if (other != null && other.getClass() == getClass()) {
-			DocumentRangeNode tn= (DocumentRangeNode) other;
-			return fTypeCode == tn.fTypeCode && fID.equals(tn.fID);
-		}
-		return super.equals(other);
-	}
-
-	/**
-	 * Implementation based on <code>getID</code>.
-	 */
-	public int hashCode() {
-		return fID.hashCode();
-	}
-
-	/**
-	 * Find corresponding position
-	 */
-	private Position findCorrespondingPosition(DocumentRangeNode otherParent, DocumentRangeNode child) {
-
-		// we try to find a predecessor of left Node which exists on the right side
-
-		if (child != null && fChildren != null) {
-			int ix= otherParent.fChildren.indexOf(child);
-			if (ix >= 0) {
-
-				for (int i= ix - 1; i >= 0; i--) {
-					DocumentRangeNode c1= (DocumentRangeNode) otherParent.fChildren.get(i);
-					int i2= fChildren.indexOf(c1);
-					if (i2 >= 0) {
-						DocumentRangeNode c= (DocumentRangeNode) fChildren.get(i2);
-						//System.out.println("  found corresponding: " + i2 + " " + c);
-						Position p= c.fRange;
-
-						//try {
-						Position po= new Position(p.getOffset() + p.getLength() + 1, 0);
-						//c.fBaseDocument.addPosition(RANGE_CATEGORY, po);
-						return po;
-						//} catch (BadLocationException ex) {
-						//}
-						//break;
-					}
-				}
-
-				for (int i= ix; i < otherParent.fChildren.size(); i++) {
-					DocumentRangeNode c1= (DocumentRangeNode) otherParent.fChildren.get(i);
-					int i2= fChildren.indexOf(c1);
-					if (i2 >= 0) {
-						DocumentRangeNode c= (DocumentRangeNode) fChildren.get(i2);
-						//System.out.println("  found corresponding: " + i2 + " " + c);
-						Position p= c.fRange;
-						//try {
-						Position po= new Position(p.getOffset(), 0);
-						//c.fBaseDocument.addPosition(RANGE_CATEGORY, po);
-						return po;
-						//} catch (BadLocationException ex) {
-						//}
-						//break;
-					}
-				}
-
-			}
-		}
-		return getAppendPosition();
-	}
-
-	private void add(String s, DocumentRangeNode parent, DocumentRangeNode child) {
-
-		Position p= findCorrespondingPosition(parent, child);
-		if (p != null) {
-			try {
-				fBaseDocument.replace(p.getOffset(), p.getLength(), s);
-			} catch (BadLocationException ex) {
-				// ignore
-			}
-		}
-	}
-	
-	/* (non Javadoc)
-	 * see IStreamContentAccessor.getContents
-	 */
-	public InputStream getContents() {
-		String s;
-		try {
-			s= fBaseDocument.get(fRange.getOffset(), fRange.getLength());
-		} catch (BadLocationException ex) {
-			s= ""; //$NON-NLS-1$
-		}
-		return new ByteArrayInputStream(Utilities.getBytes(s));
-	}
-
-	/* (non Javadoc)
-	 * see IEditableContent.isEditable
-	 */
-	public boolean isEditable() {
-		return true;
-	}
-		
-	/* (non Javadoc)
-	 * see IEditableContent.replace
-	 */
-	public ITypedElement replace(ITypedElement child, ITypedElement other) {
-
-		DocumentRangeNode src= null;
-		String srcContents= ""; //$NON-NLS-1$
-		
-		if (other != null) {
-			src= (DocumentRangeNode) child;
-			
-			if (other instanceof IStreamContentAccessor) {
-				try {
-					InputStream is= ((IStreamContentAccessor)other).getContents();
-					srcContents= Utilities.readString(is);
-				} catch(CoreException ex) {
-				}
-			}
-		}
-
-		if (child == null) // no destination: we have to add the contents into the parent
-			add(srcContents, null, src);
-
-		return child;
-	}
-	
-	/* (non Javadoc)
-	 * see IEditableContent.setContent
-	 */
-	public void setContent(byte[] content) {
-	}
-}
-
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/ICompareInput.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/ICompareInput.java
deleted file mode 100644
index 3994770..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/ICompareInput.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.structuremergeviewer;
-
-import org.eclipse.compare.ITypedElement;
-import org.eclipse.swt.graphics.Image;
-
-/**
- * Interface for objects used as input to a two-way or three-way compare viewer.
- * It defines API for accessing the three sides for the compare,
- * and a name and image which is used when displaying the three way input
- * in the UI, for example, in a title bar.
- * <p>
- * Note: at most two sides of an <code>ICompareInput</code> can be <code>null</code>,
- * (as it is normal for additions or deletions) but not all three.
- * <p>
- * <code>ICompareInput</code> provides methods for registering
- * <code>ICompareInputChangeListener</code>s
- * that get informed if one (or more)
- * of the three sides of an <code>ICompareInput</code> object changes its value.
- * <p>
- * For example when accepting an incoming addition
- * the (non-<code>null</code>) left side of an <code>ICompareInput</code>
- * is copied to the right side by means of method <code>copy</code>.
- * This should trigger a call to <code>compareInputChanged</code> of registered
- * <code>ICompareInputChangeListener</code>s. 
- * <p>
- * Clients can implement this interface, or use the convenience implementation 
- * <code>DiffNode</code>.
- * </p>
- * 
- * @see StructureDiffViewer
- * @see org.eclipse.compare.contentmergeviewer.ContentMergeViewer
- * @see DiffNode
- */
-public interface ICompareInput {
-
-	/**
-	 * Returns name of input.
-	 * This name is displayed when this input is shown in a viewer.
-	 * In many cases this name is the name of one of the non-<code>null</code> sides or a combination
-	 * thereof.
-	 *
-	 * @return name of input
-	 */
-	String getName();
-	
-	/**
-	 * Returns an image representing this input.
-	 * This image is typically displayed when this input is shown in a viewer.
-	 * In many cases this image is the image of one of the non-<code>null</code> sides.
-	 *
-	 * @return image representing this input, or <code>null</code> if no icon should be shown
-	 */
-	Image getImage();
-
-	/**
-	 * Returns the kind of difference between the
-	 * three sides ancestor, left and right.
-	 * This field is only meaningful if the <code>ICompareInput</code>
-	 * is the result of another compare. In this case it is used
-	 * together with <code>getImage</code> to compose a icon
-	 * which reflects the kind of difference between the two or three elements.
-	 *
-	 * @return kind of difference (see <code>Differencer</code>)
-	 */
-	int getKind();
-	
-	/**
-	 * Returns the ancestor side of this input.
-	 * Returns <code>null</code> if this input has no ancestor
-	 * or in the two-way compare case.
-	 *
-	 * @return the ancestor of this input, or <code>null</code>
-	 */
-	ITypedElement getAncestor();
-	
-	/**
-	 * Returns the left side of this input.
-	 * Returns <code>null</code> if there is no left side (deletion or addition).
-	 *
-	 * @return the left side of this input, or <code>null</code>
-	 */
-	ITypedElement getLeft();
-	
-	/**
-	 * Returns the right side of this input.
-	 * Returns <code>null</code> if there is no right side (deletion or addition).
-	 *
-	 * @return the right side of this input, or <code>null</code>
-	 */
-	ITypedElement getRight();
-	
-	/**
-	 * Registers the given listener for notification.
-	 * If the identical listener is already registered the method has no effect.
-	 *
-	 * @param listener the listener to register for changes of this input
-	 */
-	void addCompareInputChangeListener(ICompareInputChangeListener listener);
-	
-	/**
-	 * Unregisters the given listener.
-	 * If the identical listener is not registered the method has no effect.
-	 *
-	 * @param listener the listener to unregister
-	 */
-	void removeCompareInputChangeListener(ICompareInputChangeListener listener);
-	
-	/**
-	 * Copy one side (source) to the other side (destination) depending on the 
-	 * value of <code>leftToRight</code>. This method is called from
-	 * a merge viewer if a corresponding action ("take left" or "take right")
-	 * has been pressed.
-	 * <p>
-	 * The implementation should handle the following cases:
-	 * <UL>
-	 * <LI>
-	 * if the source side is <code>null</code> the destination must be deleted,
-	 * <LI>
-	 * if the destination is <code>null</code> the destination must be created
-	 * and filled with the contents from the source,
-	 * <LI>
-	 * if both sides are non-<code>null</code> the contents of source must be copied to destination.
-	 * </UL>
-	 * In addition the implementation should send out notification to the registered
-	 * <code>ICompareInputChangeListener</code>.
-	 * 
-	 * @param leftToRight if <code>true</code> the left side is copied to the right side.
-	 * If <code>false</code> the right side is copied to the left side
-	 */
-	void copy(boolean leftToRight);
-}
-
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/ICompareInputChangeListener.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/ICompareInputChangeListener.java
deleted file mode 100644
index 4cb79df..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/ICompareInputChangeListener.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.structuremergeviewer;
-
-/**
- * Listener that gets informed if one (or more)
- * of the three sides of an <code>ICompareInput</code> object changes its value.
- * <p>
- * For example when accepting an incoming addition
- * the (non-null) left side of an <code>ICompareInput</code>
- * is copied to the right side (which was <code>null</code>).
- * This triggers a call to <code>compareInputChanged</code> of registered
- * <code>ICompareInputChangeListener</code>. 
- * <p>
- * Note however, that listener are not informed if the content of one of the sides changes.
- * <p>
- * Clients may implement this interface. It is also implemented by viewers that take 
- * an <code>ICompareInput</code> as input.
- * </p>
- */
-public interface ICompareInputChangeListener {
-	
-	/**
-	 * Called whenever the value (not the content) of one or more of the three sides 
- 	 * of a <code>ICompareInput</code> has changed.
-	 *
-	 * @param source the <code>ICompareInput</code> that has changed
-	 */
-	void compareInputChanged(ICompareInput source);
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/IDiffContainer.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/IDiffContainer.java
deleted file mode 100644
index bda0662..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/IDiffContainer.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.structuremergeviewer;
-
-/**
- * <code>IDiffContainer</code> is a <code>IDiffElement</code> with children.
- * <p>
- * <code>IDiffContainer</code> are the inner nodes displayed
- * by the <code>DiffTreeViewer</code>.
- * <code>IDiffContainer</code> are typically created as the result of performing
- * a compare with the <code>Differencer</code>.
- * <p>
- * Clients may implement this interface, or use one of the standard implementations,
- * <code>DiffContainer</code> or <code>DiffNode</code>.
- *
- * @see Differencer
- * @see DiffTreeViewer
- */
-public interface IDiffContainer extends IDiffElement {
-
-	/**
-	 * Returns whether this container has at least one child.
-	 * In some cases this methods avoids having to call the
-	 * potential more costly <code>getChildren</code> method.
-	 * 
-	 * @return <code>true</code> if this container has at least one child 
-	 */
-	boolean hasChildren();
-
-	/**
-	 * Returns the children of this container.
-	 * If this container has no children an empty array is returned (not <code>null</code>).
-	 * 
-	 * @return the children of this container as an array
-	 */
-	IDiffElement[] getChildren();
-
-	/**
-	 * Adds the given child to this container.
-	 * If the child is already contained in this container, this method has no effect.
-	 *
-	 * @param child the child to be added to this container
-	 */
-	void add(IDiffElement child);
-	
-	/**
-	 * Removes the given child from this container.
-	 * If the container becomes empty it is removed from its container.
-	 * If the child is not contained in this container, this method has no effect.
-	 *
-	 * @param child the child to be removed from this container
-	 */
-	void removeToRoot(IDiffElement child);
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/IDiffElement.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/IDiffElement.java
deleted file mode 100644
index f70b7eb..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/IDiffElement.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.structuremergeviewer;
-
-import org.eclipse.compare.ITypedElement;
-
-/**
- * An <code>IDiffElement</code> is used in the <code>DiffTreeViewer</code>
- * to display the kind of change detected as the result of a two-way or three-way compare.
- * <p>
- * The base interface <code>ITypedElement</code> provides a name, a type, and an image.
- * <code>IDiffElement</code> adds API for maintaining a parent relationship.
- * <p>
- * <code>DiffTreeViewer</code> works on a tree of <code>IDiffElements</code>.
- * Leaf elements must implement the
- * <code>IDiffElement</code> interface, inner nodes the <code>IDiffContainer</code> interface.
- * <p>
- * <code>IDiffElement</code>s are typically created as the result of performing
- * a compare with the <code>Differencer</code>.
- * <p>
- * Clients may implement this interface, or use one of the standard implementations,
- * <code>DiffElement</code>, <code>DiffContainer</code>, or <code>DiffNode</code>.
- *
- * @see DiffTreeViewer
- * @see DiffElement
- * @see DiffContainer
- * @see DiffNode
- */
-public interface IDiffElement extends ITypedElement {
-	
-	/**
-	 * Returns the kind of difference as defined in <code>Differencer</code>.
-	 *
-	 * @return the kind of difference as defined in <code>Differencer</code>
-	 */
-	int getKind();
-
-	/**
-	 * Returns the parent of this element.
-	 * If the object is the root of a hierarchy <code>null</code> is returned.
-	 *
-	 * @return the parent of this element, or <code>null</code> if the element has no parent
-	 */
-	IDiffContainer getParent();
-
-	/**
-	 * Sets the parent of this element.
-	 *
-	 * @param parent the new parent of this element, or <code>null</code> if this
-	 *   element is to have no parent
-	 */
-	void setParent(IDiffContainer parent);
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/IStructureComparator.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/IStructureComparator.java
deleted file mode 100644
index 4a07c3f..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/IStructureComparator.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.structuremergeviewer;
-
-/**
- * Interface used to compare hierarchical structures.
- * It is used by the differencing engine.
- * <p>
- * Clients typically implement this interface in an adaptor class which 
- * wrappers the objects to be compared.
- *
- * @see org.eclipse.compare.ResourceNode
- * @see Differencer
- */
-public interface IStructureComparator {
-
-	/**
-	 * Returns an iterator for all children of this object or <code>null</code>
-	 * if there are no children.
-	 *
-	 * @return an array with all children of this object, or an empty array if there are no children
-	 */
-	Object[] getChildren();
-
-	/**
-	 * Returns whether some other object is "equal to" this one
-	 * with respect to a structural comparison. For example, when comparing
-	 * Java class methods, <code>equals</code> would return <code>true</code>
-	 * if two methods have the same signature (the argument names and the 
-	 * method body might differ).
-	 *
-	 * @param other the reference object with which to compare
-	 * @return <code>true</code> if this object is the same as the other argument; <code>false</code> otherwise
-	 * @see java.lang.Object#equals
-	 */
-	boolean equals(Object other);
-}
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/IStructureCreator.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/IStructureCreator.java
deleted file mode 100644
index e75dec7..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/IStructureCreator.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.structuremergeviewer;
-
-/**
- * Interface used to create a hierarchical structure of
- * <code>IStructureComparator</code>s for a given input object.
- * In addition, it provides methods for locating a path in the hierarchical structure
- * and to map a node of this structure back to the corresponding input object.
- * <p>
- * Structure creators are used in the following contexts:
- * <ul>
- * <li>
- * the <code>StructureDiffViewer</code> uses an <code>IStructureCreator</code> to
- * build two (or three) tree structures of its input elements (method <code>getStructure</code>).
- * These trees are then compared with each other by means of the differencing engine and displayed
- * with the <code>DiffTreeViewer</code>,
- * </li>
- * <li>
- * the <code>ReplaceWithEditionDialog</code> uses an <code>IStructureCreator</code>
- * to map a path back to a range of characters in the textual representation.
- * </li>
- * </ul>
- * A <code>IStructureCreator</code> provides methods for rewriting the tree produced by the differencing
- * engine to support "smart" structural differencing. E.g. certain patterns of pairs of "addition"
- * and "deletion" nodes can be detected as renames and merged into a single node.
- * </p>
- * <p>
- * Clients may implement this interface; there is no standard implementation.
- * </p>
- *
- * @see StructureDiffViewer
- * @see org.eclipse.compare.EditionSelectionDialog
- * @see Differencer
- */
-public interface IStructureCreator {
-
-	/**
-	 * Returns a descriptive name which can be used in the UI of the <code>StructureDiffViewer</code>.
-	 *
-	 * @return a descriptive name for this <code>IStructureCreator</code>
-	 */
-	String getName();
-
-	/**
-	 * Creates a tree structure consisting of <code>IStructureComparator</code>s
-	 * from the given object and returns its root object.
-	 * Implementing this method typically involves parsing the input object.
-	 * In case of an error (e.g. a parsing error) the value <code>null</code> is returned.
-	 *
-	 * @param input the object from which to create the tree of <code>IStructureComparator</code>
-	 * @return the root node of the structure or <code>null</code> in case of error
-	 */
-	IStructureComparator getStructure(Object input);
-
-	/**
-	 * Creates the single node specified by path from the given input object.
-	 * In case of an error (e.g. a parsing error) the value <code>null</code> is returned.
-	 * This method is similar to <code>getStructure</code> but in
-	 * contrast to <code>getStructure</code> only a single node without any children must be returned.
-	 * This method is used in the <code>ReplaceWithEditionDialog</code> to locate a sub element
-	 * (e.g. a method) within an input object (e.g. a file containing source code).
-	 * <p>
-	 * One (not optimized) approach to implement this method is calling <code>getStructure(input)</code>
-	 * to build the full tree, and then finding that node within the tree that is specified
-	 * by <code>path</code>.
-	 * <p>
-	 * The syntax of <code>path</code> is not specified, because it is treated by the compare subsystem
-	 * as an opaque entity and is not further interpreted. Clients using this functionality
-	 * will pass a value of <code>path</code> to the <code>selectEdition</code>
-	 * method of <code>ReplaceWithEditionDialog</code> and will receive this value unchanged
-	 * as an argument to <code>locate</code>.
-	 *
-	 * @param path specifies a sub object within the input object
-	 * @param input the object from which to create the <code>IStructureComparator</code>
-	 * @return the single node specified by <code>path</code> or <code>null</code>
-	 *
-	 * @see org.eclipse.compare.EditionSelectionDialog#selectEdition
-	 */
-	IStructureComparator locate(Object path, Object input);
-
-	/**
-	 * Returns the contents of the given node as a string for the purpose
-	 * of performing a content comparison only (that is the string will not be visible in the UI).
-	 * If <code>ignoreWhitespace</code> is <code>true</code> all character sequences considered
-	 * whitespace should be removed from the returned string.
-	 *
-	 * @param node the node for which to return a string representation
-	 * @param ignoreWhitespace if <code>true</code> the returned string should not contain whitespace
-	 * @return the string contents of the given node
-	 */
-	String getContents(Object node, boolean ignoreWhitespace);
-
-	/**
-	 * Called whenever a copy operation has been performed on a tree node.
-	 *
-	 * @param node the node for which to save the new content
-	 * @param input the object from which the structure tree was created in <code>getStructure</code>
-	 */
-	void save(IStructureComparator node, Object input);
-}
-
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/StructureDiffViewer.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/StructureDiffViewer.java
deleted file mode 100644
index df04b03..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/StructureDiffViewer.java
+++ /dev/null
@@ -1,370 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.structuremergeviewer;
-
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.jface.util.PropertyChangeEvent;
-
-import org.eclipse.compare.*;
-import org.eclipse.compare.internal.*;
-
-
-/**
- * A diff tree viewer that can be configured with a <code>IStructureCreator</code>
- * to retrieve a hierarchical structure from the input object (an <code>ICompareInput</code>)
- * and perform a two-way or three-way compare on it.
- * <p>
- * This class may be instantiated; it is not intended to be subclassed outside
- * this package.
- * </p>
- *
- * @see IStructureCreator
- * @see ICompareInput
- */
-public class StructureDiffViewer extends DiffTreeViewer {
-		
-	private Differencer fDifferencer;
-	private boolean fThreeWay= false;
-	
-	private ITypedElement fAncestorInput;
-	private ITypedElement fLeftInput;
-	private ITypedElement fRightInput;
-	
-	private IStructureComparator fAncestorStructure;
-	private IStructureComparator fLeftStructure;
-	private IStructureComparator fRightStructure;
-	
-	private IStructureCreator fStructureCreator;
-	private IDiffContainer fRoot;
-	private IContentChangeListener fContentChangedListener;
-	private CompareViewerSwitchingPane fParent;
-		
-	/**
-	 * Creates a new viewer for the given SWT tree control with the specified configuration.
-	 *
-	 * @param tree the tree control
-	 * @param configuration the configuration for this viewer
-	 */
-	public StructureDiffViewer(Tree tree, CompareConfiguration configuration) {
-		super(tree, configuration);
-		Composite c= tree.getParent();
-		if (c instanceof CompareViewerSwitchingPane)
-			fParent= (CompareViewerSwitchingPane) c;
-		initialize();
-	}
-	
-	/**
-	 * Creates a new viewer under the given SWT parent with the specified configuration.
-	 *
-	 * @param parent the SWT control under which to create the viewer
-	 * @param configuration the configuration for this viewer
-	 */
-	public StructureDiffViewer(Composite parent, CompareConfiguration configuration) {
-		super(parent, configuration);
-		if (parent instanceof CompareViewerSwitchingPane)
-			fParent= (CompareViewerSwitchingPane) parent;
-		initialize();
-	}
-	
-	private void initialize() {
-		
-		setAutoExpandLevel(3);
-		
-		fContentChangedListener= new IContentChangeListener() {
-			public void contentChanged(IContentChangeNotifier changed) {
-				StructureDiffViewer.this.contentChanged(changed);
-			}
-		};
-		new ICompareInputChangeListener() {
-			public void compareInputChanged(ICompareInput input) {
-				StructureDiffViewer.this.compareInputChanged(input);
-			}
-		};
-	}
-	
-	/**
-	 * Configures the <code>StructureDiffViewer</code> with a structure creator.
-	 * The structure creator is used to create a hierarchical structure
-	 * for each side of the viewer's input element of type <code>ICompareInput</code>.
-	 *
-	 * @param structureCreator the new structure creator
-	 */
-	public void setStructureCreator(IStructureCreator structureCreator) {
-		if (fStructureCreator != structureCreator) {
-			fStructureCreator= structureCreator;
-			Control tree= getControl();
-			if (tree != null && !tree.isDisposed())
-				tree.setData(CompareUI.COMPARE_VIEWER_TITLE, getTitle());
-		}
-	}
-	
-	/**
-	 * Returns the structure creator or <code>null</code> if no
-	 * structure creator has been set with <code>setStructureCreator</code>.
-	 *
-	 * @return the structure creator or <code>null</code>
-	 */
-	public IStructureCreator getStructureCreator() {
-		return fStructureCreator;
-	}
-	
-	/**
-	 * Reimplemented to get the descriptive title for this viewer from the <code>IStructureCreator</code>.
-	 */
-	public String getTitle() {
-		if (fStructureCreator != null)
-			return fStructureCreator.getName();
-		return super.getTitle();
-	}
-	
-	/**
-	 * Overridden because the input of this viewer is not identical to the root of the tree.
-	 * The tree's root is a IDiffContainer that was returned from the method <code>diff</code>.
-	 * 
-	 * @return the root of the diff tree produced by method <code>diff</code>
-	 */
-	protected Object getRoot() {
-		return fRoot;
-	}
-	
-	/**
-	 * Overridden to create the comparable structures from the input object
-	 * and to feed them through the differencing engine. Note: for this viewer
-	 * the value from <code>getInput</code> is not identical to <code>getRoot</code>.
-	 */
-	protected void inputChanged(Object input, Object oldInput) {
-		if (input instanceof ICompareInput) {
-			compareInputChanged((ICompareInput) input);
-			if (input != oldInput)
-				initialSelection();
-		}
-	}
-	
-	protected void initialSelection() {
-		expandToLevel(2);
-	}
-
-	/* (non Javadoc)
-	 * Overridden to unregister all listeners.
-	 */
-	protected void handleDispose(DisposeEvent event) {
-		
-		compareInputChanged(null);
-		
-		fContentChangedListener= null;
-				
-		super.handleDispose(event);
-	}
-	
-	/**
-	 * Recreates the comparable structures for the input sides.
-	 */
-	protected void compareInputChanged(ICompareInput input) {
-		ITypedElement t= null;
-		boolean changed= false;
-		
-		if (input != null)
-			t= input.getAncestor();
-			
-		fThreeWay= (t != null);
-		
-		if (t != fAncestorInput) {
-			if (fAncestorInput instanceof IContentChangeNotifier)
-				((IContentChangeNotifier)fAncestorInput).removeContentChangeListener(fContentChangedListener);
-			fAncestorInput= t;
-			if (fAncestorInput != null) {
-				fAncestorStructure= fStructureCreator.getStructure(fAncestorInput);
-				changed= true;
-			} else
-				fAncestorStructure= null;
-			if (fAncestorInput instanceof IContentChangeNotifier)
-				((IContentChangeNotifier)fAncestorInput).addContentChangeListener(fContentChangedListener);
-		}
-		
-		if (input != null)
-			t= input.getLeft();
-		if (t != fLeftInput) {
-			if (fLeftInput instanceof IContentChangeNotifier)
-				((IContentChangeNotifier)fLeftInput).removeContentChangeListener(fContentChangedListener);
-			fLeftInput= t;
-			if (fLeftInput != null) {
-				fLeftStructure= fStructureCreator.getStructure(fLeftInput);
-				changed= true;
-			} else
-				fLeftStructure= null;
-			if (fLeftInput instanceof IContentChangeNotifier)
-				((IContentChangeNotifier)fLeftInput).addContentChangeListener(fContentChangedListener);
-		}
-		
-		if (input != null)
-			t= input.getRight();
-		if (t != fRightInput) {
-			if (fRightInput instanceof IContentChangeNotifier)
-				((IContentChangeNotifier)fRightInput).removeContentChangeListener(fContentChangedListener);
-			fRightInput= t;
-			if (fRightInput != null) {
-				fRightStructure= fStructureCreator.getStructure(fRightInput);
-				changed= true;
-			} else
-				fRightStructure= null;
-			if (fRightInput instanceof IContentChangeNotifier)
-				((IContentChangeNotifier)fRightInput).addContentChangeListener(fContentChangedListener);
-		}
-		
-		if (changed)
-			diff();
-	}
-	
-	/**
-	 * Calls <code>diff</code> whenever the byte contents changes.
-	 */
-	protected void contentChanged(IContentChangeNotifier changed) {
-		
-		if (fStructureCreator == null)
-			return;
-			
-		if (changed != null) {
-			if (changed == fAncestorInput) {
-				fAncestorStructure= fStructureCreator.getStructure(fAncestorInput);
-			} else if (changed == fLeftInput) {
-				fLeftStructure= fStructureCreator.getStructure(fLeftInput);
-			} else if (changed == fRightInput) {
-				fRightStructure= fStructureCreator.getStructure(fRightInput);
-			} else
-				return;
-		} else {
-			fAncestorStructure= fStructureCreator.getStructure(fAncestorInput);
-			fLeftStructure= fStructureCreator.getStructure(fLeftInput);
-			fRightStructure= fStructureCreator.getStructure(fRightInput);
-		}
-		
-		diff();
-	}
-
-	/**
-	 * This method is called from within <code>diff()</code> before the difference
-	 * tree is being built.
-	 * Clients may override this method to perform their own pre-processing.
-	 * This default implementation does nothing.
-	 * @param ancestor the ancestor input to the differencing operation
-	 * @param left the left input to the differencing operation
-	 * @param right the right input to the differencing operation
-	 * @since 2.0
-	 */
-	protected void preDiffHook(IStructureComparator ancestor, IStructureComparator left, IStructureComparator right) {
-		// we do nothing here
-	}
-	
-	/**
-	 * Runs the difference engine and refreshes the tree.
-	 */
-	protected void diff() {
-		
-		preDiffHook(fAncestorStructure, fLeftStructure, fRightStructure);
-							
-		String message= null;
-		
-		if ((fThreeWay && fAncestorStructure == null) || fLeftStructure == null || fRightStructure == null) {
-			// could not get structure of one (or more) of the legs
-			fRoot= null;
-			message= CompareMessages.getString("StructureDiffViewer.StructureError");	//$NON-NLS-1$
-			
-		} else {	// calculate difference of the two (or three) structures
-
-			if (fDifferencer == null)
-				fDifferencer= new Differencer() {
-					protected boolean contentsEqual(Object o1, Object o2) {
-						return StructureDiffViewer.this.contentsEqual(o1, o2);
-					}
-					protected Object visit(Object data, int result, Object ancestor, Object left, Object right) {
-						Object o= super.visit(data, result, ancestor, left, right);
-						if (fLeftIsLocal && o instanceof DiffNode)
-							((DiffNode)o).swapSides(fLeftIsLocal);
-						return o;
-					}
-				};
-			
-			fRoot= (IDiffContainer) fDifferencer.findDifferences(fThreeWay, null, null,
-					fAncestorStructure, fLeftStructure, fRightStructure);
-					
-			if (fRoot == null || fRoot.getChildren().length == 0) {
-				message= CompareMessages.getString("StructureDiffViewer.NoStructuralDifferences");	//$NON-NLS-1$
-			} else {
-				postDiffHook(fDifferencer, fRoot);
-			}
-		}
-		if (fParent != null)
-			fParent.setTitleArgument(message);
-			
-		refresh(getRoot());
-	}
-	
-	/**
-	 * This method is called from within <code>diff()</code> after the difference
-	 * tree has been built.
-	 * Clients may override this method to perform their own post-processing.
-	 * This default implementation does nothing.
-	 * @param differencer the differencer used to perform the differencing
-	 * @param root the non-<code>null</code> root node of the difference tree
-	 * @since 2.0
-	 */
-	protected void postDiffHook(Differencer differencer, IDiffContainer root) {
-		// we do nothing here
-	}
-	
-	/**
-	 * Performs a byte compare on the given objects.
-	 * Called from the difference engine.
-	 * Returns <code>null</code> if no structure creator has been set.
-	 */
-	private boolean contentsEqual(Object o1, Object o2) {
-		if (fStructureCreator != null) {
-			boolean ignoreWhiteSpace= Utilities.getBoolean(getCompareConfiguration(), CompareConfiguration.IGNORE_WHITESPACE, false);		
-			String s1= fStructureCreator.getContents(o1, ignoreWhiteSpace);
-			String s2= fStructureCreator.getContents(o2, ignoreWhiteSpace);
-			if (s1 == null || s2 == null)
-				return false;
-			return s1.equals(s2);
-		}
-		return false;
-	}
-	
-	/**
-	 * Tracks property changes of the configuration object.
-	 * Clients may override to track their own property changes.
-	 * In this case they must call the inherited method.
-	 */
-	protected void propertyChange(PropertyChangeEvent event) {
-		String key= event.getProperty();
-		if (key.equals(CompareConfiguration.IGNORE_WHITESPACE))
-			diff();
-		else
-			super.propertyChange(event);
-	}
-		
-	/**
-	 * Overridden to call the <code>save</code> method on the structure creator after
-	 * nodes have been copied from one side to the other side of an input object.
-	 *
-	 * @param leftToRight if <code>true</code> the left side is copied to the right side.
-	 * If <code>false</code> the right side is copied to the left side
-	 */
-	protected void copySelected(boolean leftToRight) {
-		super.copySelected(leftToRight);
-		
-		if (fStructureCreator != null)
-			fStructureCreator.save(
-							leftToRight ? fRightStructure : fLeftStructure,
-							leftToRight ? fRightInput : fLeftInput);
-	}
-}
-
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/package.html b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/package.html
deleted file mode 100644
index 60257a4..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/structuremergeviewer/package.html
+++ /dev/null
@@ -1,79 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="Author" content="IBM">
-   <meta name="GENERATOR" content="Mozilla/4.75 [en] (WinNT; U) [Netscape]">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-Provides support for finding and displaying the differences
-between hierarchically structured data.
-<h2>
-Package Specification</h2>
-
-The class <b>Differencer</b> is a differencing engine for hierarchically
-structured data. It takes two or three inputs and performs a two-way or
-three-way compare on them.
-<p>
-
-If the input elements to the differencing engine implement the <b>IStructureComparator</b>
-interface the engine recursively applies itself to the children of
-the input element. Leaf elements must implement the <b>org.eclipse.compare.IStreamContentAccessor</b>
-interface so that the differencer can perform a bytewise comparison on their contents.
-<p>
-
-One good example for this is <b>org.eclipse.compare.ResourceNode</b> which implements both interfaces
-(and more) for Eclipse workspace resources (org.eclipse.core.resources.IResource).
-<p>
-
-Another example is the <b>DocumentRangeNode</b> which can be used to compare hierarchical structures
-that are superimposed on a document, that is where nodes and leafs correspond to ranges in a document
-(<b>org.eclipse.compare.contentmergeviewer.IDocumentRange</b>).
-<br>
-Typically <b>DocumentRangeNode</b>s are created while parsing a document and they represent
-the semantic entities of the document (e.g. a Java class, method or field).
-The two subclasses <b>JavaNode</b> (in org.eclipse.jdt.internal.ui.compare)
-and <b>PropertyNode</b> (in org.eclipse.jdt.internal.ui.compare) are good examples for this.
-<p>
-
-By default the differencing engine returns the result of the compare operation
-as a tree of <b>DiffNode</b> objects. However, this can be changed by overriding
-a single method of the engine.
-<p>
-
-Every <b>DiffNode</b> describes the changes among the two or three inputs.
-<p>
-
-A tree of <b>DiffNodes</b> can be displayed in a <b>DiffTreeViewer</b>.
-The <b>DiffTreeViewer</b> requires that inner nodes of the tree implement
-the <b>IDiffContainer</b> interface and leafs the <b>IDiffElement</b> interface.
-<p>
-
-The typical steps to compare hierarchically structured data and to display
-the differences would be to:
-<ul>
-<li>
-map the input data into a tree of <b>IStructureComparator</b> and <b>IStreamContentAccessor</b>s,</li>
-
-<li>
-perform the compare operation by means of the <b>Differencer</b>, and</li>
-
-<li>
-feed the differencing result into the <b>DiffTreeViewer</b>.</li>
-
-</ul>
-
-The <b>StructureDiffViewer</b> is a specialized <b>DiffTreeViewer</b>
-that automates the three steps from above. It takes a single input object
-of type <b>ICompareInput</b> from which it retrieves the two or three
-input elements to compare. Then it uses a <b>IStructureCreator</b> to
-extract a tree of <b>IStructureComparator</b> and <b>IStreamContentAccessor</b>
-from them. These trees are then compared with the differencing engine and
-the result is displayed in the tree viewer.
-<p>
-
-
-
-</body>
-</html>
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/clcl16/ancestorpane_co.gif b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/clcl16/ancestorpane_co.gif
deleted file mode 100644
index 0088c97..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/clcl16/ancestorpane_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/clcl16/copy_l_co.gif b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/clcl16/copy_l_co.gif
deleted file mode 100644
index 6c83c45..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/clcl16/copy_l_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/clcl16/copy_r_co.gif b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/clcl16/copy_r_co.gif
deleted file mode 100644
index a3a444a..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/clcl16/copy_r_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/clcl16/copycont_l_co.gif b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/clcl16/copycont_l_co.gif
deleted file mode 100644
index 706dc02..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/clcl16/copycont_l_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/clcl16/copycont_r_co.gif b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/clcl16/copycont_r_co.gif
deleted file mode 100644
index b95e26a..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/clcl16/copycont_r_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/clcl16/next_nav.gif b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/clcl16/next_nav.gif
deleted file mode 100644
index 8392f33..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/clcl16/next_nav.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/clcl16/prev_nav.gif b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/clcl16/prev_nav.gif
deleted file mode 100644
index 9b278e6..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/clcl16/prev_nav.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/clcl16/smartmode_co.gif b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/clcl16/smartmode_co.gif
deleted file mode 100644
index c2a47b6..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/clcl16/smartmode_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/clcl16/syncpane_co.gif b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/clcl16/syncpane_co.gif
deleted file mode 100644
index 3aabbce..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/clcl16/syncpane_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/clcl16/twowaycompare_co.gif b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/clcl16/twowaycompare_co.gif
deleted file mode 100644
index 2045dae..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/clcl16/twowaycompare_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ctool16/conflict_edit.gif b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ctool16/conflict_edit.gif
deleted file mode 100644
index ecde52e..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ctool16/conflict_edit.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ctool16/ignorews_edit.gif b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ctool16/ignorews_edit.gif
deleted file mode 100644
index 097ecdd..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ctool16/ignorews_edit.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/cview16/compare_view.gif b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/cview16/compare_view.gif
deleted file mode 100644
index 41800a0..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/cview16/compare_view.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/dlcl16/ancestorpane_co.gif b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/dlcl16/ancestorpane_co.gif
deleted file mode 100644
index 6e00dee..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/dlcl16/ancestorpane_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/dlcl16/copy_l_co.gif b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/dlcl16/copy_l_co.gif
deleted file mode 100644
index cb11ac9..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/dlcl16/copy_l_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/dlcl16/copy_r_co.gif b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/dlcl16/copy_r_co.gif
deleted file mode 100644
index 202b041..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/dlcl16/copy_r_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/dlcl16/copycont_l_co.gif b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/dlcl16/copycont_l_co.gif
deleted file mode 100644
index 4e9a3eb..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/dlcl16/copycont_l_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/dlcl16/copycont_r_co.gif b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/dlcl16/copycont_r_co.gif
deleted file mode 100644
index e84103f..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/dlcl16/copycont_r_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/dlcl16/next_nav.gif b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/dlcl16/next_nav.gif
deleted file mode 100644
index 6cbeced..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/dlcl16/next_nav.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/dlcl16/prev_nav.gif b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/dlcl16/prev_nav.gif
deleted file mode 100644
index a3441a0..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/dlcl16/prev_nav.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/dlcl16/smartmode_co.gif b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/dlcl16/smartmode_co.gif
deleted file mode 100644
index 6f55d90..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/dlcl16/smartmode_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/dlcl16/syncpane_co.gif b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/dlcl16/syncpane_co.gif
deleted file mode 100644
index 2a8541c..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/dlcl16/syncpane_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/dlcl16/twowaycompare_co.gif b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/dlcl16/twowaycompare_co.gif
deleted file mode 100644
index ecab864..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/dlcl16/twowaycompare_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/dtool16/conflict_edit.gif b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/dtool16/conflict_edit.gif
deleted file mode 100644
index c76fcc7..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/dtool16/conflict_edit.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/dtool16/ignorews_edit.gif b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/dtool16/ignorews_edit.gif
deleted file mode 100644
index 55147cc..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/dtool16/ignorews_edit.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/elcl16/ancestorpane_co.gif b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/elcl16/ancestorpane_co.gif
deleted file mode 100644
index 3ce77c8..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/elcl16/ancestorpane_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/elcl16/copy_l_co.gif b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/elcl16/copy_l_co.gif
deleted file mode 100644
index d9f5900..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/elcl16/copy_l_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/elcl16/copy_r_co.gif b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/elcl16/copy_r_co.gif
deleted file mode 100644
index 61289f1..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/elcl16/copy_r_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/elcl16/copycont_l_co.gif b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/elcl16/copycont_l_co.gif
deleted file mode 100644
index 4fdde61..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/elcl16/copycont_l_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/elcl16/copycont_r_co.gif b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/elcl16/copycont_r_co.gif
deleted file mode 100644
index feb14bf..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/elcl16/copycont_r_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/elcl16/next_nav.gif b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/elcl16/next_nav.gif
deleted file mode 100644
index 03b7af3..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/elcl16/next_nav.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/elcl16/prev_nav.gif b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/elcl16/prev_nav.gif
deleted file mode 100644
index dd65c52..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/elcl16/prev_nav.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/elcl16/smartmode_co.gif b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/elcl16/smartmode_co.gif
deleted file mode 100644
index e0a262e..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/elcl16/smartmode_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/elcl16/syncpane_co.gif b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/elcl16/syncpane_co.gif
deleted file mode 100644
index 3e45390..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/elcl16/syncpane_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/elcl16/twowaycompare_co.gif b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/elcl16/twowaycompare_co.gif
deleted file mode 100644
index 4c25322..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/elcl16/twowaycompare_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/etool16/conflict_edit.gif b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/etool16/conflict_edit.gif
deleted file mode 100644
index b4451ec..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/etool16/conflict_edit.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/etool16/ignorews_edit.gif b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/etool16/ignorews_edit.gif
deleted file mode 100644
index f816c9e..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/etool16/ignorews_edit.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/eview16/compare_view.gif b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/eview16/compare_view.gif
deleted file mode 100644
index 1030b6e..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/eview16/compare_view.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/obj16/day_obj.gif b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/obj16/day_obj.gif
deleted file mode 100644
index 96aae05..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/obj16/day_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/obj16/resource_obj.gif b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/obj16/resource_obj.gif
deleted file mode 100644
index d1e679e..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/obj16/resource_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/add_ov.gif b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/add_ov.gif
deleted file mode 100644
index 2a81156..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/add_ov.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/chg_ov.gif b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/chg_ov.gif
deleted file mode 100644
index 67b25c4..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/chg_ov.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/confadd_ov.gif b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/confadd_ov.gif
deleted file mode 100644
index e049755..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/confadd_ov.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/confchg_ov.gif b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/confchg_ov.gif
deleted file mode 100644
index 020fc54..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/confchg_ov.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/confdel_ov.gif b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/confdel_ov.gif
deleted file mode 100644
index 39ed511..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/confdel_ov.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/del_ov.gif b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/del_ov.gif
deleted file mode 100644
index 675c20f..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/del_ov.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/error_ov.gif b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/error_ov.gif
deleted file mode 100644
index 95e4db6..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/error_ov.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/inadd_ov.gif b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/inadd_ov.gif
deleted file mode 100644
index 0dc3ea8..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/inadd_ov.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/inchg_ov.gif b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/inchg_ov.gif
deleted file mode 100644
index f719405..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/inchg_ov.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/indel_ov.gif b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/indel_ov.gif
deleted file mode 100644
index 3e107d2..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/indel_ov.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/outadd_ov.gif b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/outadd_ov.gif
deleted file mode 100644
index 780da98..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/outadd_ov.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/outchg_ov.gif b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/outchg_ov.gif
deleted file mode 100644
index 4f6a316..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/outchg_ov.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/outdel_ov.gif b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/outdel_ov.gif
deleted file mode 100644
index ab48981..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/outdel_ov.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/r_inadd_ov.gif b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/r_inadd_ov.gif
deleted file mode 100644
index 14ba011..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/r_inadd_ov.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/r_inchg_ov.gif b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/r_inchg_ov.gif
deleted file mode 100644
index 0aca3c4..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/r_inchg_ov.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/r_indel_ov.gif b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/r_indel_ov.gif
deleted file mode 100644
index c377537..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/r_indel_ov.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/r_outadd_ov.gif b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/r_outadd_ov.gif
deleted file mode 100644
index 11c2d5d..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/r_outadd_ov.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/r_outchg_ov.gif b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/r_outchg_ov.gif
deleted file mode 100644
index 704d706..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/r_outchg_ov.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/r_outdel_ov.gif b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/r_outdel_ov.gif
deleted file mode 100644
index 95ec301..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/ovr16/r_outdel_ov.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/wizban/applypatch_wizban.gif b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/wizban/applypatch_wizban.gif
deleted file mode 100644
index 61a3349..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/icons/full/wizban/applypatch_wizban.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/plugin.properties b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/plugin.properties
deleted file mode 100644
index 28dbbc6..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/plugin.properties
+++ /dev/null
@@ -1,188 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-#
-# Resource strings for Compare Plug-in
-#
-pluginName= Compare Support
-providerName=Eclipse.org
-
-#
-# Extension point names
-#
-structureCreators= Structure Creator
-structureMergeViewers= Structure Merge Viewer
-contentMergeViewers= Content Merge Viewer
-contentViewers= Content Viewer
-
-#
-# CompareUIPlugin
-#
-CompareUIPlugin.dialogTitle=Compare
-CompareUIPlugin.noActiveWorkbenchPage=Can't find active workbench page
-CompareUIPlugin.compareFailed=Compare Failed
-CompareUIPlugin.openEditorError=Problems Opening Editor
-CompareUIPlugin.noDifferences=There are no differences between the selected inputs.
-
-#
-# Compare Editor
-#
-defaultCompareEditor.name= Default Compare Editor
-CompareEditor.saveError.title= Save Error
-CompareEditor.cantSaveError= Can''t save contents ({0})
-CompareEditor.invalidInput=Invalid input: not a CompareEditorInput
-CompareEditor.error.setinput.title=Problem while opening
-CompareEditor.error.setinput.message=Cannot open input:
-
-#
-# Commands
-#
-compareCategory.name= Compare
-compareCategory.description= Compare command category
-
-Command.copyRightToLeft.name= Copy from Right to Left
-Command.copyRightToLeft.description= Copy Current Change from Right to Left
-
-Command.copyLeftToRight.name= Copy from Left to Right
-Command.copyLeftToRight.description= Copy Current Change from Left to Right
-
-Command.copyAllRightToLeft.name= Copy All from Right to Left
-Command.copyAllRightToLeft.description= Copy All Changes from Right to Left
-
-Command.copyAllLeftToRight.name= Copy All from Left to Right
-Command.copyAllLeftToRight.description= Copy All Change from Left to Right
-
-Command.selectNextChange.name= Select Next Change
-Command.selectNextChange.description= Select Next Change
-
-Command.selectPreviousChange.name= Select Previous Change
-Command.selectPreviousChange.description= Select Previous Change
-
-
-#
-# Context menu & actions
-#
-CompareWithMenu.label= Comp&are With
-
-CompareWithEachOtherAction.label= &Each Other
-CompareWithEachOtherAction.tooltip= Compare the Selected Resources
-
-TeamMenu.label= T&eam
-
-CompareWithPatchAction.label= &Apply Patch...
-CompareWithPatchAction.tooltip= Apply a Patch to the Selected Resources
-
-CompareWithHistoryAction.label= &Local History...
-CompareWithHistoryAction.tooltip= Compare the Selected Resource with Local History
-
-ReplaceWithMenu.label= Rep&lace With
-
-ReplaceFromHistoryAction.label= &Local History...
-ReplaceFromHistoryAction.tooltip= Replace the Selected Resource with Local History
-
-ReplaceWithPreviousFromHistoryAction.label= &Previous from Local History
-ReplaceWithPreviousFromHistoryAction.tooltip= Replace the Selected Resource with the Previous from Local History
-
-addFromHistoryAction.label= Restore from Local Histor&y...
-addFromHistoryAction.tooltip= Restore Deleted Files from Local History
-
-#
-# Preference Page
-#
-ComparePreferencePage.name= Compare/Patch
-
-ComparePreferencePage.generalTab.label= &General
-
-ComparePreferencePage.structureCompare.label= &Open structure compare automatically
-ComparePreferencePage.showMoreInfo.label= &Show additional compare information in the status line
-ComparePreferencePage.ignoreWhitespace.label= Ignore &white space
-ComparePreferencePage.saveBeforePatching.label= A&utomatically save dirty editors before patching
-
-ComparePreferencePage.textCompareTab.label= &Text Compare
-
-ComparePreferencePage.initiallyShowAncestorPane.label= Initially show a&ncestor pane
-ComparePreferencePage.showPseudoConflicts.label= Show &pseudo conflicts
-ComparePreferencePage.synchronizeScrolling.label= Synchronize &scrolling between panes in compare viewers
-ComparePreferencePage.useSingleLine.label= Connect &ranges with single line
-
-ComparePreferencePage.preview.label= Preview:
-ComparePreferencePage.ancestor.label= Common Ancestor
-ComparePreferencePage.left.label= Local
-ComparePreferencePage.right.label= Remote
-ComparePreferencePage.backgroundColor1.label= Bac&kground Color:
-ComparePreferencePage.backgroundColor2.label= S&ystem Default
-ComparePreferencePage.backgroundColor3.label= C&ustom
-
-# Compare editor contents for Compare preview page
-ComparePreferencePage.previewAncestor= 1\n2\n3\nconflict\n4\n5
-ComparePreferencePage.previewLeft= 1\n2\noutgoing addition\n3\noutgoing change\n4\npseudo conflict\n5
-ComparePreferencePage.previewRight= 1\nincoming addition\nincoming addition\n2\n3\nincoming change\n4\npseudo conflict\n5
-
-compareFontDefiniton.label= Compare Text Font
-compareFontDefiniton.description= The compare text font is used by textual compare/merge editors.
-
-# New UI
-#ComparePreferencePage.useSplines.label= Use splines in center panel
-#ComparePreferencePage.useResolveUI.label= Use new resolve UI
-
-CompareEditorInput.defaultTitle= Compare
-
-#
-# Toolbar actions
-#
-action.IgnoreWhiteSpace.label=Ignore White Space
-action.IgnoreWhiteSpace.tooltip=Ignore White Space Where Applicable
-action.IgnoreWhiteSpace.image=etool16/ignorews_edit.gif
-
-action.Next.label=Next Difference
-action.Next.tooltip=Go to Next Difference
-action.Next.image=elcl16/next_nav.gif
-
-action.Previous.label=Previous Difference
-action.Previous.tooltip=Go to Previous Difference
-action.Previous.image=elcl16/prev_nav.gif
-
-#
-# Built in Structure Creators
-#
-ZipStructureCreator.name=Zip Archive Compare
-
-#
-# Compare Dialog
-#
-CompareDialog.commitAction.label=Commit
-CompareDialog.saveErrorTitle=Save Error 
-CompareDialog.saveErrorMessage=Can't save
-
-#
-# Compare With Each Other
-#
-ResourceCompare.taskName=Operation in Progress...
-ResourceCompare.twoWay.title=Compare ({0}-{1})
-ResourceCompare.twoWay.tooltip={0}-{1}
-ResourceCompare.threeWay.title=Compare ({0}-{1}-{2})
-ResourceCompare.threeWay.tooltip={1}-{2}
-
-#
-# DiffTreeViewer & DiffNodes
-#
-DiffTreeViewer.title= Structure Compare
-DiffNode.noName= <no name>
-DiffNode.nameFormat= {0} / {1}
-
-#
-# Differencing engine
-#
-Differencer.progressFormat= Comparing {0}
-
-#
-# Patch: rejected patch markers
-#
-rejectedPatchMarker.name= Rejected Patch
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/plugin.xml b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/plugin.xml
deleted file mode 100644
index 375ed22..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/plugin.xml
+++ /dev/null
@@ -1,316 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!-- ======================================================================= -->
-<!-- Compare UI Plugin                                                       -->
-<!-- ======================================================================= -->
-
-<plugin
-	name="%pluginName"
-	id="org.eclipse.compare"
-	version="3.0.0"
-	provider-name="%providerName"
-	class="org.eclipse.compare.internal.CompareUIPlugin">
-
-	<requires>
-      <import plugin="org.eclipse.ui"/>
-      <import plugin="org.eclipse.core.resources"/>
-	</requires>
-
-	<runtime>
-		<library name="compare.jar" >
-			<export name="*"/>
-     		<packages prefixes="org.eclipse.compare"/>
-		</library>
-	</runtime>
-		   
-<!-- Compare extension point definitions -->
-
-	<extension-point
-		id="structureCreators"
-		name="%structureCreators"
-		schema="schema/structureCreators.exsd"
-	/>
-		
-	<extension-point
-		id="structureMergeViewers"
-		name="%structureMergeViewers"
-		schema="schema/structureMergeViewers.exsd"
-	/>
-		
-	<extension-point
-		id="contentMergeViewers"
-		name="%contentMergeViewers"
-		schema="schema/contentMergeViewers.exsd"
-	/>
-		
-	<extension-point
-		id="contentViewers"
-		name="%contentViewers"
-		schema="schema/contentViewers.exsd"
-	/>
-
-<!-- Extensions -->
-
-	<extension point="org.eclipse.ui.fontDefinitions">
-		<fontDefinition
-			label="%compareFontDefiniton.label"
-			id="org.eclipse.compare.contentmergeviewer.TextMergeViewer"
-			defaultsTo="org.eclipse.jface.textfont">
-	        <description>
-				%compareFontDefiniton.description
-			</description>
-		</fontDefinition>
-	</extension>
-
-	<extension point="org.eclipse.core.resources.markers"
-		id="rejectedPatchMarker" name="%rejectedPatchMarker.name">
-		<super type="org.eclipse.core.resources.taskmarker"/>
-		<persistent value="true"/>
-	</extension>
-
-	<extension point="org.eclipse.ui.editors">
-    	<editor id="org.eclipse.compare.CompareEditor"
-      		name="%defaultCompareEditor.name"
- 			icon="icons/full/cview16/compare_view.gif"     	  
-      		class="org.eclipse.compare.internal.CompareEditor"
-			contributorClass="org.eclipse.compare.internal.CompareEditorContributor">
-    	</editor>
-	</extension>
-
-	<extension
-		point="org.eclipse.ui.preferencePages">
-		<page name="%ComparePreferencePage.name"
-			id="org.eclipse.compare.internal.ComparePreferencePage"
-			class="org.eclipse.compare.internal.ComparePreferencePage"
-			category= "org.eclipse.ui.preferencePages.Workbench">
-		</page>	
-	</extension>
-
-	<!-- commands and their bindings -->   
-	<extension point="org.eclipse.ui.commands">
-	
-		<category
-			name="%compareCategory.name"
-			description="%compareCategory.description"
-			id="org.eclipse.compare.ui.category.compare"
-		/>
-
-		<command
-			category="org.eclipse.compare.ui.category.compare"
-			id="org.eclipse.compare.copyRightToLeft"
-			name= "%Command.copyRightToLeft.name"
-			description="%Command.copyRightToLeft.description"
-		/>
-		<keyBinding
-			string=""
-			scope="org.eclipse.ui.globalScope"
-			command="org.eclipse.compare.copyRightToLeft"
-			configuration="org.eclipse.ui.defaultAcceleratorConfiguration"
-		/>
-		
- 		<command
-			category="org.eclipse.compare.ui.category.compare"
-			id="org.eclipse.compare.copyLeftToRight"
-			name= "%Command.copyLeftToRight.name"
-			description="%Command.copyLeftToRight.description"
-		/>
-		<keyBinding
-			string=""
-			scope="org.eclipse.ui.globalScope"
-			command="org.eclipse.compare.copyLeftToRight"
-			configuration="org.eclipse.ui.defaultAcceleratorConfiguration"
-		/>
-
-		<command
-			category="org.eclipse.compare.ui.category.compare"
-			id="org.eclipse.compare.copyAllRightToLeft"
-			name= "%Command.copyAllRightToLeft.name"
-			description="%Command.copyAllRightToLeft.description"
-		/>
-		<keyBinding
-			string=""
-			scope="org.eclipse.ui.globalScope"
-			command="org.eclipse.compare.copyAllRightToLeft"
-			configuration="org.eclipse.ui.defaultAcceleratorConfiguration"
-		/>
-
-		<command
-			category="org.eclipse.compare.ui.category.compare"
-			id="org.eclipse.compare.copyAllLeftToRight"
-			name= "%Command.copyAllLeftToRight.name"
-			description="%Command.copyAllLeftToRight.description"
-		/>
-		<keyBinding
-			string=""
-			scope="org.eclipse.ui.globalScope"
-			command="org.eclipse.compare.copyAllLeftToRight"
-			configuration="org.eclipse.ui.defaultAcceleratorConfiguration"
-		/>
-
-		<command
-			category="org.eclipse.compare.ui.category.compare"
-			id="org.eclipse.compare.selectNextChange"
-			name= "%Command.selectNextChange.name"
-			description="%Command.selectNextChange.description"
-		/>
-		<keyBinding
-			string=""
-			scope="org.eclipse.ui.globalScope"
-			command="org.eclipse.compare.selectNextChange"
-			configuration="org.eclipse.ui.defaultAcceleratorConfiguration"
-		/>
-		
-		<command
-			category="org.eclipse.compare.ui.category.compare"
-			id="org.eclipse.compare.selectPreviousChange"
-			name= "%Command.selectPreviousChange.name"
-			description="%Command.selectPreviousChange.description"
-		/>
-		<keyBinding
-			string=""
-			scope="org.eclipse.ui.globalScope"
-			command="org.eclipse.compare.selectPreviousChange"
-			configuration="org.eclipse.ui.defaultAcceleratorConfiguration"
-		/>
-
-	</extension>
-
-	<extension point="org.eclipse.ui.popupMenus">
-	
-		<objectContribution
-			id="org.eclipse.compare.CompareAction"
-			objectClass="org.eclipse.core.resources.IResource" adaptable="true">
-			<menu
-				id="replaceWithMenu"
-				path="additions"
-				label="%ReplaceWithMenu.label">
-				<separator name="replaceWithGroup"/>
-			</menu>
-			<menu
-				id="compareWithMenu"
-				path="additions"
-				label="%CompareWithMenu.label">
-				<separator name="compareWithGroup"/>
-			</menu>
-			<menu
-				id="team.main"
-				path="additions"
-				label="%TeamMenu.label">
-				<separator name="group1"/>
-			</menu>
-			<action
-				id="compareWithEachOther"
-				label="%CompareWithEachOtherAction.label"
-				tooltip="%CompareWithEachOtherAction.tooltip"
-				menubarPath="compareWithMenu/compareWithGroup"
-				enablesFor="2+"
-				class="org.eclipse.compare.internal.CompareAction">
-			</action>
-			<action
-				id="compareWithPatch"
-				label="%CompareWithPatchAction.label"
-				tooltip="%CompareWithPatchAction.tooltip"
-				menubarPath="team.main/group1"
-				enablesFor="1"
-				class="org.eclipse.compare.internal.patch.CompareWithPatchAction">
-			</action>
-						
-		</objectContribution>
-		
-		<objectContribution
-			id="org.eclipse.compare.ReplaceWithEditionAction"
-			objectClass="org.eclipse.core.resources.IFile" adaptable="true">
-			<menu
-				id="replaceWithMenu"
-				path="additions"
-				label="%ReplaceWithMenu.label">
-				<separator name="replaceWithGroup"/>
-			</menu>
-			<action
-				id="replaceFromHistory"
-				label="%ReplaceFromHistoryAction.label"
-				tooltip="%ReplaceFromHistoryAction.tooltip"
-				menubarPath="replaceWithMenu/replaceWithGroup"
-				enablesFor="1"
-				class="org.eclipse.compare.internal.ReplaceWithEditionAction">
-			</action>
-			<action
-				id="replaceWithPreviousFromHistory"
-				label="%ReplaceWithPreviousFromHistoryAction.label"
-				tooltip="%ReplaceWithPreviousFromHistoryAction.tooltip"
-				menubarPath="replaceWithMenu/replaceWithGroup"
-				enablesFor="1"
-				class="org.eclipse.compare.internal.ReplaceWithPreviousEditionAction">
-			</action>
-		</objectContribution>
-		
-		<objectContribution
-			id="org.eclipse.compare.CompareWithEditionAction"
-			objectClass="org.eclipse.core.resources.IFile" adaptable="true">
-			<menu
-				id="compareWithMenu"
-				path="additions"
-				label="%CompareWithMenu.label">
-				<separator name="compareWithGroup"/>
-			</menu>
-			<action
-				id="compareWithHistory"
-				label="%CompareWithHistoryAction.label"
-				tooltip="%CompareWithHistoryAction.tooltip"
-				menubarPath="compareWithMenu/compareWithGroup"
-				enablesFor="1"
-				class="org.eclipse.compare.internal.CompareWithEditionAction">
-			</action>
-		</objectContribution>
-			
-		<objectContribution
-			id="org.eclipse.compare.AddFromHistoryAction"
-			objectClass="org.eclipse.core.resources.IContainer" adaptable="true">
-			<action
-				id="addFromHistoryAction"
-				label="%addFromHistoryAction.label"
-				tooltip="%addFromHistoryAction.tooltip"
-				menubarPath="replaceWithMenu"
-				enablesFor="1"
-				class="org.eclipse.compare.internal.AddFromHistoryAction">
-			</action>
-		</objectContribution>
-
-	</extension>
-
-	<extension point="org.eclipse.compare.structureCreators">
-		<structureCreator
-			id="org.eclipse.compare.ZipFileStructureCreator"
-			extensions="zip"
-			class="org.eclipse.compare.ZipFileStructureCreator">
-		</structureCreator>
-	</extension>
-	
-	<extension point="org.eclipse.compare.contentMergeViewers">
-		<viewer
-			id="org.eclipse.compare.BinaryCompareViewerCreator"
-			extensions="class,exe,dll,binary,zip,jar"
-			class="org.eclipse.compare.internal.BinaryCompareViewerCreator">
-		</viewer>
-		<viewer
-			id="org.eclipse.compare.TextMergeViewerCreator"
-			extensions="txt"
-			class="org.eclipse.compare.internal.TextMergeViewerCreator">
-		</viewer>
-		<viewer
-			id="org.eclipse.compare.ImageMergeViewerCreator"
-			extensions="gif,jpg"
-			class="org.eclipse.compare.internal.ImageMergeViewerCreator">
-		</viewer>
-	</extension>
-	
-	<extension point="org.eclipse.compare.contentViewers">
-		<viewer
-			id="org.eclipse.compare.TextViewerCreator"
-			extensions="txt"
-			class="org.eclipse.compare.internal.TextViewerCreator">
-		</viewer>
-	</extension>
-
-</plugin>
-
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/schema/contentMergeViewers.exsd b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/schema/contentMergeViewers.exsd
deleted file mode 100644
index de18bd1..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/schema/contentMergeViewers.exsd
+++ /dev/null
@@ -1,129 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.compare">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.compare" id="contentMergeViewers" name="ContentMerge Viewers"/>
-      </appInfo>
-      <documentation>
-         This extension point allows a plug-in to register compare/merge 
-viewers for specific content types. The viewer is expected to 
-extend &lt;samp&gt;org.eclipse.jface.viewers.Viewer&lt;/samp&gt;. 
-However, since viewers don&apos;t have a default constructor, 
-the extension point must implement the factory interface 
-for viewers &lt;samp&gt;org.eclipse.compare.IViewerCreator&lt;/samp&gt;.
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <sequence>
-            <element ref="viewer" minOccurs="0" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="viewer">
-      <complexType>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  a unique identifier that can be used to reference the viewer
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  name of a class that implements &lt;samp&gt;org.eclipse.compare.IViewerCreator&lt;/samp&gt;
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.jface.viewers.Viewer:org.eclipse.compare.IViewerCreator"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="extensions" type="string" use="required">
-            <annotation>
-               <documentation>
-                  a comma separated list of file extensions e.g. &quot;java, gif&quot;
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         The following is an example of a compare/merge viewer 
-for text files (extension &quot;txt&quot;):
-&lt;p&gt;
-&lt;pre&gt; 
-&lt;extension point = &quot;org.eclipse.compare.contentMergeViewers&quot;&gt; 
-     &lt;viewer 
-         id=&quot;org.eclipse.compare.contentmergeviewer.TextMergeViewer&quot; 
-         class=&quot;org.eclipse.compare.internal.TextMergeViewerCreator&quot; 
-         extensions=&quot;txt&quot; 
-    /&gt; 
-&lt;/extension&gt; 
-&lt;/pre&gt;
-&lt;/p&gt;
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="apiInfo"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="implementation"/>
-      </appInfo>
-      <documentation>
-         The Compare UI plugin defines content viewers for text, binary contents, and images.
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="copyright"/>
-      </appInfo>
-      <documentation>
-         &lt;p&gt;
-&lt;a href=&quot;hglegal.htm&quot;&gt;
- &lt;img SRC=&quot;ngibmcpy.gif&quot;
-   ALT=&quot;Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved.&quot;
-   BORDER=0 height=14 width=324&gt;&lt;/a&gt;
-&lt;/p&gt;
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/schema/contentViewers.exsd b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/schema/contentViewers.exsd
deleted file mode 100644
index a602918..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/schema/contentViewers.exsd
+++ /dev/null
@@ -1,131 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.compare">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.compare" id="contentViewers" name="Content Viewers"/>
-      </appInfo>
-      <documentation>
-         This extension point allows a plug-in to register 
-viewers for specific content types. 
-These viewers are used in the &lt;samp&gt;EditionSelectionDialog&lt;/samp&gt; when presenting an edition of a resource or a subsection thereof. The viewer 
-is expected to extend &lt;samp&gt;org.eclipse.jface.viewers.Viewer&lt;/samp&gt;. 
-However since viewers don&apos;t have a default constructor the extension point must implement the factory interface for viewers &lt;samp&gt;org.eclipse.compare.IViewerCreator&lt;/samp&gt;.
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <sequence>
-            <element ref="viewer" minOccurs="0" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="viewer">
-      <complexType>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  a unique identifier that can be used to reference the viewer
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  name of a class that implements a factory for the 
-content merge viewer and implements 
-&lt;samp&gt;org.eclipse.compare.IViewerCreator&lt;/samp&gt;
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.jface.viewers.Viewer:org.eclipse.compare.IViewerCreator"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="extensions" type="string" use="required">
-            <annotation>
-               <documentation>
-                  a comma separated list of file extensions e.g. &quot;java, gif&quot;
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         The following is an example of a viewer for text 
-files (extension &quot;txt&quot;): 
-&lt;p&gt;
-&lt;pre&gt;
-&lt;extension point = &quot;org.eclipse.compare.contentViewers&quot;&gt; 
-     &lt;viewer 
-         id=&quot;org.eclipse.compare.internal.TextViewer&quot; 
-         class=&quot;org.eclipse.compare.internal.TextViewerCreator&quot; 
-         extensions=&quot;txt&quot; 
-    /&gt; 
-&lt;/extension&gt; 
-&lt;/pre&gt;
-&lt;/p&gt;
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="apiInfo"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="implementation"/>
-      </appInfo>
-      <documentation>
-         The Compare UI plugin defines content viewers for 
-text and images.
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="copyright"/>
-      </appInfo>
-      <documentation>
-         &lt;p&gt;
-&lt;a href=&quot;hglegal.htm&quot;&gt;
- &lt;img SRC=&quot;ngibmcpy.gif&quot;
-   ALT=&quot;Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved.&quot;
-   BORDER=0 height=14 width=324&gt;&lt;/a&gt;
-&lt;/p&gt;
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/schema/structureCreators.exsd b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/schema/structureCreators.exsd
deleted file mode 100644
index 189463d..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/schema/structureCreators.exsd
+++ /dev/null
@@ -1,128 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.compare">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.compare" id="structureCreators" name="Structure Creators"/>
-      </appInfo>
-      <documentation>
-         This extension point allows a plug-in to register a structure creator 
-for specific content types. The structure creator is expected to create
-a tree of &lt;samp&gt;IStructureComparator&lt;/samp&gt;s for a given content.
-This tree is used as the input for the structural compare.
-The extension point must implement the interface &lt;samp&gt;org.eclipse.compare.structuremergeviewer.IStructureCreator&lt;/samp&gt;.
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <sequence>
-            <element ref="structureCreator" minOccurs="0" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="structureCreator">
-      <complexType>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  a unique identifier that can be used to reference the structure creator
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  name of a class that implements &lt;samp&gt;org.eclipse.compare.structuremergeviewer.IStructureCreator&lt;/samp&gt;
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.compare.structuremergeviewer.IStructureComparator"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="extensions" type="string" use="required">
-            <annotation>
-               <documentation>
-                  a comma separated list of file extensions e.g. &quot;java, properties&quot;
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         The following is an example of a structure creator for 
-java files (extension &quot;java&quot;): 
-&lt;p&gt;
-&lt;pre&gt;
-&lt;extension point = &quot;org.eclipse.compare.structureCreators&quot;&gt; 
-     &lt;structureCreator 
-         id=&quot;org.eclipse.compare.JavaStructureCreator&quot; 
-         class=&quot;org.eclipse.compare.JavaStructureCreator&quot; 
-         extensions=&quot;java&quot; 
-    /&gt; 
-&lt;/extension&gt; 
-&lt;/pre&gt;
-&lt;/p&gt;
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="apiInfo"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="implementation"/>
-      </appInfo>
-      <documentation>
-         The Compare UI plugin defines a structure creator for zip archives.
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="copyright"/>
-      </appInfo>
-      <documentation>
-         &lt;p&gt;
-&lt;a href=&quot;hglegal.htm&quot;&gt;
- &lt;img SRC=&quot;ngibmcpy.gif&quot;
-   ALT=&quot;Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved.&quot;
-   BORDER=0 height=14 width=324&gt;&lt;/a&gt;
-&lt;/p&gt;
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/schema/structureMergeViewers.exsd b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/schema/structureMergeViewers.exsd
deleted file mode 100644
index 73419fd..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/schema/structureMergeViewers.exsd
+++ /dev/null
@@ -1,130 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.compare">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.compare" id="structureMergeViewers" name="StructureMerge Viewers"/>
-      </appInfo>
-      <documentation>
-         This extension point allows a plug-in to register compare/merge 
-viewers for structural content types. The viewer is expected to 
-extend &lt;samp&gt;org.eclipse.jface.viewers.Viewer&lt;/samp&gt;. 
-However, since viewers don&apos;t have a default constructor, 
-the extension point must implement the factory interface 
-for viewers &lt;samp&gt;org.eclipse.compare.IViewerCreator&lt;/samp&gt;.
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <sequence>
-            <element ref="viewer" minOccurs="0" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="viewer">
-      <complexType>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  a unique identifier that can be used to reference the viewer
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  name of a class that implements &lt;samp&gt;org.eclipse.compare.IViewerCreator&lt;/samp&gt;
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.jface.viewers.Viewer:org.eclipse.compare.IViewerCreator"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="extensions" type="string" use="required">
-            <annotation>
-               <documentation>
-                  a comma separated list of file extensions e.g. &quot;zip, jar&quot;
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         The following is an example of compare/merge viewer 
-for zip files (extension &quot;zip&quot;): 
-&lt;p&gt;
-&lt;pre&gt;
-&lt;extension point = &quot;org.eclipse.compare.structureMergeViewers&quot;&gt; 
-     &lt;viewer 
-         id=&quot;org.eclipse.compare.ZipCompareViewer&quot; 
-         class=&quot;org.eclipse.compare.ZipCompareViewerCreator&quot; 
-         extensions=&quot;zip&quot; 
-    /&gt; 
-&lt;/extension&gt; 
-&lt;/pre&gt;
-&lt;/p&gt;
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="apiInfo"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="implementation"/>
-      </appInfo>
-      <documentation>
-         The Compare UI plugin defines a structure compare 
-viewer for zip archives.
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="copyright"/>
-      </appInfo>
-      <documentation>
-         &lt;p&gt;
-&lt;a href=&quot;hglegal.htm&quot;&gt;
- &lt;img SRC=&quot;ngibmcpy.gif&quot;
-   ALT=&quot;Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved.&quot;
-   BORDER=0 height=14 width=324&gt;&lt;/a&gt;
-&lt;/p&gt;
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/scripts/exportplugin.xml b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/scripts/exportplugin.xml
deleted file mode 100644
index e44ec2f..0000000
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/scripts/exportplugin.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<project name="org.eclipse.compare" default="export" basedir="..">
-	<target name="init">
-		<tstamp/>
-		<property name="destdir" value="../../plugin-export" />
-		<property name="plugin"  value="org.eclipse.compare" />
-		<property name="version"  value="_3.0.0" />
-		<property name="dest"  value="${destdir}/${plugin}${version}" />
-	</target>
-
-	<target name="build" depends="init">
-    	<eclipse.incrementalBuild project="${plugin}" kind="incr"/>
-	</target>
-
-	<target name="export" depends="build">
-		<mkdir dir="${destdir}" />
-		<delete dir="${dest}" />
-		<mkdir dir="${dest}" />
-		<jar 
-			jarfile="${dest}/compare.jar"
-			basedir="bin"
-		/>
-		<copy file="plugin.xml" todir="${dest}"/>
-		<copy file="plugin.properties" todir="${dest}"/>
-		<copy todir="${dest}/icons">
-			<fileset dir="icons" />
-		</copy>
-		<zip zipfile="${dest}/comparesrc.zip">
-		    <fileset dir="compare" />
-  		</zip>				
-	</target>
-</project>
diff --git a/bundles/org.eclipse.compare/schema/contentMergeViewers.exsd b/bundles/org.eclipse.compare/schema/contentMergeViewers.exsd
deleted file mode 100644
index de18bd1..0000000
--- a/bundles/org.eclipse.compare/schema/contentMergeViewers.exsd
+++ /dev/null
@@ -1,129 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.compare">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.compare" id="contentMergeViewers" name="ContentMerge Viewers"/>
-      </appInfo>
-      <documentation>
-         This extension point allows a plug-in to register compare/merge 
-viewers for specific content types. The viewer is expected to 
-extend &lt;samp&gt;org.eclipse.jface.viewers.Viewer&lt;/samp&gt;. 
-However, since viewers don&apos;t have a default constructor, 
-the extension point must implement the factory interface 
-for viewers &lt;samp&gt;org.eclipse.compare.IViewerCreator&lt;/samp&gt;.
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <sequence>
-            <element ref="viewer" minOccurs="0" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="viewer">
-      <complexType>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  a unique identifier that can be used to reference the viewer
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  name of a class that implements &lt;samp&gt;org.eclipse.compare.IViewerCreator&lt;/samp&gt;
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.jface.viewers.Viewer:org.eclipse.compare.IViewerCreator"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="extensions" type="string" use="required">
-            <annotation>
-               <documentation>
-                  a comma separated list of file extensions e.g. &quot;java, gif&quot;
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         The following is an example of a compare/merge viewer 
-for text files (extension &quot;txt&quot;):
-&lt;p&gt;
-&lt;pre&gt; 
-&lt;extension point = &quot;org.eclipse.compare.contentMergeViewers&quot;&gt; 
-     &lt;viewer 
-         id=&quot;org.eclipse.compare.contentmergeviewer.TextMergeViewer&quot; 
-         class=&quot;org.eclipse.compare.internal.TextMergeViewerCreator&quot; 
-         extensions=&quot;txt&quot; 
-    /&gt; 
-&lt;/extension&gt; 
-&lt;/pre&gt;
-&lt;/p&gt;
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="apiInfo"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="implementation"/>
-      </appInfo>
-      <documentation>
-         The Compare UI plugin defines content viewers for text, binary contents, and images.
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="copyright"/>
-      </appInfo>
-      <documentation>
-         &lt;p&gt;
-&lt;a href=&quot;hglegal.htm&quot;&gt;
- &lt;img SRC=&quot;ngibmcpy.gif&quot;
-   ALT=&quot;Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved.&quot;
-   BORDER=0 height=14 width=324&gt;&lt;/a&gt;
-&lt;/p&gt;
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/bundles/org.eclipse.compare/schema/contentViewers.exsd b/bundles/org.eclipse.compare/schema/contentViewers.exsd
deleted file mode 100644
index a602918..0000000
--- a/bundles/org.eclipse.compare/schema/contentViewers.exsd
+++ /dev/null
@@ -1,131 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.compare">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.compare" id="contentViewers" name="Content Viewers"/>
-      </appInfo>
-      <documentation>
-         This extension point allows a plug-in to register 
-viewers for specific content types. 
-These viewers are used in the &lt;samp&gt;EditionSelectionDialog&lt;/samp&gt; when presenting an edition of a resource or a subsection thereof. The viewer 
-is expected to extend &lt;samp&gt;org.eclipse.jface.viewers.Viewer&lt;/samp&gt;. 
-However since viewers don&apos;t have a default constructor the extension point must implement the factory interface for viewers &lt;samp&gt;org.eclipse.compare.IViewerCreator&lt;/samp&gt;.
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <sequence>
-            <element ref="viewer" minOccurs="0" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="viewer">
-      <complexType>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  a unique identifier that can be used to reference the viewer
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  name of a class that implements a factory for the 
-content merge viewer and implements 
-&lt;samp&gt;org.eclipse.compare.IViewerCreator&lt;/samp&gt;
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.jface.viewers.Viewer:org.eclipse.compare.IViewerCreator"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="extensions" type="string" use="required">
-            <annotation>
-               <documentation>
-                  a comma separated list of file extensions e.g. &quot;java, gif&quot;
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         The following is an example of a viewer for text 
-files (extension &quot;txt&quot;): 
-&lt;p&gt;
-&lt;pre&gt;
-&lt;extension point = &quot;org.eclipse.compare.contentViewers&quot;&gt; 
-     &lt;viewer 
-         id=&quot;org.eclipse.compare.internal.TextViewer&quot; 
-         class=&quot;org.eclipse.compare.internal.TextViewerCreator&quot; 
-         extensions=&quot;txt&quot; 
-    /&gt; 
-&lt;/extension&gt; 
-&lt;/pre&gt;
-&lt;/p&gt;
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="apiInfo"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="implementation"/>
-      </appInfo>
-      <documentation>
-         The Compare UI plugin defines content viewers for 
-text and images.
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="copyright"/>
-      </appInfo>
-      <documentation>
-         &lt;p&gt;
-&lt;a href=&quot;hglegal.htm&quot;&gt;
- &lt;img SRC=&quot;ngibmcpy.gif&quot;
-   ALT=&quot;Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved.&quot;
-   BORDER=0 height=14 width=324&gt;&lt;/a&gt;
-&lt;/p&gt;
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/bundles/org.eclipse.compare/schema/structureCreators.exsd b/bundles/org.eclipse.compare/schema/structureCreators.exsd
deleted file mode 100644
index 189463d..0000000
--- a/bundles/org.eclipse.compare/schema/structureCreators.exsd
+++ /dev/null
@@ -1,128 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.compare">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.compare" id="structureCreators" name="Structure Creators"/>
-      </appInfo>
-      <documentation>
-         This extension point allows a plug-in to register a structure creator 
-for specific content types. The structure creator is expected to create
-a tree of &lt;samp&gt;IStructureComparator&lt;/samp&gt;s for a given content.
-This tree is used as the input for the structural compare.
-The extension point must implement the interface &lt;samp&gt;org.eclipse.compare.structuremergeviewer.IStructureCreator&lt;/samp&gt;.
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <sequence>
-            <element ref="structureCreator" minOccurs="0" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="structureCreator">
-      <complexType>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  a unique identifier that can be used to reference the structure creator
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  name of a class that implements &lt;samp&gt;org.eclipse.compare.structuremergeviewer.IStructureCreator&lt;/samp&gt;
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.compare.structuremergeviewer.IStructureComparator"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="extensions" type="string" use="required">
-            <annotation>
-               <documentation>
-                  a comma separated list of file extensions e.g. &quot;java, properties&quot;
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         The following is an example of a structure creator for 
-java files (extension &quot;java&quot;): 
-&lt;p&gt;
-&lt;pre&gt;
-&lt;extension point = &quot;org.eclipse.compare.structureCreators&quot;&gt; 
-     &lt;structureCreator 
-         id=&quot;org.eclipse.compare.JavaStructureCreator&quot; 
-         class=&quot;org.eclipse.compare.JavaStructureCreator&quot; 
-         extensions=&quot;java&quot; 
-    /&gt; 
-&lt;/extension&gt; 
-&lt;/pre&gt;
-&lt;/p&gt;
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="apiInfo"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="implementation"/>
-      </appInfo>
-      <documentation>
-         The Compare UI plugin defines a structure creator for zip archives.
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="copyright"/>
-      </appInfo>
-      <documentation>
-         &lt;p&gt;
-&lt;a href=&quot;hglegal.htm&quot;&gt;
- &lt;img SRC=&quot;ngibmcpy.gif&quot;
-   ALT=&quot;Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved.&quot;
-   BORDER=0 height=14 width=324&gt;&lt;/a&gt;
-&lt;/p&gt;
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/bundles/org.eclipse.compare/schema/structureMergeViewers.exsd b/bundles/org.eclipse.compare/schema/structureMergeViewers.exsd
deleted file mode 100644
index 73419fd..0000000
--- a/bundles/org.eclipse.compare/schema/structureMergeViewers.exsd
+++ /dev/null
@@ -1,130 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.compare">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.compare" id="structureMergeViewers" name="StructureMerge Viewers"/>
-      </appInfo>
-      <documentation>
-         This extension point allows a plug-in to register compare/merge 
-viewers for structural content types. The viewer is expected to 
-extend &lt;samp&gt;org.eclipse.jface.viewers.Viewer&lt;/samp&gt;. 
-However, since viewers don&apos;t have a default constructor, 
-the extension point must implement the factory interface 
-for viewers &lt;samp&gt;org.eclipse.compare.IViewerCreator&lt;/samp&gt;.
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <sequence>
-            <element ref="viewer" minOccurs="0" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="viewer">
-      <complexType>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  a unique identifier that can be used to reference the viewer
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  name of a class that implements &lt;samp&gt;org.eclipse.compare.IViewerCreator&lt;/samp&gt;
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.jface.viewers.Viewer:org.eclipse.compare.IViewerCreator"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="extensions" type="string" use="required">
-            <annotation>
-               <documentation>
-                  a comma separated list of file extensions e.g. &quot;zip, jar&quot;
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         The following is an example of compare/merge viewer 
-for zip files (extension &quot;zip&quot;): 
-&lt;p&gt;
-&lt;pre&gt;
-&lt;extension point = &quot;org.eclipse.compare.structureMergeViewers&quot;&gt; 
-     &lt;viewer 
-         id=&quot;org.eclipse.compare.ZipCompareViewer&quot; 
-         class=&quot;org.eclipse.compare.ZipCompareViewerCreator&quot; 
-         extensions=&quot;zip&quot; 
-    /&gt; 
-&lt;/extension&gt; 
-&lt;/pre&gt;
-&lt;/p&gt;
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="apiInfo"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="implementation"/>
-      </appInfo>
-      <documentation>
-         The Compare UI plugin defines a structure compare 
-viewer for zip archives.
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="copyright"/>
-      </appInfo>
-      <documentation>
-         &lt;p&gt;
-&lt;a href=&quot;hglegal.htm&quot;&gt;
- &lt;img SRC=&quot;ngibmcpy.gif&quot;
-   ALT=&quot;Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved.&quot;
-   BORDER=0 height=14 width=324&gt;&lt;/a&gt;
-&lt;/p&gt;
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/bundles/org.eclipse.compare/scripts/exportplugin.xml b/bundles/org.eclipse.compare/scripts/exportplugin.xml
deleted file mode 100644
index e44ec2f..0000000
--- a/bundles/org.eclipse.compare/scripts/exportplugin.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<project name="org.eclipse.compare" default="export" basedir="..">
-	<target name="init">
-		<tstamp/>
-		<property name="destdir" value="../../plugin-export" />
-		<property name="plugin"  value="org.eclipse.compare" />
-		<property name="version"  value="_3.0.0" />
-		<property name="dest"  value="${destdir}/${plugin}${version}" />
-	</target>
-
-	<target name="build" depends="init">
-    	<eclipse.incrementalBuild project="${plugin}" kind="incr"/>
-	</target>
-
-	<target name="export" depends="build">
-		<mkdir dir="${destdir}" />
-		<delete dir="${dest}" />
-		<mkdir dir="${dest}" />
-		<jar 
-			jarfile="${dest}/compare.jar"
-			basedir="bin"
-		/>
-		<copy file="plugin.xml" todir="${dest}"/>
-		<copy file="plugin.properties" todir="${dest}"/>
-		<copy todir="${dest}/icons">
-			<fileset dir="icons" />
-		</copy>
-		<zip zipfile="${dest}/comparesrc.zip">
-		    <fileset dir="compare" />
-  		</zip>				
-	</target>
-</project>
diff --git a/bundles/org.eclipse.team.cvs.ssh/.classpath b/bundles/org.eclipse.team.cvs.ssh/.classpath
deleted file mode 100644
index 25a2d59..0000000
--- a/bundles/org.eclipse.team.cvs.ssh/.classpath
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-    <classpathentry kind="var" path="JRE_LIB" rootpath="JRE_SRCROOT" sourcepath="JRE_SRC"/>
-    <classpathentry kind="src" path="src"/>
-    <classpathentry kind="src" path="/org.eclipse.team.core"/>
-    <classpathentry kind="src" path="/org.eclipse.team.cvs.core"/>
-    <classpathentry kind="src" path="/org.eclipse.core.runtime"/>
-    <classpathentry kind="src" path="/org.eclipse.core.boot"/>
-    <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.team.cvs.ssh/.cvsignore b/bundles/org.eclipse.team.cvs.ssh/.cvsignore
deleted file mode 100644
index c5e82d7..0000000
--- a/bundles/org.eclipse.team.cvs.ssh/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
\ No newline at end of file
diff --git a/bundles/org.eclipse.team.cvs.ssh/.options b/bundles/org.eclipse.team.cvs.ssh/.options
deleted file mode 100644
index 126e6d9..0000000
--- a/bundles/org.eclipse.team.cvs.ssh/.options
+++ /dev/null
@@ -1,7 +0,0 @@
-# Debugging options for the org.eclipse.team.cvs.core plugin.
-
-# Turn on debugging for the plugin.
-org.eclipse.team.cvs.ssh/debug=false
-
-# Shows ssh protocol messages
-org.eclipse.team.cvs.ssh/ssh_protocol=false
\ No newline at end of file
diff --git a/bundles/org.eclipse.team.cvs.ssh/.project b/bundles/org.eclipse.team.cvs.ssh/.project
deleted file mode 100644
index 59dc8f8..0000000
--- a/bundles/org.eclipse.team.cvs.ssh/.project
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.team.cvs.ssh</name>
-	<comment></comment>
-	<projects>
-		<project>org.eclipse.core.boot</project>
-		<project>org.eclipse.core.runtime</project>
-		<project>org.eclipse.team.core</project>
-		<project>org.eclipse.team.cvs.core</project>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.team.cvs.ssh/about.html b/bundles/org.eclipse.team.cvs.ssh/about.html
deleted file mode 100644
index cd1279a..0000000
--- a/bundles/org.eclipse.team.cvs.ssh/about.html
+++ /dev/null
@@ -1,92 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
-
-<p>20th June, 2002</p>	
-<h3>License</h3>
-<p>Eclipse.org makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-Common Public License Version 1.0 (&quot;CPL&quot;).  A copy of the CPL is available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>.
-For purposes of the CPL, &quot;Program&quot; will mean the Content.</p>
-
-<h3>Third Party Content</h3>
-
-<p>The Content includes items that have been sourced from third parties as follows:</p>
-
-<p><b>The Java (TM) Ssh Applet</b></p>
-<p>The plug-in is based on software developed by Cedric Gourio.
-If the source code is included, it is located in teamcvssshsrc.zip.  The binary code is located in teamcvsssh.jar.  The Java Ssh Applet includes the following copyright notice which
-must be included in any redistribution:</p>
-
-<blockquote>
-	Copyright (c) 1998 Cedric Gourio<br>
-    (<a href="http://www.cl.cam.ac.uk/~fapp2/software/java-ssh/">http://www.cl.cam.ac.uk/~fapp2/software/java-ssh/</a>)<br>
-    (<a href="mailto:javassh@france-mail.com">javassh@france-mail.com</a>)
-
-	<p>This program is FREE FOR COMMERCIAL AND NON-COMMERCIAL USE.<br>
-	You can freely modify the code.</p>
-
-	<p>You should however include this copyright notice in any redistribution<br> 
-	and please keep in touch with the author for any feedback.</p>
-</blockquote>
-
-<p><b>The Blowfish Encryption Algorithm</b></p>
-<p>The plug-in is based on an algorithm developed by Bruce Schneier.  The algorithm was originally published in
-a paper that is located at <a href="http://www.counterpane.com/bfsverlag.html">http://www.counterpane.com/bfsverlag.html</a>.
-Your use of the Blowfish Encryption Algorithm in both source and binary code form contained in the plug-in is not subject to any
-additional terms and conditions.  If the source code, Blowfish.java is included, it is located in teamcvssshsrc.zip.  The binary code, Blowfish.class is located in
-teamcvsssh.jar.</p>
-
-<h3>Contributions</h3>
-
-<p>If this Content is licensed to you under the terms and conditions of the CPL, any Contributions, as defined in the CPL, uploaded, submitted, or otherwise
-made available to Eclipse.org, members of Eclipse.org and/or the host of Eclipse.org web site, by you that relate to such
-Content are provided under the terms and conditions of the CPL and can be made available to others under the terms of the CPL.</p>
-
-<p>If this Content is licensed to you under license terms and conditions other than the CPL (&quot;Other License&quot;), any modifications, enhancements and/or
-other code and/or documentation (&quot;Modifications&quot;) uploaded, submitted, or otherwise made available to Eclipse.org, members of Eclipse.org and/or the
-host of Eclipse.org, by you that relate to such Content are provided under terms and conditions of the Other License and can be made available
-to others under the terms of the Other License.  In addition, with regard to Modifications for which you are the copyright holder, you are also
-providing the Modifications under the terms and conditions of the CPL and such Modifications can be made available to others under the terms of
-the CPL.</p>
-
-<h3>Cryptography</h3>
-
-<p><b>Export Control</b></p>
-<p>The plug-in contains encryption software.  The country in which you are currently may have restrictions on the import, possession,
-and use, and/or re-export to another country, of encryption software.  BEFORE using any encryption software, please check the country's
-laws, regulations and policies concerning the import, possession, or use, and re-export of encryption software, to see if this
-is permitted.</p>
-
-<p><b>Encryption Items</b></p>
-
-<p>Details of the encryption software in this plug-in are provided to assist in obtaining relevant export control classification and approval.
-Cryptography in this plug-in has been classified as Export Commodity Control Number (ECCN) 5D002.c.1 by the U.S. Government Department of Commerce,
-Bureau of Export Administration and deemed eligible for export under License Exception Technology Software Unrestricted (TSU) for object code
-and (cryptographic) source code, and License Exception ENC Retail for object code and no (cryptographic) source code.</p>
-
-<p>The plug-in contains an implementation of the Secure Shell (SSH) protocol that encrypts the network traffic (program code files
-in file versioning systems) between a Concurrent Versions System (CVS) server and a CVS client.  Data is encrypted using the Blowfish algorithm
-which is a 64-bit symmetric cipher that uses a key varying in length from 32 bits to 448 bits.  The RSA PKCS #1 v1.5 key exchange algorithm is
-used to authenticate and exchange keys with a minimum modulus size of 96 bits and a maximum modulus size theoretically unlimited since the
-implementation uses the java.math.BigInteger class which has a maximum positive integer range limited only by the available memory in the computer.
-In practice, the key length is defined by the CVS server with which communication is initiated.</p>
-
-<p>The following Java classes contain encryption items (the plug-in may contain both binary and source code):</p>
-
-<ul>
-	<li>org.eclipse.team.internal.ccvs.ssh.Blowfish</li>
-	<li>org.eclipse.team.internal.ccvs.ssh.Cipher</li>
-	<li>org.eclipse.team.internal.ccvs.ssh.Client</li>
-	<li>org.eclipse.team.internal.ccvs.ssh.ClientPacket</li>
-	<li>org.eclipse.team.internal.ccvs.ssh.Misc</li>
-</ul>		
-
-<small>Java and all Java-based trademarks and logos are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries.</small>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.team.cvs.ssh/build.properties b/bundles/org.eclipse.team.cvs.ssh/build.properties
deleted file mode 100644
index 487a6e8..0000000
--- a/bundles/org.eclipse.team.cvs.ssh/build.properties
+++ /dev/null
@@ -1,14 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-# Eclipse build contribution
-source.teamcvsssh.jar=src/
-src.includes=about.html
-bin.includes=about.html,plugin.xml,plugin.properties,*.jar,.options
\ No newline at end of file
diff --git a/bundles/org.eclipse.team.cvs.ssh/plugin.properties b/bundles/org.eclipse.team.cvs.ssh/plugin.properties
deleted file mode 100644
index 357dec3..0000000
--- a/bundles/org.eclipse.team.cvs.ssh/plugin.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-providerName=Eclipse.org
-pluginName=CVS SSH Core
\ No newline at end of file
diff --git a/bundles/org.eclipse.team.cvs.ssh/plugin.xml b/bundles/org.eclipse.team.cvs.ssh/plugin.xml
deleted file mode 100644
index 7de275b..0000000
--- a/bundles/org.eclipse.team.cvs.ssh/plugin.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<plugin
-	name="%pluginName"
-	id="org.eclipse.team.cvs.ssh"
-	version="2.1.0"
-	provider-name="%providerName"
-	class="org.eclipse.team.internal.ccvs.ssh.SSHPlugin">
-
-  <requires>
-    <import plugin="org.eclipse.core.boot"/>
-    <import plugin="org.eclipse.core.resources"/>
-    <import plugin="org.eclipse.team.cvs.core"/>
-    <import plugin="org.eclipse.team.core"/>
-  </requires>
-
-  <runtime>
-    <library name="teamcvsssh.jar">
-      <export name="*"/>
-      <packages prefixes="org.eclipse.team.internal.ccvs.ssh"/>
-    </library>
-  </runtime>
-
-  <extension id="ssh" point="org.eclipse.team.cvs.core.connectionmethods">
-    <adapter>
-      <run class="org.eclipse.team.internal.ccvs.ssh.SSHMethod">
-        <parameter name="trace" value="false" /> 
-      </run>
-    </adapter>
-  </extension>
-
-</plugin>
diff --git a/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/Blowfish.java b/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/Blowfish.java
deleted file mode 100644
index c729490..0000000
--- a/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/Blowfish.java
+++ /dev/null
@@ -1,1220 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.ssh;
-
-public class Blowfish extends Cipher {
-	private int[] P = new int[18];
-	private int[][] S = new int[4][256];
-
-	private int lastEncipherXL = 0;
-	private int lastEncipherXR = 0;
-	private int lastDecipherXL = 0;
-	private int lastDecipherXR = 0;
-
-	private final static int[] INIT_DATA =
-		{
-			0x243f6a88,
-			0x85a308d3,
-			0x13198a2e,
-			0x03707344,
-			0xa4093822,
-			0x299f31d0,
-			0x082efa98,
-			0xec4e6c89,
-			0x452821e6,
-			0x38d01377,
-			0xbe5466cf,
-			0x34e90c6c,
-			0xc0ac29b7,
-			0xc97c50dd,
-			0x3f84d5b5,
-			0xb5470917,
-			0x9216d5d9,
-			0x8979fb1b,
-			0xd1310ba6,
-			0x98dfb5ac,
-			0x2ffd72db,
-			0xd01adfb7,
-			0xb8e1afed,
-			0x6a267e96,
-			0xba7c9045,
-			0xf12c7f99,
-			0x24a19947,
-			0xb3916cf7,
-			0x0801f2e2,
-			0x858efc16,
-			0x636920d8,
-			0x71574e69,
-			0xa458fea3,
-			0xf4933d7e,
-			0x0d95748f,
-			0x728eb658,
-			0x718bcd58,
-			0x82154aee,
-			0x7b54a41d,
-			0xc25a59b5,
-			0x9c30d539,
-			0x2af26013,
-			0xc5d1b023,
-			0x286085f0,
-			0xca417918,
-			0xb8db38ef,
-			0x8e79dcb0,
-			0x603a180e,
-			0x6c9e0e8b,
-			0xb01e8a3e,
-			0xd71577c1,
-			0xbd314b27,
-			0x78af2fda,
-			0x55605c60,
-			0xe65525f3,
-			0xaa55ab94,
-			0x57489862,
-			0x63e81440,
-			0x55ca396a,
-			0x2aab10b6,
-			0xb4cc5c34,
-			0x1141e8ce,
-			0xa15486af,
-			0x7c72e993,
-			0xb3ee1411,
-			0x636fbc2a,
-			0x2ba9c55d,
-			0x741831f6,
-			0xce5c3e16,
-			0x9b87931e,
-			0xafd6ba33,
-			0x6c24cf5c,
-			0x7a325381,
-			0x28958677,
-			0x3b8f4898,
-			0x6b4bb9af,
-			0xc4bfe81b,
-			0x66282193,
-			0x61d809cc,
-			0xfb21a991,
-			0x487cac60,
-			0x5dec8032,
-			0xef845d5d,
-			0xe98575b1,
-			0xdc262302,
-			0xeb651b88,
-			0x23893e81,
-			0xd396acc5,
-			0x0f6d6ff3,
-			0x83f44239,
-			0x2e0b4482,
-			0xa4842004,
-			0x69c8f04a,
-			0x9e1f9b5e,
-			0x21c66842,
-			0xf6e96c9a,
-			0x670c9c61,
-			0xabd388f0,
-			0x6a51a0d2,
-			0xd8542f68,
-			0x960fa728,
-			0xab5133a3,
-			0x6eef0b6c,
-			0x137a3be4,
-			0xba3bf050,
-			0x7efb2a98,
-			0xa1f1651d,
-			0x39af0176,
-			0x66ca593e,
-			0x82430e88,
-			0x8cee8619,
-			0x456f9fb4,
-			0x7d84a5c3,
-			0x3b8b5ebe,
-			0xe06f75d8,
-			0x85c12073,
-			0x401a449f,
-			0x56c16aa6,
-			0x4ed3aa62,
-			0x363f7706,
-			0x1bfedf72,
-			0x429b023d,
-			0x37d0d724,
-			0xd00a1248,
-			0xdb0fead3,
-			0x49f1c09b,
-			0x075372c9,
-			0x80991b7b,
-			0x25d479d8,
-			0xf6e8def7,
-			0xe3fe501a,
-			0xb6794c3b,
-			0x976ce0bd,
-			0x04c006ba,
-			0xc1a94fb6,
-			0x409f60c4,
-			0x5e5c9ec2,
-			0x196a2463,
-			0x68fb6faf,
-			0x3e6c53b5,
-			0x1339b2eb,
-			0x3b52ec6f,
-			0x6dfc511f,
-			0x9b30952c,
-			0xcc814544,
-			0xaf5ebd09,
-			0xbee3d004,
-			0xde334afd,
-			0x660f2807,
-			0x192e4bb3,
-			0xc0cba857,
-			0x45c8740f,
-			0xd20b5f39,
-			0xb9d3fbdb,
-			0x5579c0bd,
-			0x1a60320a,
-			0xd6a100c6,
-			0x402c7279,
-			0x679f25fe,
-			0xfb1fa3cc,
-			0x8ea5e9f8,
-			0xdb3222f8,
-			0x3c7516df,
-			0xfd616b15,
-			0x2f501ec8,
-			0xad0552ab,
-			0x323db5fa,
-			0xfd238760,
-			0x53317b48,
-			0x3e00df82,
-			0x9e5c57bb,
-			0xca6f8ca0,
-			0x1a87562e,
-			0xdf1769db,
-			0xd542a8f6,
-			0x287effc3,
-			0xac6732c6,
-			0x8c4f5573,
-			0x695b27b0,
-			0xbbca58c8,
-			0xe1ffa35d,
-			0xb8f011a0,
-			0x10fa3d98,
-			0xfd2183b8,
-			0x4afcb56c,
-			0x2dd1d35b,
-			0x9a53e479,
-			0xb6f84565,
-			0xd28e49bc,
-			0x4bfb9790,
-			0xe1ddf2da,
-			0xa4cb7e33,
-			0x62fb1341,
-			0xcee4c6e8,
-			0xef20cada,
-			0x36774c01,
-			0xd07e9efe,
-			0x2bf11fb4,
-			0x95dbda4d,
-			0xae909198,
-			0xeaad8e71,
-			0x6b93d5a0,
-			0xd08ed1d0,
-			0xafc725e0,
-			0x8e3c5b2f,
-			0x8e7594b7,
-			0x8ff6e2fb,
-			0xf2122b64,
-			0x8888b812,
-			0x900df01c,
-			0x4fad5ea0,
-			0x688fc31c,
-			0xd1cff191,
-			0xb3a8c1ad,
-			0x2f2f2218,
-			0xbe0e1777,
-			0xea752dfe,
-			0x8b021fa1,
-			0xe5a0cc0f,
-			0xb56f74e8,
-			0x18acf3d6,
-			0xce89e299,
-			0xb4a84fe0,
-			0xfd13e0b7,
-			0x7cc43b81,
-			0xd2ada8d9,
-			0x165fa266,
-			0x80957705,
-			0x93cc7314,
-			0x211a1477,
-			0xe6ad2065,
-			0x77b5fa86,
-			0xc75442f5,
-			0xfb9d35cf,
-			0xebcdaf0c,
-			0x7b3e89a0,
-			0xd6411bd3,
-			0xae1e7e49,
-			0x00250e2d,
-			0x2071b35e,
-			0x226800bb,
-			0x57b8e0af,
-			0x2464369b,
-			0xf009b91e,
-			0x5563911d,
-			0x59dfa6aa,
-			0x78c14389,
-			0xd95a537f,
-			0x207d5ba2,
-			0x02e5b9c5,
-			0x83260376,
-			0x6295cfa9,
-			0x11c81968,
-			0x4e734a41,
-			0xb3472dca,
-			0x7b14a94a,
-			0x1b510052,
-			0x9a532915,
-			0xd60f573f,
-			0xbc9bc6e4,
-			0x2b60a476,
-			0x81e67400,
-			0x08ba6fb5,
-			0x571be91f,
-			0xf296ec6b,
-			0x2a0dd915,
-			0xb6636521,
-			0xe7b9f9b6,
-			0xff34052e,
-			0xc5855664,
-			0x53b02d5d,
-			0xa99f8fa1,
-			0x08ba4799,
-			0x6e85076a,
-			0x4b7a70e9,
-			0xb5b32944,
-			0xdb75092e,
-			0xc4192623,
-			0xad6ea6b0,
-			0x49a7df7d,
-			0x9cee60b8,
-			0x8fedb266,
-			0xecaa8c71,
-			0x699a17ff,
-			0x5664526c,
-			0xc2b19ee1,
-			0x193602a5,
-			0x75094c29,
-			0xa0591340,
-			0xe4183a3e,
-			0x3f54989a,
-			0x5b429d65,
-			0x6b8fe4d6,
-			0x99f73fd6,
-			0xa1d29c07,
-			0xefe830f5,
-			0x4d2d38e6,
-			0xf0255dc1,
-			0x4cdd2086,
-			0x8470eb26,
-			0x6382e9c6,
-			0x021ecc5e,
-			0x09686b3f,
-			0x3ebaefc9,
-			0x3c971814,
-			0x6b6a70a1,
-			0x687f3584,
-			0x52a0e286,
-			0xb79c5305,
-			0xaa500737,
-			0x3e07841c,
-			0x7fdeae5c,
-			0x8e7d44ec,
-			0x5716f2b8,
-			0xb03ada37,
-			0xf0500c0d,
-			0xf01c1f04,
-			0x0200b3ff,
-			0xae0cf51a,
-			0x3cb574b2,
-			0x25837a58,
-			0xdc0921bd,
-			0xd19113f9,
-			0x7ca92ff6,
-			0x94324773,
-			0x22f54701,
-			0x3ae5e581,
-			0x37c2dadc,
-			0xc8b57634,
-			0x9af3dda7,
-			0xa9446146,
-			0x0fd0030e,
-			0xecc8c73e,
-			0xa4751e41,
-			0xe238cd99,
-			0x3bea0e2f,
-			0x3280bba1,
-			0x183eb331,
-			0x4e548b38,
-			0x4f6db908,
-			0x6f420d03,
-			0xf60a04bf,
-			0x2cb81290,
-			0x24977c79,
-			0x5679b072,
-			0xbcaf89af,
-			0xde9a771f,
-			0xd9930810,
-			0xb38bae12,
-			0xdccf3f2e,
-			0x5512721f,
-			0x2e6b7124,
-			0x501adde6,
-			0x9f84cd87,
-			0x7a584718,
-			0x7408da17,
-			0xbc9f9abc,
-			0xe94b7d8c,
-			0xec7aec3a,
-			0xdb851dfa,
-			0x63094366,
-			0xc464c3d2,
-			0xef1c1847,
-			0x3215d908,
-			0xdd433b37,
-			0x24c2ba16,
-			0x12a14d43,
-			0x2a65c451,
-			0x50940002,
-			0x133ae4dd,
-			0x71dff89e,
-			0x10314e55,
-			0x81ac77d6,
-			0x5f11199b,
-			0x043556f1,
-			0xd7a3c76b,
-			0x3c11183b,
-			0x5924a509,
-			0xf28fe6ed,
-			0x97f1fbfa,
-			0x9ebabf2c,
-			0x1e153c6e,
-			0x86e34570,
-			0xeae96fb1,
-			0x860e5e0a,
-			0x5a3e2ab3,
-			0x771fe71c,
-			0x4e3d06fa,
-			0x2965dcb9,
-			0x99e71d0f,
-			0x803e89d6,
-			0x5266c825,
-			0x2e4cc978,
-			0x9c10b36a,
-			0xc6150eba,
-			0x94e2ea78,
-			0xa5fc3c53,
-			0x1e0a2df4,
-			0xf2f74ea7,
-			0x361d2b3d,
-			0x1939260f,
-			0x19c27960,
-			0x5223a708,
-			0xf71312b6,
-			0xebadfe6e,
-			0xeac31f66,
-			0xe3bc4595,
-			0xa67bc883,
-			0xb17f37d1,
-			0x018cff28,
-			0xc332ddef,
-			0xbe6c5aa5,
-			0x65582185,
-			0x68ab9802,
-			0xeecea50f,
-			0xdb2f953b,
-			0x2aef7dad,
-			0x5b6e2f84,
-			0x1521b628,
-			0x29076170,
-			0xecdd4775,
-			0x619f1510,
-			0x13cca830,
-			0xeb61bd96,
-			0x0334fe1e,
-			0xaa0363cf,
-			0xb5735c90,
-			0x4c70a239,
-			0xd59e9e0b,
-			0xcbaade14,
-			0xeecc86bc,
-			0x60622ca7,
-			0x9cab5cab,
-			0xb2f3846e,
-			0x648b1eaf,
-			0x19bdf0ca,
-			0xa02369b9,
-			0x655abb50,
-			0x40685a32,
-			0x3c2ab4b3,
-			0x319ee9d5,
-			0xc021b8f7,
-			0x9b540b19,
-			0x875fa099,
-			0x95f7997e,
-			0x623d7da8,
-			0xf837889a,
-			0x97e32d77,
-			0x11ed935f,
-			0x16681281,
-			0x0e358829,
-			0xc7e61fd6,
-			0x96dedfa1,
-			0x7858ba99,
-			0x57f584a5,
-			0x1b227263,
-			0x9b83c3ff,
-			0x1ac24696,
-			0xcdb30aeb,
-			0x532e3054,
-			0x8fd948e4,
-			0x6dbc3128,
-			0x58ebf2ef,
-			0x34c6ffea,
-			0xfe28ed61,
-			0xee7c3c73,
-			0x5d4a14d9,
-			0xe864b7e3,
-			0x42105d14,
-			0x203e13e0,
-			0x45eee2b6,
-			0xa3aaabea,
-			0xdb6c4f15,
-			0xfacb4fd0,
-			0xc742f442,
-			0xef6abbb5,
-			0x654f3b1d,
-			0x41cd2105,
-			0xd81e799e,
-			0x86854dc7,
-			0xe44b476a,
-			0x3d816250,
-			0xcf62a1f2,
-			0x5b8d2646,
-			0xfc8883a0,
-			0xc1c7b6a3,
-			0x7f1524c3,
-			0x69cb7492,
-			0x47848a0b,
-			0x5692b285,
-			0x095bbf00,
-			0xad19489d,
-			0x1462b174,
-			0x23820e00,
-			0x58428d2a,
-			0x0c55f5ea,
-			0x1dadf43e,
-			0x233f7061,
-			0x3372f092,
-			0x8d937e41,
-			0xd65fecf1,
-			0x6c223bdb,
-			0x7cde3759,
-			0xcbee7460,
-			0x4085f2a7,
-			0xce77326e,
-			0xa6078084,
-			0x19f8509e,
-			0xe8efd855,
-			0x61d99735,
-			0xa969a7aa,
-			0xc50c06c2,
-			0x5a04abfc,
-			0x800bcadc,
-			0x9e447a2e,
-			0xc3453484,
-			0xfdd56705,
-			0x0e1e9ec9,
-			0xdb73dbd3,
-			0x105588cd,
-			0x675fda79,
-			0xe3674340,
-			0xc5c43465,
-			0x713e38d8,
-			0x3d28f89e,
-			0xf16dff20,
-			0x153e21e7,
-			0x8fb03d4a,
-			0xe6e39f2b,
-			0xdb83adf7,
-			0xe93d5a68,
-			0x948140f7,
-			0xf64c261c,
-			0x94692934,
-			0x411520f7,
-			0x7602d4f7,
-			0xbcf46b2e,
-			0xd4a20068,
-			0xd4082471,
-			0x3320f46a,
-			0x43b7d4b7,
-			0x500061af,
-			0x1e39f62e,
-			0x97244546,
-			0x14214f74,
-			0xbf8b8840,
-			0x4d95fc1d,
-			0x96b591af,
-			0x70f4ddd3,
-			0x66a02f45,
-			0xbfbc09ec,
-			0x03bd9785,
-			0x7fac6dd0,
-			0x31cb8504,
-			0x96eb27b3,
-			0x55fd3941,
-			0xda2547e6,
-			0xabca0a9a,
-			0x28507825,
-			0x530429f4,
-			0x0a2c86da,
-			0xe9b66dfb,
-			0x68dc1462,
-			0xd7486900,
-			0x680ec0a4,
-			0x27a18dee,
-			0x4f3ffea2,
-			0xe887ad8c,
-			0xb58ce006,
-			0x7af4d6b6,
-			0xaace1e7c,
-			0xd3375fec,
-			0xce78a399,
-			0x406b2a42,
-			0x20fe9e35,
-			0xd9f385b9,
-			0xee39d7ab,
-			0x3b124e8b,
-			0x1dc9faf7,
-			0x4b6d1856,
-			0x26a36631,
-			0xeae397b2,
-			0x3a6efa74,
-			0xdd5b4332,
-			0x6841e7f7,
-			0xca7820fb,
-			0xfb0af54e,
-			0xd8feb397,
-			0x454056ac,
-			0xba489527,
-			0x55533a3a,
-			0x20838d87,
-			0xfe6ba9b7,
-			0xd096954b,
-			0x55a867bc,
-			0xa1159a58,
-			0xcca92963,
-			0x99e1db33,
-			0xa62a4a56,
-			0x3f3125f9,
-			0x5ef47e1c,
-			0x9029317c,
-			0xfdf8e802,
-			0x04272f70,
-			0x80bb155c,
-			0x05282ce3,
-			0x95c11548,
-			0xe4c66d22,
-			0x48c1133f,
-			0xc70f86dc,
-			0x07f9c9ee,
-			0x41041f0f,
-			0x404779a4,
-			0x5d886e17,
-			0x325f51eb,
-			0xd59bc0d1,
-			0xf2bcc18f,
-			0x41113564,
-			0x257b7834,
-			0x602a9c60,
-			0xdff8e8a3,
-			0x1f636c1b,
-			0x0e12b4c2,
-			0x02e1329e,
-			0xaf664fd1,
-			0xcad18115,
-			0x6b2395e0,
-			0x333e92e1,
-			0x3b240b62,
-			0xeebeb922,
-			0x85b2a20e,
-			0xe6ba0d99,
-			0xde720c8c,
-			0x2da2f728,
-			0xd0127845,
-			0x95b794fd,
-			0x647d0862,
-			0xe7ccf5f0,
-			0x5449a36f,
-			0x877d48fa,
-			0xc39dfd27,
-			0xf33e8d1e,
-			0x0a476341,
-			0x992eff74,
-			0x3a6f6eab,
-			0xf4f8fd37,
-			0xa812dc60,
-			0xa1ebddf8,
-			0x991be14c,
-			0xdb6e6b0d,
-			0xc67b5510,
-			0x6d672c37,
-			0x2765d43b,
-			0xdcd0e804,
-			0xf1290dc7,
-			0xcc00ffa3,
-			0xb5390f92,
-			0x690fed0b,
-			0x667b9ffb,
-			0xcedb7d9c,
-			0xa091cf0b,
-			0xd9155ea3,
-			0xbb132f88,
-			0x515bad24,
-			0x7b9479bf,
-			0x763bd6eb,
-			0x37392eb3,
-			0xcc115979,
-			0x8026e297,
-			0xf42e312d,
-			0x6842ada7,
-			0xc66a2b3b,
-			0x12754ccc,
-			0x782ef11c,
-			0x6a124237,
-			0xb79251e7,
-			0x06a1bbe6,
-			0x4bfb6350,
-			0x1a6b1018,
-			0x11caedfa,
-			0x3d25bdd8,
-			0xe2e1c3c9,
-			0x44421659,
-			0x0a121386,
-			0xd90cec6e,
-			0xd5abea2a,
-			0x64af674e,
-			0xda86a85f,
-			0xbebfe988,
-			0x64e4c3fe,
-			0x9dbc8057,
-			0xf0f7c086,
-			0x60787bf8,
-			0x6003604d,
-			0xd1fd8346,
-			0xf6381fb0,
-			0x7745ae04,
-			0xd736fccc,
-			0x83426b33,
-			0xf01eab71,
-			0xb0804187,
-			0x3c005e5f,
-			0x77a057be,
-			0xbde8ae24,
-			0x55464299,
-			0xbf582e61,
-			0x4e58f48f,
-			0xf2ddfda2,
-			0xf474ef38,
-			0x8789bdc2,
-			0x5366f9c3,
-			0xc8b38e74,
-			0xb475f255,
-			0x46fcd9b9,
-			0x7aeb2661,
-			0x8b1ddf84,
-			0x846a0e79,
-			0x915f95e2,
-			0x466e598e,
-			0x20b45770,
-			0x8cd55591,
-			0xc902de4c,
-			0xb90bace1,
-			0xbb8205d0,
-			0x11a86248,
-			0x7574a99e,
-			0xb77f19b6,
-			0xe0a9dc09,
-			0x662d09a1,
-			0xc4324633,
-			0xe85a1f02,
-			0x09f0be8c,
-			0x4a99a025,
-			0x1d6efe10,
-			0x1ab93d1d,
-			0x0ba5a4df,
-			0xa186f20f,
-			0x2868f169,
-			0xdcb7da83,
-			0x573906fe,
-			0xa1e2ce9b,
-			0x4fcd7f52,
-			0x50115e01,
-			0xa70683fa,
-			0xa002b5c4,
-			0x0de6d027,
-			0x9af88c27,
-			0x773f8641,
-			0xc3604c06,
-			0x61a806b5,
-			0xf0177a28,
-			0xc0f586e0,
-			0x006058aa,
-			0x30dc7d62,
-			0x11e69ed7,
-			0x2338ea63,
-			0x53c2dd94,
-			0xc2c21634,
-			0xbbcbee56,
-			0x90bcb6de,
-			0xebfc7da1,
-			0xce591d76,
-			0x6f05e409,
-			0x4b7c0188,
-			0x39720a3d,
-			0x7c927c24,
-			0x86e3725f,
-			0x724d9db9,
-			0x1ac15bb4,
-			0xd39eb8fc,
-			0xed545578,
-			0x08fca5b5,
-			0xd83d7cd3,
-			0x4dad0fc4,
-			0x1e50ef5e,
-			0xb161e6f8,
-			0xa28514d9,
-			0x6c51133c,
-			0x6fd5c7e7,
-			0x56e14ec4,
-			0x362abfce,
-			0xddc6c837,
-			0xd79a3234,
-			0x92638212,
-			0x670efa8e,
-			0x406000e0,
-			0x3a39ce37,
-			0xd3faf5cf,
-			0xabc27737,
-			0x5ac52d1b,
-			0x5cb0679e,
-			0x4fa33742,
-			0xd3822740,
-			0x99bc9bbe,
-			0xd5118e9d,
-			0xbf0f7315,
-			0xd62d1c7e,
-			0xc700c47b,
-			0xb78c1b6b,
-			0x21a19045,
-			0xb26eb1be,
-			0x6a366eb4,
-			0x5748ab2f,
-			0xbc946e79,
-			0xc6a376d2,
-			0x6549c2c8,
-			0x530ff8ee,
-			0x468dde7d,
-			0xd5730a1d,
-			0x4cd04dc6,
-			0x2939bbdb,
-			0xa9ba4650,
-			0xac9526e8,
-			0xbe5ee304,
-			0xa1fad5f0,
-			0x6a2d519a,
-			0x63ef8ce2,
-			0x9a86ee22,
-			0xc089c2b8,
-			0x43242ef6,
-			0xa51e03aa,
-			0x9cf2d0a4,
-			0x83c061ba,
-			0x9be96a4d,
-			0x8fe51550,
-			0xba645bd6,
-			0x2826a2f9,
-			0xa73a3ae1,
-			0x4ba99586,
-			0xef5562e9,
-			0xc72fefd3,
-			0xf752f7da,
-			0x3f046f69,
-			0x77fa0a59,
-			0x80e4a915,
-			0x87b08601,
-			0x9b09e6ad,
-			0x3b3ee593,
-			0xe990fd5a,
-			0x9e34d797,
-			0x2cf0b7d9,
-			0x022b8b51,
-			0x96d5ac3a,
-			0x017da67d,
-			0xd1cf3ed6,
-			0x7c7d2d28,
-			0x1f9f25cf,
-			0xadf2b89b,
-			0x5ad6b472,
-			0x5a88f54c,
-			0xe029ac71,
-			0xe019a5e6,
-			0x47b0acfd,
-			0xed93fa9b,
-			0xe8d3c48d,
-			0x283b57cc,
-			0xf8d56629,
-			0x79132e28,
-			0x785f0191,
-			0xed756055,
-			0xf7960e44,
-			0xe3d35e8c,
-			0x15056dd4,
-			0x88f46dba,
-			0x03a16125,
-			0x0564f0bd,
-			0xc3eb9e15,
-			0x3c9057a2,
-			0x97271aec,
-			0xa93a072a,
-			0x1b3f6d9b,
-			0x1e6321f5,
-			0xf59c66fb,
-			0x26dcf319,
-			0x7533d928,
-			0xb155fdf5,
-			0x03563482,
-			0x8aba3cbb,
-			0x28517711,
-			0xc20ad9f8,
-			0xabcc5167,
-			0xccad925f,
-			0x4de81751,
-			0x3830dc8e,
-			0x379d5862,
-			0x9320f991,
-			0xea7a90c2,
-			0xfb3e7bce,
-			0x5121ce64,
-			0x774fbe32,
-			0xa8b6e37e,
-			0xc3293d46,
-			0x48de5369,
-			0x6413e680,
-			0xa2ae0810,
-			0xdd6db224,
-			0x69852dfd,
-			0x09072166,
-			0xb39a460a,
-			0x6445c0dd,
-			0x586cdecf,
-			0x1c20c8ae,
-			0x5bbef7dd,
-			0x1b588d40,
-			0xccd2017f,
-			0x6bb4e3bb,
-			0xdda26a7e,
-			0x3a59ff45,
-			0x3e350a44,
-			0xbcb4cdd5,
-			0x72eacea8,
-			0xfa6484bb,
-			0x8d6612ae,
-			0xbf3c6f47,
-			0xd29be463,
-			0x542f5d9e,
-			0xaec2771b,
-			0xf64e6370,
-			0x740e0d8d,
-			0xe75b1357,
-			0xf8721671,
-			0xaf537d5d,
-			0x4040cb08,
-			0x4eb4e2cc,
-			0x34d2466a,
-			0x0115af84,
-			0xe1b00428,
-			0x95983a1d,
-			0x06b89fb4,
-			0xce6ea048,
-			0x6f3f3b82,
-			0x3520ab82,
-			0x011a1d4b,
-			0x277227f8,
-			0x611560b1,
-			0xe7933fdc,
-			0xbb3a792b,
-			0x344525bd,
-			0xa08839e1,
-			0x51ce794b,
-			0x2f32c9b7,
-			0xa01fbac9,
-			0xe01cc87e,
-			0xbcc7d1f6,
-			0xcf0111c3,
-			0xa1e8aac7,
-			0x1a908749,
-			0xd44fbd9a,
-			0xd0dadecb,
-			0xd50ada38,
-			0x0339c32a,
-			0xc6913667,
-			0x8df9317c,
-			0xe0b12b4f,
-			0xf79e59b7,
-			0x43f5bb3a,
-			0xf2d519ff,
-			0x27d9459c,
-			0xbf97222c,
-			0x15e6fc2a,
-			0x0f91fc71,
-			0x9b941525,
-			0xfae59361,
-			0xceb69ceb,
-			0xc2a86459,
-			0x12baa8d1,
-			0xb6c1075e,
-			0xe3056a0c,
-			0x10d25065,
-			0xcb03a442,
-			0xe0ec6e0e,
-			0x1698db3b,
-			0x4c98a0be,
-			0x3278e964,
-			0x9f1f9532,
-			0xe0d392df,
-			0xd3a0342b,
-			0x8971f21e,
-			0x1b0a7441,
-			0x4ba3348c,
-			0xc5be7120,
-			0xc37632d8,
-			0xdf359f8d,
-			0x9b992f2e,
-			0xe60b6f47,
-			0x0fe3f11d,
-			0xe54cda54,
-			0x1edad891,
-			0xce6279cf,
-			0xcd3e7e6f,
-			0x1618b166,
-			0xfd2c1d05,
-			0x848fd2c5,
-			0xf6fb2299,
-			0xf523f357,
-			0xa6327623,
-			0x93a83531,
-			0x56cccd02,
-			0xacf08162,
-			0x5a75ebb5,
-			0x6e163697,
-			0x88d273cc,
-			0xde966292,
-			0x81b949d0,
-			0x4c50901b,
-			0x71c65614,
-			0xe6c6c7bd,
-			0x327a140a,
-			0x45e1d006,
-			0xc3f27b9a,
-			0xc9aa53fd,
-			0x62a80f00,
-			0xbb25bfe2,
-			0x35bdd2f6,
-			0x71126905,
-			0xb2040222,
-			0xb6cbcf7c,
-			0xcd769c2b,
-			0x53113ec0,
-			0x1640e3d3,
-			0x38abbd60,
-			0x2547adf0,
-			0xba38209c,
-			0xf746ce76,
-			0x77afa1c5,
-			0x20756060,
-			0x85cbfe4e,
-			0x8ae88dd8,
-			0x7aaaf9b0,
-			0x4cf9aa7e,
-			0x1948c25c,
-			0x02fb8a8c,
-			0x01c36ae4,
-			0xd6ebe1f9,
-			0x90d4f869,
-			0xa65cdea0,
-			0x3f09252d,
-			0xc208e69f,
-			0xb74e6132,
-			0xce77e25b,
-			0x578fdfe3,
-			0x3ac372e6 };
-public void decipher(byte[] src, int srcOff, byte[] dst, int dstOff, int len) {
-	int xL = lastDecipherXL;
-	int xR = lastDecipherXR;
-
-	int dataXL;
-	int dataXR;
-
-	int[] xLxR = new int[2];
-
-	for (int i = 0; i < len; i = i + 8) {
-		dataXL = (src[srcOff + i] & 0xff) | ((src[srcOff + i + 1] & 0xff) << 8) | ((src[srcOff + i + 2] & 0xff) << 16) | ((src[srcOff + i + 3] & 0xff) << 24);
-		dataXR = (src[srcOff + i + 4] & 0xff) | ((src[srcOff + i + 5] & 0xff) << 8) | ((src[srcOff + i + 6] & 0xff) << 16) | ((src[srcOff + i + 7] & 0xff) << 24);
-
-		decipher(dataXL, dataXR, xLxR);
-
-		xL ^= xLxR[0];
-		xR ^= xLxR[1];
-
-		dst[dstOff + i] = (byte) (xL & 0xff);
-		dst[dstOff + i + 1] = (byte) ((xL >> 8) & 0xff);
-		dst[dstOff + i + 2] = (byte) ((xL >> 16) & 0xff);
-		dst[dstOff + i + 3] = (byte) ((xL >> 24) & 0xff);
-		dst[dstOff + i + 4] = (byte) (xR & 0xff);
-		dst[dstOff + i + 5] = (byte) ((xR >> 8) & 0xff);
-		dst[dstOff + i + 6] = (byte) ((xR >> 16) & 0xff);
-		dst[dstOff + i + 7] = (byte) ((xR >> 24) & 0xff);
-
-		xL = dataXL;
-		xR = dataXR;
-	}
-
-	lastDecipherXL = xL;
-	lastDecipherXR = xR;
-}
-private void decipher(int xL, int xR, int[] xLxR) {
-	xL ^= P[17];
-	xR ^= (((S[0][(xL >> 24) & 0xff] + S[1][(xL >> 16) & 0xff]) ^ (S[2][(xL >> 8) & 0xff])) + (S[3][xL & 0xff])) ^ P[16];
-	xL ^= (((S[0][(xR >> 24) & 0xff] + S[1][(xR >> 16) & 0xff]) ^ (S[2][(xR >> 8) & 0xff])) + (S[3][xR & 0xff])) ^ P[15];
-	xR ^= (((S[0][(xL >> 24) & 0xff] + S[1][(xL >> 16) & 0xff]) ^ (S[2][(xL >> 8) & 0xff])) + (S[3][xL & 0xff])) ^ P[14];
-	xL ^= (((S[0][(xR >> 24) & 0xff] + S[1][(xR >> 16) & 0xff]) ^ (S[2][(xR >> 8) & 0xff])) + (S[3][xR & 0xff])) ^ P[13];
-	xR ^= (((S[0][(xL >> 24) & 0xff] + S[1][(xL >> 16) & 0xff]) ^ (S[2][(xL >> 8) & 0xff])) + (S[3][xL & 0xff])) ^ P[12];
-	xL ^= (((S[0][(xR >> 24) & 0xff] + S[1][(xR >> 16) & 0xff]) ^ (S[2][(xR >> 8) & 0xff])) + (S[3][xR & 0xff])) ^ P[11];
-	xR ^= (((S[0][(xL >> 24) & 0xff] + S[1][(xL >> 16) & 0xff]) ^ (S[2][(xL >> 8) & 0xff])) + (S[3][xL & 0xff])) ^ P[10];
-	xL ^= (((S[0][(xR >> 24) & 0xff] + S[1][(xR >> 16) & 0xff]) ^ (S[2][(xR >> 8) & 0xff])) + (S[3][xR & 0xff])) ^ P[9];
-	xR ^= (((S[0][(xL >> 24) & 0xff] + S[1][(xL >> 16) & 0xff]) ^ (S[2][(xL >> 8) & 0xff])) + (S[3][xL & 0xff])) ^ P[8];
-	xL ^= (((S[0][(xR >> 24) & 0xff] + S[1][(xR >> 16) & 0xff]) ^ (S[2][(xR >> 8) & 0xff])) + (S[3][xR & 0xff])) ^ P[7];
-	xR ^= (((S[0][(xL >> 24) & 0xff] + S[1][(xL >> 16) & 0xff]) ^ (S[2][(xL >> 8) & 0xff])) + (S[3][xL & 0xff])) ^ P[6];
-	xL ^= (((S[0][(xR >> 24) & 0xff] + S[1][(xR >> 16) & 0xff]) ^ (S[2][(xR >> 8) & 0xff])) + (S[3][xR & 0xff])) ^ P[5];
-	xR ^= (((S[0][(xL >> 24) & 0xff] + S[1][(xL >> 16) & 0xff]) ^ (S[2][(xL >> 8) & 0xff])) + (S[3][xL & 0xff])) ^ P[4];
-	xL ^= (((S[0][(xR >> 24) & 0xff] + S[1][(xR >> 16) & 0xff]) ^ (S[2][(xR >> 8) & 0xff])) + (S[3][xR & 0xff])) ^ P[3];
-	xR ^= (((S[0][(xL >> 24) & 0xff] + S[1][(xL >> 16) & 0xff]) ^ (S[2][(xL >> 8) & 0xff])) + (S[3][xL & 0xff])) ^ P[2];
-	xL ^= (((S[0][(xR >> 24) & 0xff] + S[1][(xR >> 16) & 0xff]) ^ (S[2][(xR >> 8) & 0xff])) + (S[3][xR & 0xff])) ^ P[1];
-	xR ^= P[0];
-
-	xLxR[0] = xR;
-	xLxR[1] = xL;
-}
-public void encipher(byte[] src, int srcOff, byte[] dst, int dstOff, int len) {
-	int xL = lastEncipherXL;
-	int xR = lastEncipherXR;
-
-	int[] xLxR = new int[2];
-
-	for (int i = 0; i < len; i = i + 8) {
-		xL ^= (src[srcOff + i] & 0xff) | ((src[srcOff + i + 1] & 0xff) << 8) | ((src[srcOff + i + 2] & 0xff) << 16) | ((src[srcOff + i + 3] & 0xff) << 24);
-		xR ^= (src[srcOff + i + 4] & 0xff) | ((src[srcOff + i + 5] & 0xff) << 8) | ((src[srcOff + i + 6] & 0xff) << 16) | ((src[srcOff + i + 7] & 0xff) << 24);
-
-		encipher(xL, xR, xLxR);
-
-		xL = xLxR[0];
-		xR = xLxR[1];
-
-		dst[dstOff + i] = (byte) (xL & 0xff);
-		dst[dstOff + i + 1] = (byte) ((xL >> 8) & 0xff);
-		dst[dstOff + i + 2] = (byte) ((xL >> 16) & 0xff);
-		dst[dstOff + i + 3] = (byte) ((xL >> 24) & 0xff);
-		dst[dstOff + i + 4] = (byte) (xR & 0xff);
-		dst[dstOff + i + 5] = (byte) ((xR >> 8) & 0xff);
-		dst[dstOff + i + 6] = (byte) ((xR >> 16) & 0xff);
-		dst[dstOff + i + 7] = (byte) ((xR >> 24) & 0xff);
-	}
-
-	lastEncipherXL = xL;
-	lastEncipherXR = xR;
-}
-private void encipher(int xL, int xR, int[] xLxR) {
-	xL ^= P[0];
-	xR ^= (((S[0][(xL >> 24) & 0xff] + S[1][(xL >> 16) & 0xff]) ^ (S[2][(xL >> 8) & 0xff])) + (S[3][xL & 0xff])) ^ P[1];
-	xL ^= (((S[0][(xR >> 24) & 0xff] + S[1][(xR >> 16) & 0xff]) ^ (S[2][(xR >> 8) & 0xff])) + (S[3][xR & 0xff])) ^ P[2];
-	xR ^= (((S[0][(xL >> 24) & 0xff] + S[1][(xL >> 16) & 0xff]) ^ (S[2][(xL >> 8) & 0xff])) + (S[3][xL & 0xff])) ^ P[3];
-	xL ^= (((S[0][(xR >> 24) & 0xff] + S[1][(xR >> 16) & 0xff]) ^ (S[2][(xR >> 8) & 0xff])) + (S[3][xR & 0xff])) ^ P[4];
-	xR ^= (((S[0][(xL >> 24) & 0xff] + S[1][(xL >> 16) & 0xff]) ^ (S[2][(xL >> 8) & 0xff])) + (S[3][xL & 0xff])) ^ P[5];
-	xL ^= (((S[0][(xR >> 24) & 0xff] + S[1][(xR >> 16) & 0xff]) ^ (S[2][(xR >> 8) & 0xff])) + (S[3][xR & 0xff])) ^ P[6];
-	xR ^= (((S[0][(xL >> 24) & 0xff] + S[1][(xL >> 16) & 0xff]) ^ (S[2][(xL >> 8) & 0xff])) + (S[3][xL & 0xff])) ^ P[7];
-	xL ^= (((S[0][(xR >> 24) & 0xff] + S[1][(xR >> 16) & 0xff]) ^ (S[2][(xR >> 8) & 0xff])) + (S[3][xR & 0xff])) ^ P[8];
-	xR ^= (((S[0][(xL >> 24) & 0xff] + S[1][(xL >> 16) & 0xff]) ^ (S[2][(xL >> 8) & 0xff])) + (S[3][xL & 0xff])) ^ P[9];
-	xL ^= (((S[0][(xR >> 24) & 0xff] + S[1][(xR >> 16) & 0xff]) ^ (S[2][(xR >> 8) & 0xff])) + (S[3][xR & 0xff])) ^ P[10];
-	xR ^= (((S[0][(xL >> 24) & 0xff] + S[1][(xL >> 16) & 0xff]) ^ (S[2][(xL >> 8) & 0xff])) + (S[3][xL & 0xff])) ^ P[11];
-	xL ^= (((S[0][(xR >> 24) & 0xff] + S[1][(xR >> 16) & 0xff]) ^ (S[2][(xR >> 8) & 0xff])) + (S[3][xR & 0xff])) ^ P[12];
-	xR ^= (((S[0][(xL >> 24) & 0xff] + S[1][(xL >> 16) & 0xff]) ^ (S[2][(xL >> 8) & 0xff])) + (S[3][xL & 0xff])) ^ P[13];
-	xL ^= (((S[0][(xR >> 24) & 0xff] + S[1][(xR >> 16) & 0xff]) ^ (S[2][(xR >> 8) & 0xff])) + (S[3][xR & 0xff])) ^ P[14];
-	xR ^= (((S[0][(xL >> 24) & 0xff] + S[1][(xL >> 16) & 0xff]) ^ (S[2][(xL >> 8) & 0xff])) + (S[3][xL & 0xff])) ^ P[15];
-	xL ^= (((S[0][(xR >> 24) & 0xff] + S[1][(xR >> 16) & 0xff]) ^ (S[2][(xR >> 8) & 0xff])) + (S[3][xR & 0xff])) ^ P[16];
-	xR ^= P[17];
-
-	xLxR[0] = xR;
-	xLxR[1] = xL;
-}
-public void setKey(byte key[]) {
-	int data = 0;
-	int offset = 0;
-
-	for (int i = 0; i < P.length; ++i) {
-		P[i] = INIT_DATA[offset++];
-	}
-
-	for (int i = 0; i < S.length; ++i) {
-		for (int j = 0; j < S[i].length; ++j) {
-			S[i][j] = INIT_DATA[offset++];
-		}
-	}
-
-	offset = 0;
-	for (int i = 0; i < P.length; ++i) {
-		data = 0;
-		for (int k = 0; k < 4; ++k) {
-			data = (data << 8) | (key[offset++] & 0xff);
-			if (offset >= key.length) {
-				offset = 0;
-			}
-		}
-		P[i] = P[i] ^ data;
-	}
-
-	int[] lr = new int[] { 0, 0 };
-	for (int i = 0; i < P.length; i += 2) {
-		encipher(lr[0], lr[1], lr);
-		P[i] = lr[0];
-		P[i + 1] = lr[1];
-	}
-
-	for (int i = 0; i < S.length; ++i) {
-		for (int j = 0; j < S[i].length; j += 2) {
-			encipher(lr[0], lr[1], lr);
-			S[i][j] = lr[0];
-			S[i][j + 1] = lr[1];
-		}
-	}
-
-	lastEncipherXL = 0;
-	lastEncipherXR = 0;
-	lastDecipherXL = 0;
-	lastDecipherXR = 0;
-}
-}
diff --git a/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/Cipher.java b/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/Cipher.java
deleted file mode 100644
index 2e55a3a..0000000
--- a/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/Cipher.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.ssh;
-
-public abstract class Cipher {
-public abstract void decipher(byte[] src, int srcPos, byte[] dst, int dstPos, int len);
-public abstract void encipher(byte[] src, int srcPos, byte[] dst, int dstPos, int len);
-public static Cipher getInstance(String algorithm) {
-	try {
-		Class c = Class.forName("org.eclipse.team.internal.ccvs.ssh." + algorithm); //$NON-NLS-1$
-		return (Cipher) c.newInstance();
-	} catch (Exception e) {
-		return null;
-	}
-}
-public abstract void setKey(byte[] key);
-}
diff --git a/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/Client.java b/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/Client.java
deleted file mode 100644
index bb1d18d..0000000
--- a/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/Client.java
+++ /dev/null
@@ -1,722 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.ssh;
-
-/**
- * An SSH 1.5 client..
- */
-
-import java.io.BufferedInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InterruptedIOException;
-import java.io.OutputStream;
-import java.math.BigInteger;
-import java.net.Socket;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.team.internal.ccvs.core.connection.CVSAuthenticationException;
-import org.eclipse.team.internal.ccvs.core.util.Util;
-import org.eclipse.team.internal.core.streams.PollingInputStream;
-import org.eclipse.team.internal.core.streams.PollingOutputStream;
-import org.eclipse.team.internal.core.streams.TimeoutOutputStream;
-
-public class Client {
-	// client identification string
-	private static final String clientId = "SSH-1.5-Java 1.2.2\n"; //$NON-NLS-1$
-
-	// server identification string
-	private static String serverId = null;
-
-	// maximum outgoing packet size
-	private static final int MAX_CLIENT_PACKET_SIZE = 1024;
-
-	// packet types
-	private static final int SSH_MSG_DISCONNECT = 1;
-	private static final int SSH_SMSG_PUBLIC_KEY = 2;
-	private static final int SSH_CMSG_SESSION_KEY = 3;
-	private static final int SSH_CMSG_USER = 4;
-	private static final int SSH_CMSG_AUTH_PASSWORD = 9;
-	private static final int SSH_CMSG_REQUEST_PTY = 10;
-	private static final int SSH_CMSG_EXEC_SHELL = 12;
-	private static final int SSH_CMSG_EXEC_CMD = 13;
-	private static final int SSH_SMSG_SUCCESS = 14;
-	private static final int SSH_SMSG_FAILURE = 15;
-	private static final int SSH_CMSG_STDIN_DATA = 16;
-	private static final int SSH_SMSG_STDOUT_DATA = 17;
-	private static final int SSH_SMSG_STDERR_DATA = 18;
-	private static final int SSH_SMSG_EXITSTATUS = 20;
-	private static final int SSH_CMSG_EXIT_CONFIRMATION = 33;
-	private static final int SSH_MSG_DEBUG = 36;
-
-	// cipher names
-	private static String[] cipherNames = { "None", "IDEA", "DES", "3DES", "TSS", "RC4", "Blowfish" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$
-
-	// cipher types
-	private static int SSH_CIPHER_NONE = 0;
-	private static int SSH_CIPHER_IDEA = 1;
-	private static int SSH_CIPHER_DES = 2;
-	private static int SSH_CIPHER_3DES = 3;
-	private static int SSH_CIPHER_TSS = 4;
-	private static int SSH_CIPHER_RC4 = 5;
-	private static int SSH_CIPHER_BLOWFISH = 6;
-
-	// preferred cipher types
-	private int[] preferredCipherTypes = { SSH_CIPHER_BLOWFISH };
-
-	// authentication methods 
-	private final int SSH_AUTH_RHOSTS = 1;
-	private final int SSH_AUTH_RSA = 2;
-	private final int SSH_AUTH_PASSWORD = 3;
-	private final int SSH_AUTH_RHOSTS_RSA = 4;
-
-	private String host;
-	private int port;
-	private String username;
-	private String password;
-	private String command;
-
-	private Socket socket;
-	private InputStream socketIn;
-	private OutputStream socketOut;
-	private InputStream is;
-	private OutputStream os;
-	private boolean connected = false;
-	private int timeout = -1;
-
-	private Cipher cipher = null;
-
-	private class StandardInputStream extends InputStream {
-		private ServerPacket packet = null;
-		private InputStream buffer = null;
-		private int buflen = 0;
-		private boolean atEnd = false;
-		private boolean closed = false;
-		private int exitStatus = 0;
-
-		public int available() throws IOException {
-			if (closed) {
-				throw new IOException(Policy.bind("closed")); //$NON-NLS-1$
-			}
-
-			int available = buffer == null ? 0 : buffer.available();
-
-			if (available == 0 && socketIn.available() > 0) {
-				fill();
-				if (atEnd) {
-					return 0;
-				}
-				available = buffer.available();
-			}
-
-			return available;
-		}
-
-		public void close() throws IOException {
-			if (!closed) {
-				closed = true;
-				if (packet != null) {
-					packet.close(false);
-					buffer = null;
-					packet = null;
-					buflen = 0;
-				}
-			}
-		}
-
-		public int read() throws IOException {
-			if (closed) {
-				throw new IOException(Policy.bind("closed"));//$NON-NLS-1$
-			}
-
-			if (atEnd) {
-				return -1;
-			}
-
-			if (buffer == null || buffer.available() == 0) {
-				fill();
-				if (atEnd) {
-					return -1;
-				}
-			}
-
-			return buffer.read();
-		}
-
-		public int read(byte b[], int off, int len) throws IOException {
-			if (closed) {
-				throw new IOException(Policy.bind("closed"));//$NON-NLS-1$
-			}
-
-			if (atEnd) {
-				return -1;
-			}
-
-			if (buffer == null || buffer.available() == 0) {
-				fill();
-				if (atEnd) {
-					return -1;
-				}
-			}
-
-			return buffer.read(b, off, len);
-		}
-
-		private void fill() throws IOException {
-			if (buffer != null) {
-				buffer.close();
-			}
-
-			packet = skip_SSH_MSG_DEBUG();
-			int packetType = packet.getType();
-
-			switch (packetType) {
-				case SSH_SMSG_STDOUT_DATA :
-				case SSH_SMSG_STDERR_DATA :
-				case SSH_MSG_DEBUG :
-					buffer = packet.getInputStream();
-					buflen = Misc.readInt(buffer);
-					break;
-				case SSH_SMSG_EXITSTATUS :
-					buffer = null;
-					buflen = 0;
-					atEnd = true;
-					InputStream pis = packet.getInputStream();
-					exitStatus = Misc.readInt(pis);
-					pis.close();
-					send(SSH_CMSG_EXIT_CONFIRMATION, null);
-					break;
-				case SSH_MSG_DISCONNECT :
-					buffer = null;
-					buflen = 0;
-					atEnd = true;
-					handleDisconnect(packet.getInputStream());
-					break;
-				default :
-					throw new IOException(Policy.bind("Client.packetType", new Object[] {new Integer(packetType)} ));//$NON-NLS-1$
-			}
-		}
-		
-		private void handleDisconnect(InputStream in) throws IOException {
-			String description = null;
-			try {
-				description = Misc.readString(in);
-			} catch (IOException e) {
-			} finally {
-				in.close();
-			}
-			
-			// Log the description provided by the server
-			if (description == null) {
-				description = Policy.bind("Client.noDisconnectDescription"); //$NON-NLS-1$
-			}
-			
-			// Throw an IOException with the proper text
-			throw new IOException(Policy.bind("Client.disconnectDescription", new Object[] {description}));//$NON-NLS-1$
-		}
-	}
-
-	private class StandardOutputStream extends OutputStream {
-		private int MAX_BUFFER_SIZE = MAX_CLIENT_PACKET_SIZE;
-		private byte[] buffer = new byte[MAX_BUFFER_SIZE];
-		private int bufpos = 0;
-		private boolean closed = false;
-
-		public void close() throws IOException {
-			if (!closed) {
-				try {
-					flush();
-				} finally {
-					closed = true;
-				}
-			}
-		}
-
-		public void flush() throws IOException {
-			if (closed) {
-				throw new IOException(Policy.bind("closed"));//$NON-NLS-1$
-			}
-
-			if (bufpos > 0) {
-				send(SSH_CMSG_STDIN_DATA, buffer, 0, bufpos);
-				bufpos = 0;
-			}
-		}
-
-		public void write(int b) throws IOException {
-			if (closed) {
-				throw new IOException(Policy.bind("closed"));//$NON-NLS-1$
-			}
-
-			buffer[bufpos++] = (byte) b;
-
-			if (bufpos == MAX_BUFFER_SIZE) {
-				flush();
-			}
-		}
-
-		public void write(byte b[], int off, int len) throws IOException {
-			if (closed) {
-				throw new IOException(Policy.bind("closed")); //$NON-NLS-1$
-			}
-
-			int bytesWritten = 0;
-			int totalBytesWritten = 0;
-
-			if (bufpos > 0) {
-				bytesWritten = Math.min(MAX_BUFFER_SIZE - bufpos, len);
-				System.arraycopy(b, off, buffer, bufpos, bytesWritten);
-				bufpos += bytesWritten;
-				totalBytesWritten += bytesWritten;
-
-				if (bufpos == MAX_BUFFER_SIZE) {
-					flush();
-				}
-			}
-
-			while (len - totalBytesWritten >= MAX_BUFFER_SIZE) {
-				send(SSH_CMSG_STDIN_DATA, b, off + totalBytesWritten, MAX_BUFFER_SIZE);
-				totalBytesWritten += MAX_BUFFER_SIZE;
-			}
-
-			if (totalBytesWritten < len) {
-				bytesWritten = len - totalBytesWritten;
-				System.arraycopy(b, off + totalBytesWritten, buffer, 0, bytesWritten);
-				bufpos += bytesWritten;
-			}
-		}
-	}
-public Client(InputStream socketIn, OutputStream socketOut, String username, String password) {
-	this.socketIn = socketIn;
-	this.socketOut = socketOut;
-	this.username = username;
-	this.password = password;
-}
-public Client(InputStream socketIn, OutputStream socketOut, String username, String password, String command) {
-	this(socketIn, socketOut, username, password);
-	this.command = command;
-}
-public Client(String host, int port, String username, String password) {
-	this.host = host;
-	this.port = port;
-	this.username = username;
-	this.password = password;
-}
-public Client(String host, int port, String username, String password, String command) {
-	this(host, port, username, password);
-	this.command = command;
-}
-public Client(String host, int port, String username, String password, String command, int timeout) {
-	this(host, port, username, password, command);
-	this.timeout = timeout;
-}
-/**
- * Close all streams and sockets.
- */
-private void cleanup() throws IOException {
-	try {
-		if (is != null)
-			is.close();
-	} finally {
-		try {
-			if (os != null)
-				os.close();
-		} finally {
-			try {
-				if (socketIn != null)
-					socketIn.close();
-			} finally {
-				try {
-					if (socketOut != null)
-						socketOut.close();
-				} finally {
-					try {
-						if (socket != null)
-							socket.close();
-					} finally {
-						socket = null;
-					}
-				}
-			}
-		}
-	}
-}
-/**
- * Connect to the remote server. If an exception is thrown, the caller
- * can asssume that all streams and sockets are closed.
- */
-public void connect(IProgressMonitor monitor) throws IOException, CVSAuthenticationException {
-	// If we're already connected, just ignore the invokation
-	if (connected)
-		return;
-		
-	// Otherwise, set up the connection
-	try {
-		
-		// Create the socket (the socket should always be null here)
-		if (socket == null) {
-			try {
-				socket = Util.createSocket(host, port, monitor);
-				// Bug 36351: disable buffering and send bytes immediately
-				socket.setTcpNoDelay(true);
-			} catch (InterruptedIOException e) {
-				// If we get this exception, chances are the host is not responding
-				throw new InterruptedIOException(Policy.bind("Client.socket", new Object[] {host}));//$NON-NLS-1$
-
-			}
-			if (timeout >= 0) {
-				socket.setSoTimeout(1000);
-			}
-			socketIn = new BufferedInputStream(new PollingInputStream(socket.getInputStream(),
-				timeout > 0 ? timeout : 1, monitor));
-			socketOut = new PollingOutputStream(new TimeoutOutputStream(
-				socket.getOutputStream(), 8192 /*bufferSize*/, 1000 /*writeTimeout*/, 1000 /*closeTimeout*/),
-				timeout > 0 ? timeout : 1, monitor);
-		}
-
-		// read the ssh server id. The socket creation may of failed if the
-		// server cannot accept our connection request. We don't expect the
-		// socket to be closed at this point.
-		StringBuffer buf = new StringBuffer();
-		int c;
-		while ((c = socketIn.read()) != '\n') {
-			if (c == -1)
-				throw new IOException(Policy.bind("Client.socketClosed"));//$NON-NLS-1$
-			buf.append((char) c);
-		}
-		serverId = buf.toString();
-		
-		if (Policy.DEBUG_SSH_PROTOCOL) {
-			System.out.println("SSH > server ID: " + serverId); //$NON-NLS-1$
-			System.out.println("SSH > client ID: " + clientId); //$NON-NLS-1$
-		}
-		
-		if (!serverId.startsWith("SSH-1.")) { //$NON-NLS-1$
-			String sshVersion = (serverId.startsWith("SSH-")? serverId:""); //$NON-NLS-1$ //$NON-NLS-2$
-			throw new IOException(Policy.bind("Client.sshProtocolVersion", sshVersion));//$NON-NLS-1$
-		} 
-		
-		// send our id.
-		socketOut.write(clientId.getBytes());
-		socketOut.flush();
-
-		login();
-		
-		// start a shell and enter interactive session or start by
-		// executing the given command.
-		if( command == null ) {
-			startShell();
-		} else {
-			executeCommand();
-		}
-
-		is = new StandardInputStream();
-		os = new StandardOutputStream();
-
-		connected = true;
-	// If an exception occurs while connected, make sure we disconnect before passing the exception on
-	} finally {
-		if (! connected) cleanup();
-	}
-}
-/**
- * Terminate the connection to the server.
- */
-public void disconnect() throws IOException {
-	if (Policy.DEBUG_SSH_PROTOCOL) {
-		System.out.println("Disconnecting."); //$NON-NLS-1$
-	}	
-	if (connected) {
-		connected = false;
-		send(SSH_MSG_DISCONNECT, null);
-		cleanup();
-	}
-}
-public InputStream getInputStream() throws IOException {
-	if (!connected) {
-		throw new IOException(Policy.bind("Client.notConnected"));//$NON-NLS-1$
-	}
-
-	return is;
-}
-public OutputStream getOutputStream() throws IOException {
-	if (!connected) {
-		throw new IOException(Policy.bind("Client.notConnected"));//$NON-NLS-1$
-	}
-
-	return os;
-}
-
-private void startShell() throws IOException {
-	ServerPacket packet = null;
-	int packetType;
-
-	send_SSH_CMSG_REQUEST_PTY();
-
-	try {
-		packet = skip_SSH_MSG_DEBUG();
-		packetType = packet.getType();
-
-		if (packetType != SSH_SMSG_SUCCESS) {
-			throw new IOException(Policy.bind("Client.packetType", new Object[] {new Integer(packetType)} ));//$NON-NLS-1$
-		}
-	} finally {
-		if (packet != null) {
-			packet.close(true /*perform crc check*/);
-		}
-	}
-
-	send(SSH_CMSG_EXEC_SHELL, null);
-}
-
-private void executeCommand() throws IOException {	
-	send(SSH_CMSG_EXEC_CMD, command);
-}
-
-private void login() throws IOException, CVSAuthenticationException {
-	ServerPacket packet = null;
-	int packetType;
-
-	try {
-		packet = skip_SSH_MSG_DEBUG();
-		packetType = packet.getType();
-
-		if (packetType != SSH_SMSG_PUBLIC_KEY) {
-			throw new IOException(Policy.bind("Client.packetType", new Object[] {new Integer(packetType)} ));//$NON-NLS-1$
-		}
-
-		receive_SSH_SMSG_PUBLIC_KEY(packet);
-	} finally {
-		if (packet != null) {
-			packet.close(true);
-		}
-	}
-
-	try {
-		packet = skip_SSH_MSG_DEBUG();
-		packetType = packet.getType();
-
-		if (packetType != SSH_SMSG_SUCCESS) {
-			throw new IOException(Policy.bind("Client.packetType", new Object[] {new Integer(packetType)} ));//$NON-NLS-1$
-		}
-	} finally {
-		if (packet != null) {
-			packet.close(true);
-		}
-	}
-
-	send(SSH_CMSG_USER, username);
-
-	try {
-		packet = skip_SSH_MSG_DEBUG();
-		packetType = packet.getType();
-
-		if (packetType != SSH_SMSG_FAILURE) {
-			throw new IOException(Policy.bind("Client.packetType", new Object[] {new Integer(packetType)} ));//$NON-NLS-1$
-		}
-	} finally {
-		if (packet != null) {
-			packet.close(true);
-		}
-	}
-
-	send(SSH_CMSG_AUTH_PASSWORD, password);
-
-	try {
-		packet = skip_SSH_MSG_DEBUG();
-		packetType = packet.getType();
-
-		if (packetType == SSH_SMSG_FAILURE) {
-			throw new CVSAuthenticationException(Policy.bind("Client.authenticationFailed"));//$NON-NLS-1$
-		}
-
-		if (packetType != SSH_SMSG_SUCCESS) {
-			throw new IOException(Policy.bind("Client.packetType", new Object[] {new Integer(packetType)} ));//$NON-NLS-1$
-		}
-	} finally {
-		if (packet != null) {
-			packet.close(true);
-		}
-	}
-}
-private void receive_SSH_SMSG_PUBLIC_KEY(ServerPacket packet) throws IOException, CVSAuthenticationException {
-	InputStream pis = packet.getInputStream();
-
-	byte[] anti_spoofing_cookie = new byte[8];
-	Misc.readFully(pis, anti_spoofing_cookie);
-
-	byte[] server_key_bits = new byte[4];
-	Misc.readFully(pis, server_key_bits);
-
-	byte[] server_key_public_exponent = Misc.readMpInt(pis);
-	byte[] server_key_public_modulus = Misc.readMpInt(pis);
-
-	byte[] host_key_bits = new byte[4];
-	Misc.readFully(pis, host_key_bits);
-
-	byte[] host_key_public_exponent = Misc.readMpInt(pis);
-	byte[] host_key_public_modulus = Misc.readMpInt(pis);
-
-	byte[] protocol_flags = new byte[4];
-	Misc.readFully(pis, protocol_flags);
-
-	byte[] supported_ciphers_mask = new byte[4];
-	Misc.readFully(pis, supported_ciphers_mask);
-
-	byte[] supported_authentications_mask = new byte[4];
-	Misc.readFully(pis, supported_authentications_mask);
-
-	pis.close();
-
-	send_SSH_CMSG_SESSION_KEY(anti_spoofing_cookie, host_key_bits, server_key_public_modulus, host_key_public_modulus, supported_ciphers_mask, server_key_public_exponent, host_key_public_exponent);
-}
-private void send(int packetType, String s) throws IOException {
-	byte[] data = s == null ? new byte[0] : s.getBytes("UTF-8"); //$NON-NLS-1$
-	send(packetType, data, 0, data.length);
-}
-private void send(int packetType, byte[] data, int off, int len) throws IOException {
-	data = data == null ? null : Misc.lengthEncode(data, off, len);
-	ClientPacket packet = new ClientPacket(packetType, data, cipher);
-	socketOut.write(packet.getBytes());
-	socketOut.flush();
-}
-private void send_SSH_CMSG_REQUEST_PTY() throws IOException {
-	byte packet_type = SSH_CMSG_REQUEST_PTY;
-
-	byte[] termType = Misc.lengthEncode("dumb".getBytes(), 0, 4);//$NON-NLS-1$
-	byte[] row = {0, 0, 0, 0};
-	byte[] col = {0, 0, 0, 0};
-	byte[] XPixels = {0, 0, 0, 0};
-	byte[] YPixels = {0, 0, 0, 0};
-	byte[] terminalModes = {0};
-
-	byte[] data = new byte[termType.length + row.length + col.length + XPixels.length + YPixels.length + terminalModes.length];
-
-	int offset = 0;
-	System.arraycopy(termType, 0, data, offset, termType.length);
-
-	offset += termType.length;
-	System.arraycopy(row, 0, data, offset, row.length);
-
-	offset += row.length;
-	System.arraycopy(col, 0, data, offset, col.length);
-
-	offset += col.length;
-	System.arraycopy(XPixels, 0, data, offset, XPixels.length);
-
-	offset += XPixels.length;
-	System.arraycopy(YPixels, 0, data, offset, YPixels.length);
-
-	offset += YPixels.length;
-	System.arraycopy(terminalModes, 0, data, offset, terminalModes.length);
-
-	ClientPacket packet = new ClientPacket(packet_type, data, cipher);
-	socketOut.write(packet.getBytes());
-	socketOut.flush();
-}
-private void send_SSH_CMSG_SESSION_KEY(byte[] anti_spoofing_cookie, byte[] host_key_bits, byte[] server_key_public_modulus, byte[] host_key_public_modulus, byte[] supported_ciphers_mask, byte[] server_key_public_exponent, byte[] host_key_public_exponent) throws IOException, CVSAuthenticationException {
-	byte packet_type = SSH_CMSG_SESSION_KEY;
-
-	// session_id
-	byte[] session_id = new byte[host_key_public_modulus.length + server_key_public_modulus.length + anti_spoofing_cookie.length];
-
-	int offset = 0;
-	System.arraycopy(host_key_public_modulus, 0, session_id, offset, host_key_public_modulus.length);
-
-	offset += host_key_public_modulus.length;
-	System.arraycopy(server_key_public_modulus, 0, session_id, offset, server_key_public_modulus.length);
-
-	offset += server_key_public_modulus.length;
-	System.arraycopy(anti_spoofing_cookie, 0, session_id, offset, anti_spoofing_cookie.length);
-
-	session_id = Misc.md5(session_id);
-
-	// cipher_type
-	byte cipher_type = 0;
-	boolean foundSupportedCipher = false;
-
-	for (int i = 0; i < preferredCipherTypes.length && !foundSupportedCipher; ++i) {
-		cipher_type = (byte) preferredCipherTypes[i];
-		foundSupportedCipher = (supported_ciphers_mask[3] & (byte) (1 << cipher_type)) != 0;
-	}
-
-	if (!foundSupportedCipher) {
-		throw new IOException(Policy.bind("Client.cipher"));//$NON-NLS-1$
-	}
-
-	// session_key
-	byte[] session_key = new byte[32];
-	byte[] session_key_xored = new byte[32];
-	byte[] session_key_encrypted = null;
-
-	Misc.random(session_key, 0, session_key.length, true);
-	System.arraycopy(session_key, 0, session_key_xored, 0, session_key.length);
-	Misc.xor(session_key_xored, 0, session_id, 0, session_key_xored, 0, session_id.length);
-
-	BigInteger host_e = new BigInteger(1, host_key_public_exponent);
-	BigInteger host_n = new BigInteger(1, host_key_public_modulus);
-	if (!new KnownHosts().verifyKey(host, host_key_bits, host_e, host_n)) {
-		throw new CVSAuthenticationException(Policy.bind("Client.hostIdChanged")); //$NON-NLS-1$
-	};
-	byte[] result;
-	if (new BigInteger(1,server_key_public_modulus).compareTo(host_n) == -1) {
-		result = Misc.encryptRSAPkcs1(session_key_xored, server_key_public_exponent, server_key_public_modulus);
-		result = Misc.encryptRSAPkcs1(result, host_key_public_exponent, host_key_public_modulus);
-	} else {
-		result = Misc.encryptRSAPkcs1(session_key_xored, host_key_public_exponent, host_key_public_modulus);
-		result = Misc.encryptRSAPkcs1(result, server_key_public_exponent, server_key_public_modulus);	 
-	}
-
-	session_key_encrypted = new byte[result.length + 2];
-	session_key_encrypted[1] = (byte) ((8 * result.length) & 0xff);
-	session_key_encrypted[0] = (byte) (((8 * result.length) >> 8) & 0xff);
-
-	for (int i = 0; i < result.length; i++) {
-		session_key_encrypted[i + 2] = result[i];
-	}
-
-	// protocol_flags
-	byte[] protocol_flags = {0, 0, 0, 0};
-
-	// data
-	byte[] data = new byte[1 + anti_spoofing_cookie.length + session_key_encrypted.length + protocol_flags.length];
-
-	offset = 0;
-	data[offset++] = (byte) cipher_type;
-
-	System.arraycopy(anti_spoofing_cookie, 0, data, offset, anti_spoofing_cookie.length);
-
-	offset += anti_spoofing_cookie.length;
-	System.arraycopy(session_key_encrypted, 0, data, offset, session_key_encrypted.length);
-
-	offset += session_key_encrypted.length;
-	System.arraycopy(protocol_flags, 0, data, offset, protocol_flags.length);
-
-	// cipher
-	cipher = Cipher.getInstance(cipherNames[cipher_type]);
-	cipher.setKey(session_key);
-
-	// packet
-	ClientPacket packet = new ClientPacket(packet_type, data, null);
-	socketOut.write(packet.getBytes());
-	socketOut.flush();
-}
-
-private ServerPacket skip_SSH_MSG_DEBUG() throws IOException {
-	ServerPacket packet = new ServerPacket(socketIn, cipher);
-	while (packet.getType() == SSH_MSG_DEBUG) {
-		packet.close(true);
-		packet = new ServerPacket(socketIn, cipher);
-	}
-	
-	return packet;
-}
-}
diff --git a/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/ClientPacket.java b/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/ClientPacket.java
deleted file mode 100644
index 7a8a7ed..0000000
--- a/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/ClientPacket.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.ssh;
-
-class ClientPacket extends Packet {
-	byte[] packet;
-public ClientPacket(int type, byte[] data, Cipher cipher) {
-	packetLength = data == null ? 5 : data.length + 5;
-	paddingLength = 8 - (packetLength % 8);
-	packetType = type;
-	packet = new byte[4 + paddingLength + packetLength];
-
-	int packetOff = 0;
-	Misc.writeInt(packetLength, packet, packetOff);
-	packetOff += 4;
-
-	if (cipher == null) {
-		for (int i = 0; i < paddingLength; i++) {
-			packet[packetOff++] = 0;
-		}
-	} else {
-		Misc.random(packet, packetOff, paddingLength, false);
-		packetOff += paddingLength;
-	}
-
-	packet[packetOff++] = (byte) packetType;
-
-	if (data != null) {
-		for (int i = 0; i < data.length; ++i) {
-			packet[packetOff++] = data[i];
-		}
-	}
-
-	long crc = Misc.crc32(packet, 4, packet.length - 8, 0);
-	Misc.writeInt((int) crc, packet, packetOff);
-	packetOff += 4;
-
-	if (cipher != null) {
-		cipher.encipher(packet, 4, packet, 4, packet.length - 4);
-	}
-}
-public byte[] getBytes() {
-	return packet;
-}
-}
diff --git a/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/KnownHosts.java b/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/KnownHosts.java
deleted file mode 100644
index fb98ee3..0000000
--- a/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/KnownHosts.java
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/Misc.java b/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/Misc.java
deleted file mode 100644
index 8f61a04..0000000
--- a/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/Misc.java
+++ /dev/null
@@ -1,471 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.ssh;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.math.BigInteger;
-import java.security.MessageDigest;
-import java.security.NoSuchAlgorithmException;
-import java.security.SecureRandom;
-
-class Misc {
-	private static MessageDigest md5 = null;
-	private static SecureRandom random = null;
-	private static long crc32_tab[] = {
-		0x00000000L,
-		0x77073096L,
-		0xee0e612cL,
-		0x990951baL,
-		0x076dc419L,
-		0x706af48fL,
-		0xe963a535L,
-		0x9e6495a3L,
-		0x0edb8832L,
-		0x79dcb8a4L,
-		0xe0d5e91eL,
-		0x97d2d988L,
-		0x09b64c2bL,
-		0x7eb17cbdL,
-		0xe7b82d07L,
-		0x90bf1d91L,
-		0x1db71064L,
-		0x6ab020f2L,
-		0xf3b97148L,
-		0x84be41deL,
-		0x1adad47dL,
-		0x6ddde4ebL,
-		0xf4d4b551L,
-		0x83d385c7L,
-		0x136c9856L,
-		0x646ba8c0L,
-		0xfd62f97aL,
-		0x8a65c9ecL,
-		0x14015c4fL,
-		0x63066cd9L,
-		0xfa0f3d63L,
-		0x8d080df5L,
-		0x3b6e20c8L,
-		0x4c69105eL,
-		0xd56041e4L,
-		0xa2677172L,
-		0x3c03e4d1L,
-		0x4b04d447L,
-		0xd20d85fdL,
-		0xa50ab56bL,
-		0x35b5a8faL,
-		0x42b2986cL,
-		0xdbbbc9d6L,
-		0xacbcf940L,
-		0x32d86ce3L,
-		0x45df5c75L,
-		0xdcd60dcfL,
-		0xabd13d59L,
-		0x26d930acL,
-		0x51de003aL,
-		0xc8d75180L,
-		0xbfd06116L,
-		0x21b4f4b5L,
-		0x56b3c423L,
-		0xcfba9599L,
-		0xb8bda50fL,
-		0x2802b89eL,
-		0x5f058808L,
-		0xc60cd9b2L,
-		0xb10be924L,
-		0x2f6f7c87L,
-		0x58684c11L,
-		0xc1611dabL,
-		0xb6662d3dL,
-		0x76dc4190L,
-		0x01db7106L,
-		0x98d220bcL,
-		0xefd5102aL,
-		0x71b18589L,
-		0x06b6b51fL,
-		0x9fbfe4a5L,
-		0xe8b8d433L,
-		0x7807c9a2L,
-		0x0f00f934L,
-		0x9609a88eL,
-		0xe10e9818L,
-		0x7f6a0dbbL,
-		0x086d3d2dL,
-		0x91646c97L,
-		0xe6635c01L,
-		0x6b6b51f4L,
-		0x1c6c6162L,
-		0x856530d8L,
-		0xf262004eL,
-		0x6c0695edL,
-		0x1b01a57bL,
-		0x8208f4c1L,
-		0xf50fc457L,
-		0x65b0d9c6L,
-		0x12b7e950L,
-		0x8bbeb8eaL,
-		0xfcb9887cL,
-		0x62dd1ddfL,
-		0x15da2d49L,
-		0x8cd37cf3L,
-		0xfbd44c65L,
-		0x4db26158L,
-		0x3ab551ceL,
-		0xa3bc0074L,
-		0xd4bb30e2L,
-		0x4adfa541L,
-		0x3dd895d7L,
-		0xa4d1c46dL,
-		0xd3d6f4fbL,
-		0x4369e96aL,
-		0x346ed9fcL,
-		0xad678846L,
-		0xda60b8d0L,
-		0x44042d73L,
-		0x33031de5L,
-		0xaa0a4c5fL,
-		0xdd0d7cc9L,
-		0x5005713cL,
-		0x270241aaL,
-		0xbe0b1010L,
-		0xc90c2086L,
-		0x5768b525L,
-		0x206f85b3L,
-		0xb966d409L,
-		0xce61e49fL,
-		0x5edef90eL,
-		0x29d9c998L,
-		0xb0d09822L,
-		0xc7d7a8b4L,
-		0x59b33d17L,
-		0x2eb40d81L,
-		0xb7bd5c3bL,
-		0xc0ba6cadL,
-		0xedb88320L,
-		0x9abfb3b6L,
-		0x03b6e20cL,
-		0x74b1d29aL,
-		0xead54739L,
-		0x9dd277afL,
-		0x04db2615L,
-		0x73dc1683L,
-		0xe3630b12L,
-		0x94643b84L,
-		0x0d6d6a3eL,
-		0x7a6a5aa8L,
-		0xe40ecf0bL,
-		0x9309ff9dL,
-		0x0a00ae27L,
-		0x7d079eb1L,
-		0xf00f9344L,
-		0x8708a3d2L,
-		0x1e01f268L,
-		0x6906c2feL,
-		0xf762575dL,
-		0x806567cbL,
-		0x196c3671L,
-		0x6e6b06e7L,
-		0xfed41b76L,
-		0x89d32be0L,
-		0x10da7a5aL,
-		0x67dd4accL,
-		0xf9b9df6fL,
-		0x8ebeeff9L,
-		0x17b7be43L,
-		0x60b08ed5L,
-		0xd6d6a3e8L,
-		0xa1d1937eL,
-		0x38d8c2c4L,
-		0x4fdff252L,
-		0xd1bb67f1L,
-		0xa6bc5767L,
-		0x3fb506ddL,
-		0x48b2364bL,
-		0xd80d2bdaL,
-		0xaf0a1b4cL,
-		0x36034af6L,
-		0x41047a60L,
-		0xdf60efc3L,
-		0xa867df55L,
-		0x316e8eefL,
-		0x4669be79L,
-		0xcb61b38cL,
-		0xbc66831aL,
-		0x256fd2a0L,
-		0x5268e236L,
-		0xcc0c7795L,
-		0xbb0b4703L,
-		0x220216b9L,
-		0x5505262fL,
-		0xc5ba3bbeL,
-		0xb2bd0b28L,
-		0x2bb45a92L,
-		0x5cb36a04L,
-		0xc2d7ffa7L,
-		0xb5d0cf31L,
-		0x2cd99e8bL,
-		0x5bdeae1dL,
-		0x9b64c2b0L,
-		0xec63f226L,
-		0x756aa39cL,
-		0x026d930aL,
-		0x9c0906a9L,
-		0xeb0e363fL,
-		0x72076785L,
-		0x05005713L,
-		0x95bf4a82L,
-		0xe2b87a14L,
-		0x7bb12baeL,
-		0x0cb61b38L,
-		0x92d28e9bL,
-		0xe5d5be0dL,
-		0x7cdcefb7L,
-		0x0bdbdf21L,
-		0x86d3d2d4L,
-		0xf1d4e242L,
-		0x68ddb3f8L,
-		0x1fda836eL,
-		0x81be16cdL,
-		0xf6b9265bL,
-		0x6fb077e1L,
-		0x18b74777L,
-		0x88085ae6L,
-		0xff0f6a70L,
-		0x66063bcaL,
-		0x11010b5cL,
-		0x8f659effL,
-		0xf862ae69L,
-		0x616bffd3L,
-		0x166ccf45L,
-		0xa00ae278L,
-		0xd70dd2eeL,
-		0x4e048354L,
-		0x3903b3c2L,
-		0xa7672661L,
-		0xd06016f7L,
-		0x4969474dL,
-		0x3e6e77dbL,
-		0xaed16a4aL,
-		0xd9d65adcL,
-		0x40df0b66L,
-		0x37d83bf0L,
-		0xa9bcae53L,
-		0xdebb9ec5L,
-		0x47b2cf7fL,
-		0x30b5ffe9L,
-		0xbdbdf21cL,
-		0xcabac28aL,
-		0x53b39330L,
-		0x24b4a3a6L,
-		0xbad03605L,
-		0xcdd70693L,
-		0x54de5729L,
-		0x23d967bfL,
-		0xb3667a2eL,
-		0xc4614ab8L,
-		0x5d681b02L,
-		0x2a6f2b94L,
-		0xb40bbe37L,
-		0xc30c8ea1L,
-		0x5a05df1bL,
-		0x2d02ef8dL
-	};
-static public long crc32(byte[] b, int off, int len) {
-	return crc32(b, off, len, 0);
-}
-/**
- * Compute the crc	Cyclic Redundancy Check, with the polynomial 0xedb88320,
- * The polynomial is X^32+X^26+X^23+X^22+X^16+X^12+X^11+X^10+X^8+X^7+X^5+X^4+X^2+X^1+X^0
- *  We take it "backwards" and put the highest-order term in the lowest-order bit. 
- * The X^32 term is "implied"; the LSB is the X^31 term, etc.  
- * The X^0 term (usually shown as "+1") results in the MSB being 1.
- * so the poly is 0x04c11db7 (used for Ethernet)
- * The buf will be the Padding, Packet type, and Data fields. 
- * The crc is computed before any encryption.
- * R =X^n * M rem P		M message		P polynomial crc	R : crc calculated.
- * T(x) = x^n * M(x)  +  R(x)	property: T rem P = 0
- */
-static public long crc32(byte[] b, int off, int len, long crc32val) {
-	for (int i = 0; i < len; i++) {
-		crc32val = crc32_tab[(int) ((crc32val ^ b[off + i]) & 0xff)] ^ (crc32val >> 8);
-	}
-
-	return crc32val;
-}
-static public byte[] lengthEncode(byte[] b, int off, int len) throws IOException {
-	byte[] result = new byte[len + 4];
-	writeInt(len, result, 0);
-	System.arraycopy(b, off, result, 4, len);
-	return result;
-}
-static public byte[] readMpInt(InputStream is) throws IOException {
-	int a = is.read();
-	int b = is.read();
-
-	if(a == -1 || b == -1){
-		throw new IOException(Policy.bind("stream"));//$NON-NLS-1$
-	}
-
-	int bits = ((a & 0xFF) << 8) + (b & 0xFF);
-	int bytes = (bits + 7) / 8;
-
-	byte[] result = new byte[bytes];
-
-	readFully(is, result);
-
-	return result;
-}
-public static byte[] md5(byte[] b) throws IOException {
-	if (md5 == null) {
-		try {
-			md5 = MessageDigest.getInstance("MD5");//$NON-NLS-1$
-		} catch (NoSuchAlgorithmException e) {
-			throw new IOException(Policy.bind("Misc.missingMD5", e.getMessage())); //$NON-NLS-1$
-		}
-	}
-
-	return md5.digest(b);
-}
-public static byte[] md5(String s) throws IOException {
-	return md5(s.getBytes());
-}
-public static void readFully(InputStream is, byte[] b) throws IOException {
-	readFully(is, b, 0, b.length);
-}
-public static void readFully(InputStream is, byte[] b, int off, int len) throws IOException {
-	int bytesRead = 0;
-	int totalBytesRead = 0;
-
-	while (totalBytesRead < len) {
-		bytesRead = is.read(b, totalBytesRead + off, len - totalBytesRead);
-
-		if (bytesRead == -1) {
-			throw new IOException(Policy.bind("stream"));//$NON-NLS-1$
-		}
-
-		totalBytesRead += bytesRead;
-	}
-}
-public static int readInt(byte[] arr, int off) throws IOException {
-	int a = arr[off] & 0xff;
-	int b = arr[off + 1] & 0xff;
-	int c = arr[off + 2] & 0xff;
-	int d = arr[off + 3] & 0xff;
-
-	return (a << 24) + (b << 16) + (c << 8) + d;
-}
-public static int readInt(InputStream is) throws IOException {
-	int a = is.read();
-	int b = is.read();
-	int c = is.read();
-	int d = is.read();
-
-	if (a == -1 || b == -1 || c == -1 || d == -1) {
-		throw new IOException(Policy.bind("stream"));//$NON-NLS-1$
-	}
-
-	return (a << 24) + (b << 16) + (c << 8) + d;
-}
-public static String readString(InputStream is) throws IOException {
-	int size = Misc.readInt(is);
-	byte[] buffer = new byte[size];
-	for (int i = 0; i < buffer.length; i++) {
-		int next = is.read();
-		if (next == -1) {
-			throw new IOException(Policy.bind("stream")); //$NON-NLS-1$
-		} else {
-			buffer[i] = (byte)next;
-		}
-	}
-	return new String(buffer);
-}
-public static void skipFully(InputStream is, long n) throws IOException {
-	while (n != 0) {
-		int b = is.read();
-
-		if (b == -1) {
-			if (n > 0) {
-				throw new IOException(Policy.bind("stream"));//$NON-NLS-1$
-			}
-
-			return;
-		}
-
-		--n;
-	}
-}
-public static void writeInt(int i, byte[] b, int off) {
-	b[off] = (byte) ((i >> 24) & 0xff);
-	b[off + 1] = (byte) ((i >> 16) & 0xff);
-	b[off + 2] = (byte) ((i >> 8) & 0xff);
-	b[off + 3] = (byte) (i & 0xff);
-}
-static public void xor(byte[] src_a, int off_a, byte[] src_b, int off_b, byte[] dst, int dst_off, int len) {
-	for(int i = 0; i < len; ++i){
-		dst[i + dst_off] = (byte) (src_a[i + off_a] ^ src_b[i + off_b]);
-	}
-}
-static public void random(byte[] b, int off, int len, boolean allowZeroBytes) {
-	if (random == null) {
-		try {
-			random = SecureRandom.getInstance("SHA1PRNG");//$NON-NLS-1$
-		} catch (NoSuchAlgorithmException e) {
-			// If SHA1PRNG is not available, just use the default
-			random = new SecureRandom();
-		}
-	}
-
-	for(int i = off; i < off + len; ++i){
-		do {
-			b[i] = (byte) random.nextInt();
-		} while(!allowZeroBytes && b[i] == 0);
-	}
-}
-static public byte[] encryptRSAPkcs1(byte[] data, byte[] public_key_exponent, byte[] public_key_modulus) {
-	byte[] block;
-
-	int offset = 0;
-	block = new byte[public_key_modulus.length];
-	block[offset++] = 0;
-	block[offset++] = 2;
-
-	Misc.random(block, offset, block.length - data.length - 3, false);
-	offset += block.length - data.length - 3;
-
-	block[offset++] = 0;
-
-	for (int i = 0; i < data.length; i++){
-		block[offset++] = data[i];
-	}
-
-	BigInteger m, e, message;
-	byte[] messageByte;
-
-	m = new BigInteger(1, public_key_modulus);
-	e = new BigInteger(1, public_key_exponent);
-	message = new BigInteger(1, block);
-	message = message.modPow(e, m);
-
-	byte[] messageByteTemp = message.toByteArray();
-	messageByte = new byte[public_key_modulus.length];
-
-	int tempOffset = 0;
-	while (messageByteTemp[tempOffset] == 0){
-		tempOffset++;
-	}
-
-	for (int i = messageByte.length - messageByteTemp.length + tempOffset; i < messageByte.length; i++){
-		messageByte[i] = messageByteTemp[tempOffset++];
-	}
-
-	return messageByte;
-}
-}
diff --git a/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/Packet.java b/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/Packet.java
deleted file mode 100644
index b810ded..0000000
--- a/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/Packet.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.ssh;
-
-class Packet {
-	protected int packetLength;
-	protected int paddingLength;
-	protected int packetType;
-public int getType() {
-	return packetType;
-}
-}
diff --git a/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/Policy.java b/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/Policy.java
deleted file mode 100644
index 112db9a..0000000
--- a/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/Policy.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.ssh;
-
-
-import java.text.MessageFormat;
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-import org.eclipse.core.runtime.Platform;
-
-public class Policy {
-	protected static ResourceBundle bundle = null;
-
-	//debug constants
-	public static boolean DEBUG_SSH_PROTOCOL = false;
-
-	static {
-		//init debug options
-		if (SSHPlugin.getPlugin().isDebugging()) {
-			DEBUG_SSH_PROTOCOL = "true".equalsIgnoreCase(Platform.getDebugOption(SSHPlugin.ID + "/ssh_protocol"));//$NON-NLS-1$ //$NON-NLS-2$
-		}
-	}
-	
-	/**
-	 * Creates a NLS catalog for the given locale.
-	 */
-	public static void localize(String bundleName) {
-		bundle = ResourceBundle.getBundle(bundleName);
-	}
-	
-	/**
-	 * Gets a string from the resource bundle. We don't want to crash because of a missing String.
-	 * Returns the key if not found.
-	 */
-	public static String bind(String key) {
-		try {
-			return bundle.getString(key);
-		} catch (MissingResourceException e) {
-			return key;
-		} catch (NullPointerException e) {
-			return "!" + key + "!"; //$NON-NLS-1$  //$NON-NLS-2$
-		}
-	}
-
-	/**
-	 * Lookup the message with the given ID in this catalog and bind its
-	 * substitution locations with the given string.
-	 */
-	public static String bind(String id, String binding) {
-		return bind(id, new String[] { binding });
-	}
-		
-	/**
-	 * Gets a string from the resource bundle and binds it with the given arguments. If the key is 
-	 * not found, return the key.
-	 */
-	public static String bind(String key, Object[] args) {
-		try {
-			return MessageFormat.format(bind(key), args);
-		} catch (MissingResourceException e) {
-			return key;
-		} catch (NullPointerException e) {
-			return "!" + key + "!";  //$NON-NLS-1$  //$NON-NLS-2$
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/SSHMethod.java b/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/SSHMethod.java
deleted file mode 100644
index 1c94171..0000000
--- a/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/SSHMethod.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.ssh;
-
-import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.core.IConnectionMethod;
-import org.eclipse.team.internal.ccvs.core.IServerConnection;
-
-public class SSHMethod implements IConnectionMethod {
-	/**
-	 * @see IConnectionMethod#getName
-	 */
-	public String getName() {
-		return "extssh";//$NON-NLS-1$
-	}
-	
-	/**
-	 * @see IConnectionMethod#createConnection
-	 */
-	public IServerConnection createConnection(ICVSRepositoryLocation repositoryRoot, String password) {
-		return new SSHServerConnection(repositoryRoot, password);
-	}
-
-	public void disconnect(ICVSRepositoryLocation location) {
-	}
-}
diff --git a/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/SSHPlugin.java b/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/SSHPlugin.java
deleted file mode 100644
index 081c305..0000000
--- a/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/SSHPlugin.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.ssh;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPluginDescriptor;
-import org.eclipse.core.runtime.Plugin;
-import org.eclipse.core.runtime.Status;
-public class SSHPlugin extends Plugin {
-	
-	public static String ID = "org.eclipse.team.cvs.ssh"; //$NON-NLS-1$
-
-	private static SSHPlugin instance;
-	
-	/**
-	 * Log the given exception along with the provided message and severity indicator
-	 */
-	public static void log(int severity, String message, Throwable e) {
-		getPlugin().getLog().log(new Status(severity, ID, 0, message, e));
-	}
-	
-	/**
-	 * Constructor for SSHPlugin
-	 */
-	public SSHPlugin(IPluginDescriptor d) {
-		super(d);	
-		instance = this;
-	}
-	
-	/**
-	 * @see Plugin#startup()
-	 */
-	public void startup() throws CoreException {
-		super.startup();
-		Policy.localize("org.eclipse.team.internal.ccvs.ssh.messages"); //$NON-NLS-1$
-	}
-	
-	/**
-	 * Method getPlugin.
-	 */
-	public static SSHPlugin getPlugin() {
-		return instance;
-	}
-
-}
diff --git a/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/SSHServerConnection.java b/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/SSHServerConnection.java
deleted file mode 100644
index 34d0572..0000000
--- a/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/SSHServerConnection.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.ssh;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.core.IServerConnection;
-import org.eclipse.team.internal.ccvs.core.connection.CVSAuthenticationException;
-
-public class SSHServerConnection implements IServerConnection {
-	
-	// command to start remote cvs in server mode
-	private static final String INVOKE_SVR_CMD = "cvs server"; //$NON-NLS-1$
-	
-	private static final int DEFAULT_PORT = 22;
-	
-	// cvs format for the repository (e.g. :extssh:user@host:/home/cvs/repo)
-	private ICVSRepositoryLocation location;
-	
-	// password for user specified in repository location string
-	private String password;
-	
-	// incoming from remote host
-	InputStream inputStream;
-	
-	// outgoing to remote host
-	OutputStream outputStream;
-	
-	// ssh client 
-	Client client;
-
-	protected SSHServerConnection(ICVSRepositoryLocation location, String password) {
-		this.location = location;
-		this.password = password;
-	}
-
-	public void close() throws IOException {
-		client.disconnect();
-	}
-	/**
-	 * Returns the <code>InputStream</code> used to read data from the
-	 * server.
-	 */
-	public InputStream getInputStream() {
-		return inputStream;
-	}
-	/**
-	 * Returns the <code>OutputStream</code> used to send data to the
-	 * server.
-	 */
-	public OutputStream getOutputStream() {
-		return outputStream;
-	}
-
-	/**
-	 * Opens the connection and invokes cvs in server mode.
-	 *
-	 * @see Connection.open()
-	 */
-	public void open(IProgressMonitor monitor) throws IOException, CVSAuthenticationException {
-		monitor.subTask(Policy.bind("SSHServerConnection.authenticating")); //$NON-NLS-1$
-		monitor.worked(1);
-		String hostname = location.getHost();
-		String username = location.getUsername();
-		int port = location.getPort();
-		if (port == ICVSRepositoryLocation.USE_DEFAULT_PORT)
-			port = DEFAULT_PORT;
-		// create the connection using host, username, and password
-		client = new Client(hostname, port, username, password, INVOKE_SVR_CMD, location.getTimeout());	
-		client.connect(monitor);
-		inputStream = client.getInputStream();
-		outputStream = client.getOutputStream();
-	}
-}
diff --git a/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/ServerPacket.java b/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/ServerPacket.java
deleted file mode 100644
index d37a03b..0000000
--- a/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/ServerPacket.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.ssh;
-
-import java.io.FilterInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-
-class ServerPacket extends Packet {
-	private PacketInputStream pis = null;
-
-	private static class PacketInputStream extends FilterInputStream {
-		private static int MAX_BUFFER_SIZE = 1024;
-
-		private byte[] buffer = new byte[MAX_BUFFER_SIZE];
-		private int bufpos = 0;
-		private int buflen = 0;
-		private int bufrem = 0;
-
-		private long remaining = 0;
-		private Cipher cipher = null;
-
-		private long crc = 0;
-		private boolean closed = false;
-
-		public PacketInputStream(InputStream in, long length, Cipher cipher) {
-			super(in);
-
-			this.remaining = length;
-			this.cipher = cipher;
-		}
-
-		public int available() throws IOException {
-			if (closed) {
-				throw new IOException(Policy.bind("closed"));//$NON-NLS-1$
-			}
-
-			return (int) Math.min(remaining - 4, Integer.MAX_VALUE);
-		}
-
-		public void close() throws IOException {
-			close(true);
-		}
-		
-		public void close(boolean doCrcCheck) throws IOException {
-			if (!closed) {
-				try {					
-					long toRead = doCrcCheck ? remaining - 4 : remaining;			
-					
-					try {
-						Misc.skipFully(this, toRead);
-					} catch(IOException e) {
-						// we tried our best, keep going
-					}
-					
-					if(doCrcCheck) {
-						if ((int) crc != Misc.readInt(buffer, bufpos)) {
-							throw new IOException(Policy.bind("ServerPacket.crc"));//$NON-NLS-1$
-						}
-					}
-				} finally {
-					closed = true;
-				}
-			}
-		}
-		
-		private void fill() throws IOException {
-			if (bufrem > 0) {
-				System.arraycopy(buffer, bufpos, buffer, 0, bufrem);
-			}
-
-			int totalBytesRead = bufrem;
-			int read = 0;
-			int toRead = (int)Math.min(remaining - totalBytesRead, MAX_BUFFER_SIZE - totalBytesRead);
-
-			while (toRead > 0) {
-				read = in.read(buffer, totalBytesRead, toRead);
-
-				if (read == -1) {
-					throw new IOException(Policy.bind("stream"));//$NON-NLS-1$
-				}
-
-				totalBytesRead += read;
-				toRead -= read;
-			}
-
-			bufpos = 0;
-			
-			buflen = (totalBytesRead / 8) * 8;
-			bufrem = totalBytesRead - buflen;
-
-			if (cipher != null) {
-				cipher.decipher(buffer, 0, buffer, 0, buflen);
-			}
-			
-			crc = Misc.crc32(buffer, 0, buflen == remaining ? buflen - 4 : buflen, crc);
-		}
-
-		public int read() throws IOException {
-			if (closed) {
-				throw new IOException(Policy.bind("closed"));//$NON-NLS-1$
-			}
-
-			if (remaining - 4 == 0) {
-				return -1;
-			}
-
-			if (bufpos == buflen) {
-				fill();
-			}
-
-			int b = buffer[bufpos] & 0xff;
-
-			++bufpos;
-			--remaining;
-
-			return b;
-		}
-
-		public int read(byte b[], int off, int len) throws IOException {
-			if (closed) {
-				throw new IOException(Policy.bind("closed"));//$NON-NLS-1$
-			}
-
-			if (remaining - 4 == 0) {
-				return -1;
-			}
-
-			if (bufpos == buflen) {
-				fill();
-			}
-
-			len = (int) Math.min(len, (buflen == remaining + bufpos ? buflen - 4 : buflen) - bufpos);
-
-			System.arraycopy(buffer, bufpos, b, off, len);
-
-			bufpos += len;
-			remaining -= len;
-
-			return len;
-		}
-	}
-public ServerPacket(InputStream is, Cipher cipher) throws java.io.IOException {
-	packetLength = Misc.readInt(is);
-	paddingLength = 8 - (packetLength % 8);
-	pis = new PacketInputStream(is, packetLength + paddingLength, cipher);
-	Misc.skipFully(pis, paddingLength);
-	packetType = (byte) pis.read();
-}
-public void close(boolean doCrcCheck) throws IOException {
-	pis.close(doCrcCheck);
-}
-public InputStream getInputStream() {
-	return pis;
-}
-}
diff --git a/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/messages.properties b/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/messages.properties
deleted file mode 100644
index 0e7f0ea..0000000
--- a/bundles/org.eclipse.team.cvs.ssh/src/org/eclipse/team/internal/ccvs/ssh/messages.properties
+++ /dev/null
@@ -1,36 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-# String resources for vcm.core.cvs.ssh
-###########################
-
-closed=Closed
-stream=Unexpected end of stream
-
-Client.packetType=unexpected packet type: {0}
-Client.notConnected=Not connected
-Client.cipher=Supported cipher not found
-Client.socketClosed=Connection closed by server
-Client.authenticationFailed=Invalid username, password, host or repository
-Client.socket=Cannot connect to host: {0}
-Client.disconnectDescription=SSH server disconnected: {0}
-Client.noDisconnectDescription=No reason could be obtained.
-Client.sshProtocolVersion=Unsupported SSH protocol version: {0}
-Client.hostIdChanged=The server host key does not match the key previously stored.  Either the host key has changed or there is a man-in-the-middle attack. Contact the server administrator
-Client.addedHostKey=Host key for {0} was not found in the list of known hosts stored in {1}. The key is being automatically added to the known_hosts file for you. This key, which is like a personal signature, is used by Eclipse to guarantee that the host it is communicating with is the correct one. If the Eclipse client detects a change in this key you will be notified.
-Client.sshProtocolVersion=Unsupported SSH protocol version: {0}
-
-ServerPacket.crc=crc error
-
-SSHServerConnection.authenticating=Authenticating over extssh
-
-Misc.missingMD5=The MD5 encryption algorithm is required but not available: {0}
-
diff --git a/examples/org.eclipse.compare.examples/.cvsignore b/examples/org.eclipse.compare.examples/.cvsignore
deleted file mode 100644
index 73cceac..0000000
--- a/examples/org.eclipse.compare.examples/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-bin
-.classpath
diff --git a/examples/org.eclipse.compare.examples/.project b/examples/org.eclipse.compare.examples/.project
deleted file mode 100644
index 1fe5dff..0000000
--- a/examples/org.eclipse.compare.examples/.project
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.compare.examples</name>
-	<comment></comment>
-	<projects>
-		<project>org.eclipse.compare</project>
-		<project>org.eclipse.core.resources</project>
-		<project>org.eclipse.core.runtime</project>
-		<project>org.eclipse.jface</project>
-		<project>org.eclipse.jface.text</project>
-		<project>org.eclipse.swt</project>
-		<project>org.eclipse.ui</project>
-		<project>org.eclipse.ui.workbench</project>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/examples/org.eclipse.compare.examples/about.html b/examples/org.eclipse.compare.examples/about.html
deleted file mode 100644
index 9db411a..0000000
--- a/examples/org.eclipse.compare.examples/about.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>20th June, 2002</p>	
-<h3>License</h3>
-<p>Eclipse.org makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-Common Public License Version 1.0 (&quot;CPL&quot;).  A copy of the CPL is available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>.
-For purposes of the CPL, &quot;Program&quot; will mean the Content.</p>
-
-<h3>Contributions</h3>
-
-<p>If this Content is licensed to you under the terms and conditions of the CPL, any Contributions, as defined in the CPL, uploaded, submitted, or otherwise
-made available to Eclipse.org, members of Eclipse.org and/or the host of Eclipse.org web site, by you that relate to such
-Content are provided under the terms and conditions of the CPL and can be made available to others under the terms of the CPL.</p>
-
-<p>If this Content is licensed to you under license terms and conditions other than the CPL (&quot;Other License&quot;), any modifications, enhancements and/or
-other code and/or documentation (&quot;Modifications&quot;) uploaded, submitted, or otherwise made available to Eclipse.org, members of Eclipse.org and/or the
-host of Eclipse.org, by you that relate to such Content are provided under terms and conditions of the Other License and can be made available
-to others under the terms of the Other License.  In addition, with regard to Modifications for which you are the copyright holder, you are also
-providing the Modifications under the terms and conditions of the CPL and such Modifications can be made available to others under the terms of
-the CPL.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/examples/org.eclipse.compare.examples/build.properties b/examples/org.eclipse.compare.examples/build.properties
deleted file mode 100644
index 937a64c..0000000
--- a/examples/org.eclipse.compare.examples/build.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source.compareexamples.jar = src/
-
-bin.includes = doc-html/,\
-				about.html,\
-				plugin.properties,\
-				plugin.xml,\
-				compareexamples.jar
-
-src.includes = about.html
diff --git a/examples/org.eclipse.compare.examples/doc-html/hglegal.htm b/examples/org.eclipse.compare.examples/doc-html/hglegal.htm
deleted file mode 100644
index f5871b7..0000000
--- a/examples/org.eclipse.compare.examples/doc-html/hglegal.htm
+++ /dev/null
@@ -1,14 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-  <LINK REL="stylesheet" HREF="../../../book.css" CHARSET="ISO-8859-1" TYPE="text/css">
-  <title>Legal Notices</title>
-</head>
-<body>
-
-<h3>
-<a NAME="Notices"></a>Notices</h3>
-(c) Copyright (c) 2000, 2003 IBM Corporation and others. All Rights Reserved.
-</body>
-</html>
diff --git a/examples/org.eclipse.compare.examples/doc-html/ngibmcpy.gif b/examples/org.eclipse.compare.examples/doc-html/ngibmcpy.gif
deleted file mode 100644
index c786e43..0000000
--- a/examples/org.eclipse.compare.examples/doc-html/ngibmcpy.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.compare.examples/doc-html/ui_structurecreator_ex.html b/examples/org.eclipse.compare.examples/doc-html/ui_structurecreator_ex.html
deleted file mode 100644
index 88596b4..0000000
--- a/examples/org.eclipse.compare.examples/doc-html/ui_structurecreator_ex.html
+++ /dev/null
@@ -1,84 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <title>Structural Compare for Key/Value Pairs</title>
-</head>
-<body>
-
-<h2>Compare Example - Structural Compare for Key/Value Pairs</h2>
-
-<h3>Introduction</h3>
-
-This example demonstrates how to support structural compare for
-files consisting of key/value pairs. It shows how to implement and register a
-custom structure creator that parses key/value pairs into a tree structure
-that is used as the input to the structural compare framework provided by the
-Compare plugin. In addition, it registers a standard text viewer for the individual
-key/value pairs.
-
-<p>
-
-This example is only for demonstration purposes. Structural compare support
-for Java property files (another key/value format) is provided by the Eclipse Java Tooling. 
-
-<h3> Running the example</h3>
-
-<ol>
-	<li>Create a project (not necessarily a Java project)</li>
-	
-	<li>Create a key/value pair file f1.kv</li>
-	
-	<li>Open <strong>Window</strong> &gt; <strong>Preferences</strong> &gt; <strong>Workbench</strong> &gt; <strong>File Association</strong>
-	and associate the default text editor with the file extension "kv"</li>
-	
-	<li>Open f1.kv with the editor and enter this contents
-	<pre>
-lastname=Doe
-firstname=John
-city=Chicago
-state=IL
-</pre></li>
-	
-	<li>Make a copy of this file and rename it f2.kv</li>
-	
-	<li>Open f2.kv and change the firstname "John" to "Mary"</li>
-
-	<li>Add another key/value pair "country=US" to f2.kv</li>
-	
-	<li>Select both files f1.kv and f2.kv</li>
-	
-	<li>From the context menu select <strong>Compare With</strong> &gt; <strong>Each Other</strong></li>
-	
-	<li>A new compare editor opens that shows the structural differences of both files in its
-	top pane. Selecting one of the properties "firstname" or "country" feeds the text of the
-	corresponding key/value pair into the standard text compare viewer in the bottom pane.
-	</li>
-	
-</ol>
-
-<h3>Code organization of the example</h3>
-The example code is organized in a single package <tt>org.eclipse.compare.examples.structurecreator</tt>:
-
-<ul>
-	<li><tt>KeyValuePairStructureCreator</tt><br>
-	is the structure creator that parses the contents of a stream into a tree of
-	<tt>IStructureComparator</tt>s.
-	</li>
-	
-	<li><tt>TextMergeViewerCreator</tt><br>
-	is a factory for TextMergeViewers. It is registered for the type "kvtxt" which is the
-	type of an individual key/value pair.
-	</li>
-	
-	<li><tt>Util</tt><br>
-	provides utility methods for NLS support and for reading an InputStream as a String.
-	</li>
-	
-</ul>
-
-<p>&nbsp;</p>
-
-<p><a href="hglegal.htm"><img SRC="ngibmcpy.gif" ALT="Copyright IBM Corporation and others 2000, 2003. All Rights Reserved." BORDER=0 height=14 width=324></a></p>
-</body>
-</html>
diff --git a/examples/org.eclipse.compare.examples/plugin.properties b/examples/org.eclipse.compare.examples/plugin.properties
deleted file mode 100644
index 3ca1d5f..0000000
--- a/examples/org.eclipse.compare.examples/plugin.properties
+++ /dev/null
@@ -1,15 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-#
-# Resource strings for Compare Examples plugin.xml file
-#
-pluginName= Compare Example
-providerName= Eclipse.org
diff --git a/examples/org.eclipse.compare.examples/plugin.xml b/examples/org.eclipse.compare.examples/plugin.xml
deleted file mode 100644
index f5a52f3..0000000
--- a/examples/org.eclipse.compare.examples/plugin.xml
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- File written by PDE 1.0 -->
-<plugin
-   id="org.eclipse.compare.examples"
-   name="%pluginName"
-   version="3.0.0"
-   provider-name="%providerName">
-
-<!-- Required plugins -->
-
-<requires>
-   <import plugin="org.eclipse.ui"/>
-   <import plugin="org.eclipse.core.resources"/>
-   <import plugin="org.eclipse.compare"/>
-</requires>
-
-<!-- Runtime -->
-
-<runtime>
-   <library name="compareexamples.jar">
-      <export name="*"/>
-   </library>
-</runtime>
-
-<!-- Extension points -->
-
-<!-- Extensions -->
-<extension
-	point="org.eclipse.compare.contentMergeViewers">
-	<viewer
-		extensions="kvtxt"
-		class="org.eclipse.compare.examples.structurecreator.TextMergeViewerCreator">
-	</viewer>
-</extension>
-
-<extension
-	point="org.eclipse.compare.structureCreators">
-	<structureCreator
-		extensions="kv"
-		class="org.eclipse.compare.examples.structurecreator.KeyValuePairStructureCreator">
-	</structureCreator>
-</extension>
-
-</plugin>
diff --git a/examples/org.eclipse.compare.examples/src/org/eclipse/compare/examples/structurecreator/CompareExampleMessages.properties b/examples/org.eclipse.compare.examples/src/org/eclipse/compare/examples/structurecreator/CompareExampleMessages.properties
deleted file mode 100644
index 3ebe014..0000000
--- a/examples/org.eclipse.compare.examples/src/org/eclipse/compare/examples/structurecreator/CompareExampleMessages.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-#
-# Resource strings
-#
-KeyValuePairStructureCreator.title= Key/Value Pair Compare
-KeyValuePairStructureCreator.CoreException.message= CoreException 
-KeyValuePairStructureCreator.BadLocationException.message= BadLocationException
diff --git a/examples/org.eclipse.compare.examples/src/org/eclipse/compare/examples/structurecreator/KeyValuePairStructureCreator.java b/examples/org.eclipse.compare.examples/src/org/eclipse/compare/examples/structurecreator/KeyValuePairStructureCreator.java
deleted file mode 100644
index 8d1b218..0000000
--- a/examples/org.eclipse.compare.examples/src/org/eclipse/compare/examples/structurecreator/KeyValuePairStructureCreator.java
+++ /dev/null
@@ -1,155 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.examples.structurecreator;
-
-import org.eclipse.swt.graphics.*;
-
-import org.eclipse.jface.text.*;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Status;
-
-import org.eclipse.compare.*;
-import org.eclipse.compare.structuremergeviewer.*;
-
-
-/**
- * This structure creator parses input containing key/value pairs
- * and returns the pairs as a tree of <code>IStructureComparator</code>s.
- * Each key/value pair must be on a separate line and keys are separated
- * from values by a '='.
- * <p>
- * Example:
- * <pre>
- *    foo=bar
- *    name=joe
- * </pre>
- */
-public class KeyValuePairStructureCreator implements IStructureCreator {
-	
-	static class KeyValueNode extends DocumentRangeNode implements ITypedElement {
-		
-		String fValue;
-		
-		public KeyValueNode(String id, String value, IDocument doc, int start, int length) {
-			super(0, id, doc, start, length);
-			fValue= value;
-		}
-		
-		String getValue() {
-			return fValue;
-		}
-				
-		/**
-		 * @see ITypedElement#getName
-		 */
-		public String getName() {
-			return this.getId();
-		}
-
-		/**
-		 * Every key/value pair is of type "kvtxt". We register a TextMergeViewer for it. 
-		 * @see ITypedElement#getType
-		 */
-		public String getType() {
-			return "kvtxt"; //$NON-NLS-1$
-		}
-		
-		/**
-		 * @see ITypedElement#getImage
-		 */
-		public Image getImage() {
-			return CompareUI.getImage(getType());
-		}
-	};
-		
-		
-	public KeyValuePairStructureCreator() {
-	}
-	
-	/**
-	 * This title will be shown in the title bar of the structure compare pane.
-	 */
-	public String getName() {
-		return Util.getString("KeyValuePairStructureCreator.title"); //$NON-NLS-1$
-	}
-
-	/**
-	 * Returns a node.
-	 */
-	public IStructureComparator getStructure(Object input) {
-		
-		if (!(input instanceof IStreamContentAccessor))
-			return null;
-		
-		IStreamContentAccessor sca= (IStreamContentAccessor) input;
-		
-		try {
-			String contents= Util.readString(sca.getContents());
-			if (contents == null)
-				contents= ""; //$NON-NLS-1$
-			Document doc= new Document(contents);
-							
-			KeyValueNode root= new KeyValueNode("root", "", doc, 0, doc.getLength()); //$NON-NLS-1$ //$NON-NLS-2$
-		
-			for (int i= 0; i < doc.getNumberOfLines(); i++) {
-				
-				IRegion r= doc.getLineInformation(i);
-				String s= doc.get(r.getOffset(), r.getLength());
-				int start= r.getOffset();
-					
-				String key= ""; //$NON-NLS-1$
-				String value= ""; //$NON-NLS-1$
-				int pos= s.indexOf('=');
-				if (pos >= 0) {
-					key= s.substring(0, pos);
-					value= s.substring(pos+1);
-				} else {
-					key= s;
-				}
-				if (key.length() > 0)
-					root.addChild(new KeyValueNode(key, value, doc, start, s.length()));
-			}
-			return root;
-		} catch (CoreException ex) {
-			String message= Util.getString("KeyValuePairStructureCreator.CoreException.message"); //$NON-NLS-1$
-			CompareUI.getPlugin().getLog().log(new Status(Status.ERROR, CompareUI.PLUGIN_ID, 0, message, ex));
-		} catch (BadLocationException ex) {
-			String message= Util.getString("KeyValuePairStructureCreator.BadLocationException.message"); //$NON-NLS-1$
-			CompareUI.getPlugin().getLog().log(new Status(Status.ERROR, CompareUI.PLUGIN_ID, 0, message, ex));
-		}
-				
-		return null;
-	}
-	
-	public void save(IStructureComparator structure, Object input) {
-		if (input instanceof IEditableContent && structure instanceof KeyValueNode) {
-			IDocument doc= ((KeyValueNode)structure).getDocument();
-			IEditableContent bca= (IEditableContent) input;
-			String c= doc.get();
-			bca.setContent(c.getBytes());
-		}
-	}
-	
-	public String getContents(Object node, boolean ignoreWhitespace) {
-		if (node instanceof KeyValueNode) {
-			String s= ((KeyValueNode)node).getValue();
-			if (ignoreWhitespace)
-				s= s.trim();
-			return s;
-		}
-		return null;
-	}
-	
-	public IStructureComparator locate(Object path, Object source) {
-		return null;
-	}
-}
diff --git a/examples/org.eclipse.compare.examples/src/org/eclipse/compare/examples/structurecreator/TextMergeViewerCreator.java b/examples/org.eclipse.compare.examples/src/org/eclipse/compare/examples/structurecreator/TextMergeViewerCreator.java
deleted file mode 100644
index 2565e45..0000000
--- a/examples/org.eclipse.compare.examples/src/org/eclipse/compare/examples/structurecreator/TextMergeViewerCreator.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.examples.structurecreator;
-
-import org.eclipse.swt.widgets.Composite;
-
-import org.eclipse.jface.viewers.Viewer;
-
-import org.eclipse.compare.*;
-import org.eclipse.compare.contentmergeviewer.TextMergeViewer;
-
-/**
- * A factory object for the <code>TextMergeViewer</code>.
- * This indirection is necessary because only objects with a default
- * constructor can be created via an extension point
- * (this precludes Viewers).
- */
-public class TextMergeViewerCreator implements IViewerCreator {
-
-	public Viewer createViewer(Composite parent, CompareConfiguration mp) {
-		return new TextMergeViewer(parent, mp);
-	}
-}
diff --git a/examples/org.eclipse.compare.examples/src/org/eclipse/compare/examples/structurecreator/Util.java b/examples/org.eclipse.compare.examples/src/org/eclipse/compare/examples/structurecreator/Util.java
deleted file mode 100644
index 04ae99f..0000000
--- a/examples/org.eclipse.compare.examples/src/org/eclipse/compare/examples/structurecreator/Util.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.compare.examples.structurecreator;
-
-import java.io.*;
-import java.util.*;
-
-import org.eclipse.core.resources.ResourcesPlugin;
-
-
-public class Util {
-
-	private static final String RESOURCE_BUNDLE= "org.eclipse.compare.examples.structurecreator.CompareExampleMessages"; //$NON-NLS-1$
-
-	private static ResourceBundle fgResourceBundle= ResourceBundle.getBundle(RESOURCE_BUNDLE);
-
-	public static String getString(String key) {
-		try {
-			return fgResourceBundle.getString(key);
-		} catch (MissingResourceException e) {
-			return "!" + key + "!";	//$NON-NLS-2$ //$NON-NLS-1$
-		}
-	}
-
-	/**
-	 * Reads the contents of the given input stream into a string.
-	 * The function assumes that the input stream uses the platform's default encoding
-	 * (<code>ResourcesPlugin.getEncoding()</code>).
-	 * Returns null if an error occurred.
-	 */
-	static String readString(InputStream is) {
-		if (is == null)
-			return null;
-		BufferedReader reader= null;
-		try {
-			StringBuffer buffer= new StringBuffer();
-			char[] part= new char[2048];
-			int read= 0;
-			reader= new BufferedReader(new InputStreamReader(is, ResourcesPlugin.getEncoding()));
-
-			while ((read= reader.read(part)) != -1)
-				buffer.append(part, 0, read);
-			
-			return buffer.toString();
-			
-		} catch (IOException ex) {
-		} finally {
-			if (reader != null) {
-				try {
-					reader.close();
-				} catch (IOException ex) {
-					// we don't log IOException when closing a file
-				}
-			}
-		}
-		return null;
-	}
-}
diff --git a/examples/org.eclipse.team.examples.filesystem/.classpath b/examples/org.eclipse.team.examples.filesystem/.classpath
deleted file mode 100644
index 2bc1164..0000000
--- a/examples/org.eclipse.team.examples.filesystem/.classpath
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-    <classpathentry kind="src" path="/org.eclipse.core.resources"/>
-    <classpathentry kind="src" path="/org.eclipse.team.core"/>
-    <classpathentry kind="src" path="/org.apache.xerces"/>
-    <classpathentry kind="src" path="/org.eclipse.team.ui"/>
-    <classpathentry kind="src" path="/org.eclipse.ui"/>
-    <classpathentry kind="src" path="src"/>
-    <classpathentry kind="src" path="/org.eclipse.core.runtime"/>
-    <classpathentry kind="src" path="/org.eclipse.core.boot"/>
-    <classpathentry kind="var" path="JRE_LIB" rootpath="JRE_SRCROOT" sourcepath="JRE_SRC"/>
-    <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/examples/org.eclipse.team.examples.filesystem/.cvsignore b/examples/org.eclipse.team.examples.filesystem/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/examples/org.eclipse.team.examples.filesystem/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/examples/org.eclipse.team.examples.filesystem/.project b/examples/org.eclipse.team.examples.filesystem/.project
deleted file mode 100644
index aa7f1d1..0000000
--- a/examples/org.eclipse.team.examples.filesystem/.project
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.team.examples.filesystem</name>
-	<comment></comment>
-	<projects>
-		<project>org.apache.xerces</project>
-		<project>org.eclipse.core.boot</project>
-		<project>org.eclipse.core.resources</project>
-		<project>org.eclipse.core.runtime</project>
-		<project>org.eclipse.team.core</project>
-		<project>org.eclipse.team.ui</project>
-		<project>org.eclipse.ui</project>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/examples/org.eclipse.team.examples.filesystem/about.html b/examples/org.eclipse.team.examples.filesystem/about.html
deleted file mode 100644
index 9db411a..0000000
--- a/examples/org.eclipse.team.examples.filesystem/about.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>20th June, 2002</p>	
-<h3>License</h3>
-<p>Eclipse.org makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-Common Public License Version 1.0 (&quot;CPL&quot;).  A copy of the CPL is available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>.
-For purposes of the CPL, &quot;Program&quot; will mean the Content.</p>
-
-<h3>Contributions</h3>
-
-<p>If this Content is licensed to you under the terms and conditions of the CPL, any Contributions, as defined in the CPL, uploaded, submitted, or otherwise
-made available to Eclipse.org, members of Eclipse.org and/or the host of Eclipse.org web site, by you that relate to such
-Content are provided under the terms and conditions of the CPL and can be made available to others under the terms of the CPL.</p>
-
-<p>If this Content is licensed to you under license terms and conditions other than the CPL (&quot;Other License&quot;), any modifications, enhancements and/or
-other code and/or documentation (&quot;Modifications&quot;) uploaded, submitted, or otherwise made available to Eclipse.org, members of Eclipse.org and/or the
-host of Eclipse.org, by you that relate to such Content are provided under terms and conditions of the Other License and can be made available
-to others under the terms of the Other License.  In addition, with regard to Modifications for which you are the copyright holder, you are also
-providing the Modifications under the terms and conditions of the CPL and such Modifications can be made available to others under the terms of
-the CPL.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/examples/org.eclipse.team.examples.filesystem/build.properties b/examples/org.eclipse.team.examples.filesystem/build.properties
deleted file mode 100644
index fa97e54..0000000
--- a/examples/org.eclipse.team.examples.filesystem/build.properties
+++ /dev/null
@@ -1,14 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-# Eclipse build contribution
-source.teamfilesystem.jar=src/
-src.includes=about.html
-bin.includes=about.html,icons/,doc-html/,plugin.xml,plugin.properties,*.jar
\ No newline at end of file
diff --git a/examples/org.eclipse.team.examples.filesystem/doc-html/hglegal.htm b/examples/org.eclipse.team.examples.filesystem/doc-html/hglegal.htm
deleted file mode 100644
index cf2ced3..0000000
--- a/examples/org.eclipse.team.examples.filesystem/doc-html/hglegal.htm
+++ /dev/null
@@ -1,14 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">

-<html>

-<head>

-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

-   <meta name="GENERATOR" content="Mozilla/4.73 [en] (Win98; U) [Netscape]">

-   <title>Legal Notices</title>

-</head>

-<body>

-

-<h3>

-<a NAME="Notices"></a>Notices</h3>

-(c) Copyright IBM Corp. 2000, 2002. All Rights Reserved.

-</body>

-</html>

diff --git a/examples/org.eclipse.team.examples.filesystem/doc-html/ngibmcpy.gif b/examples/org.eclipse.team.examples.filesystem/doc-html/ngibmcpy.gif
deleted file mode 100644
index 61cef48..0000000
--- a/examples/org.eclipse.team.examples.filesystem/doc-html/ngibmcpy.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.team.examples.filesystem/doc-html/team_filesystem_ex.html b/examples/org.eclipse.team.examples.filesystem/doc-html/team_filesystem_ex.html
deleted file mode 100644
index 9604d0d..0000000
--- a/examples/org.eclipse.team.examples.filesystem/doc-html/team_filesystem_ex.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <title>Team - File System Repository Provider Example</title>
-</head>
-<body>
-
-<h2>Team - File System Repository Provider Example</h2>
-
-<h3>Introduction</h3>
-
-<p>
-The File System Repository Provider shows how to define your own repository provider.
-It shows how to override the RepositoryProvider class and register this new class as 
-a repository provider using the Team extension point. It also illustrates how to create
-and register a configuration wizard for connecting a local project to a remote location
-and how to provide some custom Team and Replace with menu items for simple Get and Put operations. In 
-addition it also shows how to use the validate save/validate edit mechanism to support
-pessimistic providers.
-
-
-<h3>Running the example</h3>
-
-To start using this example create a project and select Team > Share Project... from the
-project's popup menu. In the wizrd that opens, select File System Example and click Next.
-Now enter the location in the local file system where you would like to connect the project
-to. The Get and Put operations in the Team menu will now transfer to and from the selected 
-location.
-
-
-<p><a href="hglegal.htm"><img SRC="ngibmcpy.gif" ALT="Copyright IBM Corp. 2000, 2002.  All Rights Reserved." BORDER=0></a>
-</body>
-</html>
-
diff --git a/examples/org.eclipse.team.examples.filesystem/icons/full/wizards/fsicon_wiz.gif b/examples/org.eclipse.team.examples.filesystem/icons/full/wizards/fsicon_wiz.gif
deleted file mode 100644
index af038fa..0000000
--- a/examples/org.eclipse.team.examples.filesystem/icons/full/wizards/fsicon_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.team.examples.filesystem/icons/full/wizban/newconnect_wizban.gif b/examples/org.eclipse.team.examples.filesystem/icons/full/wizban/newconnect_wizban.gif
deleted file mode 100644
index 3038a23..0000000
--- a/examples/org.eclipse.team.examples.filesystem/icons/full/wizban/newconnect_wizban.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.team.examples.filesystem/plugin.properties b/examples/org.eclipse.team.examples.filesystem/plugin.properties
deleted file mode 100644
index 360a2e6..0000000
--- a/examples/org.eclipse.team.examples.filesystem/plugin.properties
+++ /dev/null
@@ -1,28 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-pluginName = Eclipse Team File System Example
-providerName=Eclipse.org
-
-Put.name=Put
-Put.tooltip=Copy resources to the shared file system location
-Get.name=Get
-Get.tooltip=Copy resources from the shared file system location to the workbench
-Unmanage.name=Unmanage
-Unmanage.tooltip=Mark resources as not-shared
-
-Replace.name=File System Contents
-Replace.tooltip=Overwrites the local copy of this resource with the one in the repository
-
-
-fspropertypage.name=FileSystem Provider
-fspropertypage.tooltip=An example repository provider that uses the filesystem to provide storage.
-fswizard.name=File System Example (Non-Versioning)
-fswizard.description=Associate a project with a file system location. This location can be used to shared resources with others.
diff --git a/examples/org.eclipse.team.examples.filesystem/plugin.xml b/examples/org.eclipse.team.examples.filesystem/plugin.xml
deleted file mode 100644
index df8b947..0000000
--- a/examples/org.eclipse.team.examples.filesystem/plugin.xml
+++ /dev/null
@@ -1,116 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<plugin
-   id="org.eclipse.team.examples.filesystem"
-   name="%pluginName"
-   version="2.1.0"
-   provider-name="%providerName"
-   class="org.eclipse.team.examples.filesystem.FileSystemPlugin">
-
-   <runtime>
-      <library name="teamfilesystem.jar">
-         <export name="*"/>
-         <packages prefixes="org.eclipse.team.examples.filesystem"/>
-      </library>
-   </runtime>
-   <requires>
-      <import plugin="org.eclipse.core.resources"/>
-      <import plugin="org.eclipse.team.core"/>
-      <import plugin="org.apache.xerces"/>
-      <import plugin="org.eclipse.team.ui"/>
-      <import plugin="org.eclipse.ui"/>
-   </requires>
-
-<!-- *************** Repository Provider **************** -->
-   <extension
-         point="org.eclipse.team.core.repository">
-      <repository
-            class="org.eclipse.team.examples.filesystem.FileSystemProvider"
-            id="org.eclipse.team.examples.filesystem.FileSystemProvider">
-      </repository>
-   </extension>
-
-<!-- *************** POPUP MENUS **************** -->
-   <extension
-         point="org.eclipse.ui.popupMenus">
-      <objectContribution
-            objectClass="org.eclipse.core.resources.IResource"
-            adaptable="true"
-            id="org.eclipse.team.examples.filesystem.ResourceContributions">
-         <filter
-               name="projectPersistentProperty"
-               value="org.eclipse.team.core.repository=org.eclipse.team.examples.filesystem.FileSystemProvider">
-         </filter>
-         <action
-               label="%Get.name"
-               tooltip="%Get.tooltip"
-               class="org.eclipse.team.examples.filesystem.ui.GetAction"
-               menubarPath="team.main/group1"
-               id="org.eclipse.team.examples.filesystem.get">
-         </action>
-         <action
-               label="%Put.name"
-               tooltip="%Put.tooltip"
-               class="org.eclipse.team.examples.filesystem.ui.PutAction"
-               menubarPath="team.main/group1"
-               id="org.eclipse.team.examples.filesystem.put">
-         </action>
-         <action
-               label="%Replace.name"
-               tooltip="%ReplaceAction.tooltip"
-               class="org.eclipse.team.examples.filesystem.ui.ReplaceAction"
-               menubarPath="replaceWithMenu/replaceWithGroup"
-               id="org.eclipse.team.examples.filesystem.replace">
-         </action>
-      </objectContribution>
-      
-      <objectContribution
-            objectClass="org.eclipse.core.resources.IProject"
-            adaptable="true"
-            id="org.eclipse.team.examples.filesystem.ProjectContributions">
-         <filter
-               name="projectPersistentProperty"
-               value="org.eclipse.team.core.repository=org.eclipse.team.examples.filesystem.FileSystemProvider">
-         </filter>
-         <action
-               label="%Unmanage.name"
-               tooltip="%Unmanage.tooltip"
-               class="org.eclipse.team.examples.filesystem.ui.DisconnectAction"
-               menubarPath="team.main/group2"
-               id="org.eclipse.team.examples.filesystem.unmanage">
-         </action>
-      </objectContribution>
-   </extension>
-   
-<!-- *************** CONFIGURATION WIZARD **************** -->
-   <extension
-         point="org.eclipse.team.ui.configurationWizards">
-      <wizard
-            name="%fswizard.name"
-            icon="icons/full/wizards/fsicon_wiz.gif"
-            category="org.eclipse.team.ui"
-            class="org.eclipse.team.examples.filesystem.ui.ConfigurationWizard"
-            id="org.eclipse.team.examples.filesystem.ui.ConfigurationWizard">
-         <description>
-            %fswizard.description
-         </description>
-      </wizard>
-   </extension>
-
-   
-<!-- *************** PROPERTY PAGES **************** -->
-   <extension
-         point="org.eclipse.ui.propertyPages">
-      <page
-            objectClass="org.eclipse.core.resources.IResource"
-            adaptable="true"
-            name="%fspropertypage.name"
-            class="org.eclipse.team.examples.filesystem.ui.FileSystemPropertiesPage"
-            id="org.eclipse.team.examples.filesystem.ui.FileSystemPropertiesPage">
-         <filter
-               name="projectPersistentProperty"
-               value="org.eclipse.team.core.repository=org.eclipse.team.examples.filesystem.FileSystemProvider">
-         </filter>
-      </page>
-   </extension>
-   
-</plugin>
diff --git a/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/FileModificationValidator.java b/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/FileModificationValidator.java
deleted file mode 100644
index 040ea09..0000000
--- a/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/FileModificationValidator.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.examples.filesystem;
-
-import java.util.ArrayList;
-import java.util.Collection;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFileModificationValidator;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.team.core.RepositoryProvider;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.core.simpleAccess.SimpleAccessOperations;
-
-/**
- * This class models a sentry that verifies whether resources are available for editing or overwriting.
- * This has been made a separate clas for illustration purposes. It may have been more apporpriate
- * to have FileSystemProvider implement IFileModificationValidator itself since the interface
- * only has two methods and their implementation is straight forward.
- */
-public final class FileModificationValidator implements IFileModificationValidator {
-	//Used to avoid creating multiple copies of the OK status:
-	private static final IStatus OK_STATUS = new Status(Status.OK, FileSystemPlugin.ID, Status.OK, Policy.bind("ok"), null);
-
-	private RepositoryProvider provider;
-	private SimpleAccessOperations operations;
-
-	/**
-	 * Constructor for FileModificationValidator.
-	 */
-	public FileModificationValidator(RepositoryProvider provider) {
-		this.provider = provider;
-		operations = provider.getSimpleAccess();
-	}
-
-	/**
-	 * This method will convert any exceptions thrown by the SimpleAccessOperations.chechout() to a Status.
-	 * @param resources the resources that are to be checked out
-	 * @return IStatus a status indicator that reports whether the operation went smoothly or not.
-	 * @see org.eclipse.team.internal.core.simpleAccess.SimpleAccessOperations#chechout(IResource[] resources, int depth, IProgressMonitor progress)
-	 */
-	private IStatus checkout(IResource[] resources) {
-		try {
-			operations.checkout(resources, IResource.DEPTH_INFINITE, null);
-		} catch (TeamException e) {
-			return new Status(Status.ERROR, FileSystemPlugin.ID, Status.ERROR, e.getLocalizedMessage(), e);
-		}
-		return OK_STATUS;
-	}
-
-	/**
-	 * This method will be called by the workbench/editor before it tries to edit one or more files.
-	 * The idea is to prevent anyone from accidentally working on a file that they won't be able to check in changes to.
-	 * @see org.eclipse.core.resources.IFileModificationValidator#validateEdit(IFile[], Object)
-	 */
-	public IStatus validateEdit(IFile[] files, Object context) {
-		Collection toBeCheckedOut = new ArrayList();
-
-		//Make a list of all the files that need to be checked out:
-		for (int i = 0; i < files.length; i++) {
-			if (!operations.isCheckedOut(files[i])) {
-				toBeCheckedOut.add(files[i]);
-			}
-		}
-		
-		return checkout((IResource[]) toBeCheckedOut.toArray(new IResource[toBeCheckedOut.size()]));
-	}
-
-	/**
-	 * This method will be called by the workbench before it tries to save a file.
-	 * It should not attempt to save any files that don't recieve an OK status here.
-	 * @see org.eclipse.core.resources.IFileModificationValidator#validateSave(IFile)
-	 */
-	public IStatus validateSave(IFile file) {
-		return checkout(new IResource[] { file });
-	}
-
-}
diff --git a/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/FileSystemPlugin.java b/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/FileSystemPlugin.java
deleted file mode 100644
index 3a62e71..0000000
--- a/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/FileSystemPlugin.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.examples.filesystem;
-
-import java.io.IOException;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPluginDescriptor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-
-/**
- * This is the plugin class for the file system examples. It provides the following:
- * 
- * <ol>
- * <li>public fields for the plugin and provider IDs as defined in the plugin.xml
- * <li>initialization on startup of Policy class that provides internationalization of strings
- * <li>helper methods for outputing IStatus objects to the log
- * <li>helper methods for converting CoreExceptions and IOExceptions to TeamExceptions
- * </ol>
- */
-public class FileSystemPlugin extends AbstractUIPlugin {
-	
-	/**
-	 * This is the ID of the plugin as defined in the plugin.xml
-	 */
-	public static final String ID = "org.eclipse.team.examples.filesystem";
-	
-	/**
-	 * This is the provider ID of the plugin as defined in the plugin.xml
-	 */
-	public static final String PROVIDER_ID = ID + ".FileSystemProvider";
-	
-	// This static field will hold the singleton instance of the plugin class
-	private static FileSystemPlugin plugin;
-	
-	/**
-	 * Override the standard plugin constructor.
-	 * 
-	 * @param descriptor the plugin descriptor
-	 */
-	public FileSystemPlugin(IPluginDescriptor descriptor) {
-		super(descriptor);
-		// record this instance as the singleton
-		plugin = this;
-	}
-	
-	/**
-	 * This method will get invoked when the plugin is started.
-	 * Note that this is not necessarily at workbench startup.
-	 * 
-	 * @see org.eclipse.core.runtime.Plugin#startup()
-	 */
-	public void startup() throws CoreException {
-		// localize the string bindings used by the plugins (in order to provide NLS support)
-		Policy.localize("org.eclipse.team.examples.filesystem.messages");
-	}
-	
-	/**
-	 * Return the singlton instance of the plugin class to allow other
-	 * classes in the plugin access to plugin instance methods such as 
-	 * those for logging errors, etc.
-	 */
-	public static FileSystemPlugin getPlugin() {
-		return plugin;
-	}
-	
-	/**
-	 * Helper method to convert a CoreException into a TeamException.
-	 * We do this to maintain the core status and code. This type of
-	 * mapping may not be appropriate in more complicated exception 
-	 * handling situations.
-	 * 
-	 * @param e the CoreException
-	 */
-	public static TeamException wrapException(CoreException e) {
-		return new TeamException(e.getStatus());
-	}
-
-	/**
-	 * Helper method to convert an IOException into a TeamException.
-	 * This type of mapping may not be appropriate in more complicated 
-	 * exception handling situations.
-	 * 
-	 * @param e the CoreException
-	 */
-	public static TeamException wrapException(IOException e) {
-		return new TeamException(new Status(IStatus.ERROR, FileSystemPlugin.ID, 
-			TeamException.IO_FAILED, e.getMessage(), e));
-	}
-	
-	/**
-	 * Helper method to log an exception status.
-	 * 
-	 * @param status the status to be logged
-	 */
-	public static void log(IStatus status) {
-		plugin.getLog().log(status);
-	}
-}
-
diff --git a/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/FileSystemProvider.java b/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/FileSystemProvider.java
deleted file mode 100644
index 310b648..0000000
--- a/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/FileSystemProvider.java
+++ /dev/null
@@ -1,166 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.examples.filesystem;
-
-import java.io.File;
-
-import org.eclipse.core.resources.IFileModificationValidator;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.QualifiedName;
-import org.eclipse.team.core.RepositoryProvider;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.core.simpleAccess.SimpleAccessOperations;
-
-/**
- * This example illustrates how to create a concrete implementation of a <code>RepositoryProvider</code>
- * that uses the file system to act as the repository. See the plugin.xml file for the xml required
- * to register this provider with the Team extension point <code>org.eclipse.team.core.repository</code>.
- * The plugin.xml file also contains examples of how to filter menu items using a repsitory provider's
- * ID.
- * 
- * <p>
- * This example provider illustrates the following:
- * <ol>
- * <li>simple working implementation of <code>RepositoyProvider</code>
- * <li>storage of a persistant property with the project (which provides the target location for the provider)
- * <li>access to an instance of <code>SimpleAccessOperations</code> for performing simple file operations
- * </ol>
- * 
- * <p>
- * Additional functionality that will be illustrated in the future include:
- * <ol>
- * <li>Validate Save/Validat Edit
- * <li>Move/Delete Hook
- * <li>Project Sets
- * <li>Use of the workspace synchronizer (ISynchronizer)
- * <li>Use of decorators
- * <li>combining streams and progress monitors to get responsive UI
- * </ol>
- * 
- */
-public class FileSystemProvider extends RepositoryProvider {
-	
-	// The location of the folder on file system where the repository is stored.
-	private IPath root;
-	
-	// The QualifiedName that is used to persist the location accross workspace as a persistant property on a resource
-	private static QualifiedName FILESYSTEM_REPO_LOC = new QualifiedName(FileSystemPlugin.ID, "disk_location");
-
-	/**
-	 * Create a new FileSystemProvider.
-	 */
-	public FileSystemProvider() {
-		super();
-	}
-	
-	/**
-	 * This method is invoked when the provider is mapped to a project.
-	 * Although we have access to the project at this point (using 
-	 * <code>getProject()</code>, we don't know the root location so
-	 * there is nothing we can do yet.
-	 * 
-	 * @see org.eclipse.team.core.RepositoryProvider#configureProject()
-	 */
-	public void configureProject() throws CoreException {
-	}
-
-	/**
-	 * This method is invoked when the provider is unmapped from its
-	 * project.
-	 * 
-	 * @see org.eclipse.core.resources.IProjectNature#deconfigure()
-	 */
-	public void deconfigure() throws CoreException {
-		// Clear the persistant property containing the location
-		getProject().setPersistentProperty(FILESYSTEM_REPO_LOC, null);
-	}
-
-	/**
-	 * Return the provider ID as specified in the plugin.xml
-	 * 
-	 * @see RepositoryProvider#getID()
-	 */
-	public String getID() {
-		return FileSystemPlugin.PROVIDER_ID;
-	}
-		
-	/**
-	 * Set the file system location for the provider. This mist be invoked after 
-	 * the provider is mapped and configured but before the provider is used to 
-	 * perform any operations.
-	 * 
-	 * @param location the path representing the location where the project contents will be stored.
-	 * @throws TeamException
-	 */
-	public void setTargetLocation(String location) throws TeamException {
-		
-		// set the instance variable to the provided path
-		root = new Path(location);
-		
-		// ensure that the location is a folder (if it exists)
-		File file = new File(location);
-		if (file.exists() && !file.isDirectory()) {
-			throw new TeamException(Policy.bind("FileSystemProvider.mustBeFolder", location));
-		}
-		
-		// record the location as a persistant property so it will be remembered across platform invokations
-		try {
-			getProject().setPersistentProperty(FILESYSTEM_REPO_LOC, location);
-		} catch (CoreException e) {
-			throw FileSystemPlugin.wrapException(e);
-		}
-	}
-	
-	/**
-	 * Returns the folder in the file system to which the provider is connected.
-	 * Return <code>null</code> if there is no location or there was a problem
-	 * determining it.
-	 * 
-	 * @return IPath The path to the root of the repository.
-	 */
-	public IPath getRoot() {
-		if (root == null) {
-			try {
-				String location = getProject().getPersistentProperty(FILESYSTEM_REPO_LOC);
-				if (location == null) {
-					return null;
-				}
-				root = new Path(location);
-			} catch (CoreException e) {
-				// log the problem and carry on
-				FileSystemPlugin.log(e.getStatus());
-				return null;
-			}
-		}
-		return root;
-	}
-
-	/**
-	 * Return an instance of <code>SimpleAccessOperations</code> that provides the
-	 * operations for transfering data to and from the provider's location.
-	 * Note: The interface <code>SimpleAccessOperations</code> is not part of the official
-	 * Team API. We use it here for convenience.
-	 * 
-	 * @see org.eclipse.team.core.RepositoryProvider#getSimpleAccess()
-	 */
-	public SimpleAccessOperations getSimpleAccess() {
-		return new FileSystemSimpleAccessOperations(this);
-	}
-	/**
-	 * @see org.eclipse.team.core.RepositoryProvider#getFileModificationValidator()
-	 */
-	public IFileModificationValidator getFileModificationValidator() {
-		return new FileModificationValidator(this);
-	}
-
-}
diff --git a/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/FileSystemRemoteResource.java b/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/FileSystemRemoteResource.java
deleted file mode 100644
index f8c8761..0000000
--- a/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/FileSystemRemoteResource.java
+++ /dev/null
@@ -1,179 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.examples.filesystem;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.InputStream;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.sync.IRemoteResource;
-
-/**
- * Class represents a handle to a <code>java.io.File</code> that conforms to
- * the <code>org.eclipse.team.core.IRemoteResource</code> interface.
- */
-public class FileSystemRemoteResource implements IRemoteResource {
-
-	// the file object in which the data is stored on the disk
-	private File ioFile;
-
-	/**
-	 * The constructor.
-	 * @param path the full path of the resource on disk
-	 */
-	public FileSystemRemoteResource(IPath path) {
-		this(new File(path.toOSString()));
-	}
-
-	/**
-	 * Create a remote resource handle from the given java.io.file
-	 * 
-	 * @param ioFile the file
-	 */
-	FileSystemRemoteResource(File ioFile) {
-		this.ioFile = ioFile;
-	}
-
-	/**
-	 * Adapters are used to ensure that the right menus will appear in differnet views.
-	 * 
-	 * @see org.eclipse.core.runtime.IAdaptable#getAdapter(Class)
-	 */
-	public Object getAdapter(Class adapter) {
-		return Platform.getAdapterManager().getAdapter(this, adapter);
-	}
-
-	/**
-	 * Returns an input stream containing the contents of the remote resource.
-	 * The remote resource must be a file.
-	 * 
-	 * @see org.eclipse.team.core.sync.IRemoteResource#getContents(IProgressMonitor)
-	 */
-	public InputStream getContents(IProgressMonitor progress) throws TeamException {
-		if (isContainer())
-			throw new TeamException("This resource is a container so it cannot have data.");
-		try {
-			return new FileInputStream(ioFile);
-		} catch (FileNotFoundException e) {
-			throw FileSystemPlugin.wrapException(e);
-		}
-	}
-
-	/**
-	 * Return the modification timestamp of the remote resource.
-	 * 
-	 * @return long The date and time (in milliseconds) when the file was last changed on disk.
-	 */
-	public long getLastModified() {
-		return ioFile.lastModified();
-	}
-
-	/**
-	 * @see org.eclipse.team.core.sync.IRemoteResource#getName()
-	 */
-	public String getName() {
-		return ioFile.getName();
-	}
-
-	/**
-	 * @see org.eclipse.team.core.sync.IRemoteResource#isContainer()
-	 */
-	public boolean isContainer() {
-		return ioFile.isDirectory();
-	}
-
-	/**
-	 * Fetch the members of the remote resource. The remote resource must be a 
-	 * container.
-	 * 
-	 * @see org.eclipse.team.core.sync.IRemoteResource#members(IProgressMonitor)
-	 */
-	public IRemoteResource[] members(IProgressMonitor progress) throws TeamException {
-		// Make sure we have a container
-		if (!isContainer())
-			throw new TeamException(Policy.bind("RemoteResource.mustBeFolder", ioFile.getName()));
-
-		// convert the File children to remote resource children
-		File[] members = ioFile.listFiles();
-		IRemoteResource[] result = new IRemoteResource[members.length];
-		for (int i = 0; i < members.length; i++) {
-			result[i] = new FileSystemRemoteResource(members[i]);
-		}
-		return result;
-	}
-
-	/**
-	 * copies a single specified file to a specified location on the filesystem.
-	 * @param dest The location on the filesystem to which the file is to be copied
-	 * @param src The source file
-	 */
-	static void copyFile(IPath dest, File src) {
-		File target = new File(dest.append(src.getName()).toOSString());
-		try {
-			InputStream in = ((IFile) src).getContents();
-			java.io.FileOutputStream out = new java.io.FileOutputStream(target);
-			StreamUtil.pipe(in, out, target.length(), null, target.getName());
-		} catch (FileNotFoundException e) {} catch (IOException e) {} catch (CoreException e) {}
-	}
-	/**
-	 * Recursively copies an entire directory structure to a specified location on the filesystem
-	 * @param dest The location on the filssystem to which the directory structure is to be written
-	 * @param src The directory structure that is to be duplicated
-	 */
-	static void copyFolder(IPath dest, File src) {
-		String children[] = src.list();
-		File current;
-		for (int i = 0; i < children.length; i++) {
-			current = new File(children[i]);
-			if (current.isFile())
-				copyFile(dest.append(src.getName()), current);
-			else if (current.isDirectory())
-				copyFolder(dest.append(src.getName()), current);
-		}
-	}
-
-	/**
-	 * Creates a copy of the remote resource in the location specified
-	 * @param location The destination for the copy of the remote resource
-	 */
-	public void copyOver(IPath location) {
-		copyFolder(location, ioFile);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.team.core.sync.IRemoteResource#getComment()
-	 */
-	public String getComment() throws TeamException {
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.team.core.sync.IRemoteResource#getContentIdentifier()
-	 */
-	public String getContentIdentifier() throws TeamException {
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.team.core.sync.IRemoteResource#getCreatorDisplayName()
-	 */
-	public String getCreatorDisplayName() throws TeamException {
-		return null;
-	}
-}
diff --git a/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/FileSystemSimpleAccessOperations.java b/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/FileSystemSimpleAccessOperations.java
deleted file mode 100644
index db1f054..0000000
--- a/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/FileSystemSimpleAccessOperations.java
+++ /dev/null
@@ -1,310 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.examples.filesystem;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.sync.IRemoteResource;
-import org.eclipse.team.internal.core.simpleAccess.SimpleAccessOperations;
-
-/**
- * SimpleAccessOperations is not part of the Team API. We use it here because it provides
- * a reasonable set of operation commonly implemented by repository providers.
- * Note: This class is not to be interpreted as an example of how a repository
- * provider is to do its work. It is only here because we needed to have some operations
- * to perform. In the future, we may update this class to illustrate the use of the workspace 
- * synchronizer (<code>ISynchronizer</code>).
- */
-public class FileSystemSimpleAccessOperations implements SimpleAccessOperations {
-
-	// A reference to the provider
-	private FileSystemProvider provider;
-
-	/**
-	 * Constructor
-	 * @param provider
-	 */
-	FileSystemSimpleAccessOperations(FileSystemProvider provider) {
-		this.provider = provider;
-	}
-
-	/**
-	 * Given a local resource, finds the remote counterpart.
-	 * @param resource The local resource to lookup
-	 * @return FileSystemRemoteResource The remote counterpart to the given local resource
-	 */
-	public FileSystemRemoteResource getRemoteResourceFor(IResource resource) {
-		return new FileSystemRemoteResource(provider.getRoot().append(resource.getProjectRelativePath()));
-	}
-
-	/**
-	 * @see SimpleAccessOperations#get(IResource[], int, IProgressMonitor)
-	 */
-	public void get(IResource[] resources, int depth, IProgressMonitor progress) throws TeamException {
-		// ensure the progress monitor is not null
-		progress = Policy.monitorFor(progress);
-		progress.beginTask(Policy.bind("GetAction.working"), resources.length);
-		for (int i = 0; i < resources.length; i++) {
-			Policy.checkCanceled(progress);
-			IPath rootdir = provider.getRoot();
-			FileSystemRemoteResource remote = getRemoteResourceFor(resources[i]);
-			if (resources[i].getType() == IResource.FILE) {
-				//Copy the resource over to the other side:
-				IFile localFile = (IFile) resources[i]; //since we know the local resource is a file.
-				if (localFile.getModificationStamp() != remote.getLastModified()) {
-					//Only do this if the timestamps are different
-					try {
-						//Copy from the local file to the remote file:
-						InputStream source = null;
-						try {
-							// Get the remote file content.
-							source = remote.getContents(progress);
-							// Set the local file content to be the same as the remote file.
-							if (localFile.exists())
-								localFile.setContents(source, false, false, progress);
-							else
-								localFile.create(source, false, progress);
-						} finally {
-							if (source != null)
-								source.close();
-						}
-					} catch (IOException e) {
-						throw FileSystemPlugin.wrapException(e);
-					} catch (CoreException e) {
-						throw FileSystemPlugin.wrapException(e);
-					}
-				}
-			} else if (depth > 0) { //Assume that resources are either files or containers.
-				//If the resource is a container, copy its children over.
-				IRemoteResource[] estranged = remote.members(progress);
-				IResource[] children = new IResource[estranged.length];
-
-				if (resources[i].getType() == IResource.PROJECT) {
-					for (int j = 0; j < estranged.length; j++) {
-						if (estranged[j].isContainer())
-							children[j] = provider.getProject().getFolder(estranged[j].getName());
-						else
-							children[j] = provider.getProject().getFile(estranged[j].getName());
-					}
-				} else if (resources[i].getType() == IResource.FOLDER) {
-					//Make sure that the folder exists before trying to put anything into it:
-					IFolder localFolder = (IFolder) resources[i];
-					if (!localFolder.exists()) {
-						try {
-							localFolder.create(false, true, progress);
-						} catch (CoreException e) {
-							throw FileSystemPlugin.wrapException(e);
-						}
-					}
-
-					//Create placeholder local resources to place data into:
-					for (int j = 0; j < estranged.length; j++) {
-						if (estranged[j].isContainer())
-							children[j] = provider.getProject().getFolder(resources[i].getProjectRelativePath().append(estranged[j].getName()));
-						else
-							children[j] = provider.getProject().getFile(resources[i].getProjectRelativePath().append(estranged[j].getName()));
-					}
-				}
-
-				//Recurse into children:
-				if (children.length > 0)
-					get(children, depth - 1, null);
-			}
-			progress.worked(1);
-		}
-		progress.done();
-	}
-
-	/**
-	 * Simply make sure that the local resource is not read only.
-	 * 
-	 * @see SimpleAccessOperations#checkout(IResource[], int, IProgressMonitor)
-	 */
-	public void checkout(IResource[] resources, int depth, IProgressMonitor progress) throws TeamException {
-		progress = Policy.monitorFor(progress);
-		progress.beginTask("Checking resources out...", resources.length);
-		IPath rootdir = provider.getRoot();
-		for (int i = 0; i < resources.length; i++) {
-			Policy.checkCanceled(progress);
-
-			//Do the actual file locking:
-			FileSystemRemoteResource remote = getRemoteResourceFor(resources[i]);
-			File diskFile = new File(rootdir.append(resources[i].getProjectRelativePath()).toOSString());
-			if (resources[i].getType() == IResource.FILE) {
-				//TODO: lock the file on the 'server'.
-				resources[i].setReadOnly(false);
-			} else if (depth > 0) {
-				diskFile.mkdirs();
-				//Recursively checkout children too:
-				try {
-					IResource[] children;
-					if (resources[i].getType() == IResource.PROJECT)
-						children = provider.getProject().members();
-					else
-						children = provider.getProject().getFolder(resources[i].getName()).members();
-					if (children.length > 0)
-						checkout(children, depth - 1, null);
-				} catch (CoreException e) {
-					throw FileSystemPlugin.wrapException(e);
-				}
-			}
-			progress.worked(1);
-		}
-		progress.done();
-	}
-
-	/**
-	 * Checkin the resources to the given depth. Mark all checked in resources as read only.
-	 * 
-	 * @see org.eclipse.team.internal.core.simpleAccess.SimpleAccessOperations#checkin(IResource[], int, IProgressMonitor)
-	 */
-	public void checkin(IResource[] resources, int depth, IProgressMonitor progress) throws TeamException {
-		// ensure the progress monitor is not null
-		progress = Policy.monitorFor(progress);
-		progress.beginTask(Policy.bind("PutAction.working"), resources.length);
-		for (int i = 0; i < resources.length; i++) {
-			Policy.checkCanceled(progress);
-			IPath rootdir = provider.getRoot();
-			// Verify that the resources are checked out:
-			if (!isCheckedOut(resources[i]))
-				return;
-
-			File diskFile = new File(rootdir.append(resources[i].getProjectRelativePath()).toOSString());
-			if (resources[i].getType() == IResource.FILE) {
-				//Copy the resource over to the other side:
-				IFile localFile = (IFile) resources[i]; //since we know the local resource is a file.
-				if (localFile.getModificationStamp() != diskFile.lastModified()) {
-					//Only do this if the timestamps are different
-					try {
-						diskFile.getParentFile().mkdirs();
-						//Copy from the local file to the remote file:
-						InputStream in = null;
-						FileOutputStream out = null;
-						try {
-							in = localFile.getContents();
-							out = new FileOutputStream(diskFile);
-							//Copy the contents of the local file to the remote file:
-							StreamUtil.pipe(in, out, diskFile.length(), progress, diskFile.getName());
-						} finally {
-							if (in != null)
-								in.close();
-							if (out != null)
-								out.close();
-						}
-					} catch (IOException e) {
-						throw FileSystemPlugin.wrapException(e);
-					} catch (CoreException e) {
-						throw FileSystemPlugin.wrapException(e);
-					}
-				}
-			} else if (depth > 0) { //Assume that resources are either files or containers.
-				diskFile.mkdirs();
-				//Recursively copy children, if any, over as well:
-				try {
-					IResource[] children;
-					if (resources[i].getType() == IResource.PROJECT)
-						children = provider.getProject().members();
-					else
-						children = provider.getProject().getFolder(resources[i].getName()).members();
-					if (children.length > 0)
-						checkin(children, depth - 1, null);
-				} catch (CoreException e) {
-					throw FileSystemPlugin.wrapException(e);
-				}
-			}
-			progress.worked(1);
-		}
-		uncheckout(resources, depth, progress);
-		progress.done();
-	}
-
-	/**
-	 * Mark all checked in resources as read only.
-	 * 
-	 * @see org.eclipse.team.internal.core.simpleAccess.SimpleAccessOperations#uncheckout(IResource[], int, IProgressMonitor)
-	 */
-	public void uncheckout(IResource[] resources, int depth, IProgressMonitor progress) throws TeamException {
-		progress = Policy.monitorFor(progress);
-		progress.beginTask("Re-locking resources...", resources.length);
-		IPath rootdir = provider.getRoot();
-		for (int i = 0; i < resources.length; i++) {
-			Policy.checkCanceled(progress);
-
-			//Do the actual file unlocking:
-			FileSystemRemoteResource remote = getRemoteResourceFor(resources[i]);
-			File diskFile = new File(rootdir.append(resources[i].getProjectRelativePath()).toOSString());
-			if (resources[i].getType() == IResource.FILE) {
-				//TODO: unlock the file on the 'server'.
-				resources[i].setReadOnly(true);
-			} else if (depth > 0) {
-				diskFile.mkdirs();
-				//Recursively uncheckout children too:
-				try {
-					IResource[] children;
-					if (resources[i].getType() == IResource.PROJECT)
-						children = provider.getProject().members();
-					else
-						children = provider.getProject().getFolder(resources[i].getName()).members();
-					if (children.length > 0)
-						uncheckout(children, depth - 1, null);
-				} catch (CoreException e) {
-					throw FileSystemPlugin.wrapException(e);
-				}
-			}
-			progress.worked(1);
-		}
-		progress.done();
-	}
-
-	/**
-	 * @see org.eclipse.team.internal.core.simpleAccess.SimpleAccessOperations#delete(IResource[], IProgressMonitor)
-	 */
-	public void delete(IResource[] resources, IProgressMonitor progress) throws TeamException {}
-
-	/**
-	 * @see org.eclipse.team.internal.core.simpleAccess.SimpleAccessOperations#moved(IPath, IResource, IProgressMonitor)
-	 */
-	public void moved(IPath source, IResource target, IProgressMonitor progress) throws TeamException {}
-
-	/**
-	 * A resource is checked out if it is not read only.
-	 * 
-	 * @see org.eclipse.team.internal.core.simpleAccess.SimpleAccessOperations#isCheckedOut(IResource)
-	 */
-	public boolean isCheckedOut(IResource resource) {
-		return !resource.isReadOnly();
-	}
-
-	/**
-	 * @see org.eclipse.team.internal.core.simpleAccess.SimpleAccessOperations#hasRemote(IResource)
-	 */
-	public boolean hasRemote(IResource resource) {
-		return false;
-	}
-
-	/**
-	 * @see org.eclipse.team.internal.core.simpleAccess.SimpleAccessOperations#isDirty(IResource)
-	 */
-	public boolean isDirty(IResource resource) {
-		return false;
-	}
-
-}
diff --git a/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/Policy.java b/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/Policy.java
deleted file mode 100644
index 00220dc..0000000
--- a/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/Policy.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.examples.filesystem;
-
-import java.text.MessageFormat;
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.OperationCanceledException;
-
-/**
- * This class is a clone of the Polciy classes many Eclipse plugin suse to 
- * provide NLSing of strings and aid in proper progress monitoring.
- */
-public class Policy {
-	
-	protected static ResourceBundle bundle = null;
-
-	/**
-	 * Creates a NLS catalog for the given locale.
-	 */
-	public static void localize(String bundleName) {
-		bundle = ResourceBundle.getBundle(bundleName);
-	}
-	
-	/**
-	 * Lookup the message with the given ID in this catalog and bind its
-	 * substitution locations with the given string.
-	 */
-	public static String bind(String id, String binding) {
-		return bind(id, new String[] { binding });
-	}
-	
-	/**
-	 * Lookup the message with the given ID in this catalog and bind its
-	 * substitution locations with the given strings.
-	 */
-	public static String bind(String id, String binding1, String binding2) {
-		return bind(id, new String[] { binding1, binding2 });
-	}
-	
-	/**
-	 * Gets a string from the resource bundle. We don't want to crash because of a missing String.
-	 * Returns the key if not found.
-	 */
-	public static String bind(String key) {
-		try {
-			return bundle.getString(key);
-		} catch (MissingResourceException e) {
-			return key;
-		} catch (NullPointerException e) {
-			return "!" + key + "!";
-		}
-	}
-	
-	/**
-	 * Gets a string from the resource bundle and binds it with the given arguments. If the key is 
-	 * not found, return the key.
-	 */
-	public static String bind(String key, Object[] args) {
-		try {
-			return MessageFormat.format(bind(key), args);
-		} catch (MissingResourceException e) {
-			return key;
-		} catch (NullPointerException e) {
-			return "!" + key + "!";
-		}
-	}
-	
-	/**
-	 * Progress monitor helpers
-	 */
-	public static void checkCanceled(IProgressMonitor monitor) {
-		if (monitor.isCanceled())
-			throw new OperationCanceledException();
-	}
-	
-	public static IProgressMonitor monitorFor(IProgressMonitor monitor) {
-		if (monitor == null)
-			return new NullProgressMonitor();
-		return monitor;
-	}	
-}
diff --git a/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/StreamUtil.java b/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/StreamUtil.java
deleted file mode 100644
index 0e392c2..0000000
--- a/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/StreamUtil.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.examples.filesystem;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-
-public class StreamUtil {
-
-	protected final static byte[] COPY_BUFFER = new byte[4096];
-
-	public static void pipe(
-		InputStream in,
-		OutputStream out,
-		long sizeEstimate,
-		IProgressMonitor progress,
-		String title)
-		throws IOException {
-
-		// Only show progress for files larger than 25Kb.
-		Long kilobytesEstimate = new Long(sizeEstimate / 1024);
-		boolean showProgress = (progress != null) && (sizeEstimate > 25000);
-		long bytesCopied = 0;
-
-		synchronized (COPY_BUFFER) {
-			// Read the initial chunk.
-			int read = in.read(COPY_BUFFER, 0, COPY_BUFFER.length);
-
-			while (read != -1) {
-				out.write(COPY_BUFFER, 0, read);
-
-				// Report progress
-				if (showProgress) {
-					bytesCopied = bytesCopied + read;
-					progress.subTask(
-						Policy.bind(
-							"filetransfer.monitor",
-							new Object[] { title, new Long(bytesCopied / 1024), kilobytesEstimate }));
-				}
-
-				// Read the next chunk.
-				read = in.read(COPY_BUFFER, 0, COPY_BUFFER.length);
-			} // end while
-		} // end synchronized
-	}
-
-}
diff --git a/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/messages.properties b/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/messages.properties
deleted file mode 100644
index 832eb7c..0000000
--- a/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/messages.properties
+++ /dev/null
@@ -1,38 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-fileSystem.propertyLocation=Location:
-
-FileSystemMainPage.location=Location:
-FileSystemMainPage.browseDir=&Browse...
-FileSystemMainPage.notValidLocation=Location must be an existing directory
-
-fsMainPage.name=Select a file system location
-fsMainPage.description=This location will be used to share resources with a team 
-
-ConfigurationWizard.errorTitle=Error configuring the provider.
-ConfigurationWizard.error=File System provider could not be created
-
-ConfigurationWizard.name=File System Repository
-ConfigurationWizard.description=File System Repository Properties
-
-DisconnectAction.errorTitle=Error Disconnecting
-
-PutAction.working=Putting resources...
-PutAction.problemMessage=A problem occured putting the resources.
-
-GetAction.working=Getting resources...
-GetAction.problemMessage=A problem occured getting the resources.
-
-ReplaceAction.working=Replacing resources...
-ReplaceAction.problemMessage=A problem occured replacing the resources.
-
-FileSystemProvider.mustBeFolder=Target location ''{0}'' is a file and must be a folder.
-RemoteResource.mustBeFolder=Resource ''{0}'' is a file so it cannot have entries
\ No newline at end of file
diff --git a/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/ui/ConfigurationWizard.java b/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/ui/ConfigurationWizard.java
deleted file mode 100644
index 090f238..0000000
--- a/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/ui/ConfigurationWizard.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.examples.filesystem.ui;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.team.core.RepositoryProvider;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.examples.filesystem.FileSystemPlugin;
-import org.eclipse.team.examples.filesystem.FileSystemProvider;
-import org.eclipse.team.examples.filesystem.Policy;
-import org.eclipse.team.ui.IConfigurationWizard;
-import org.eclipse.ui.IWorkbench;
-
-/**
- * The file system configuration wizard used when associating a project
- * the the file system provider. It is registered as a Team configuration wizard
- * in the plugin.xml and is invoked when a user chooses to create a File System
- * Repository Provider. One invoked, this wizard makes use of the <code>FileSystemMainPage</code>
- * in order to obtain a target locaton on disk.
- */
-public class ConfigurationWizard extends Wizard implements IConfigurationWizard {
-	
-	IProject project;
-	
-	FileSystemMainPage mainPage;
-	
-	public ConfigurationWizard() {
-		// retrieve the remembered dialog settings
-		IDialogSettings workbenchSettings = FileSystemPlugin.getPlugin().getDialogSettings();
-		IDialogSettings section = workbenchSettings.getSection("ProviderExamplesWizard"); //$NON-NLS-1$
-		if (section == null) {
-			section = workbenchSettings.addNewSection("ProviderExamplesWizard"); //$NON-NLS-1$
-		}
-		setDialogSettings(section);
-	}
-
-	/**
-	 * Remember the project so we can map it on finish
-	 * 
-	 * @see org.eclipse.team.ui.IConfigurationWizard#init(IWorkbench, IProject)
-	 */
-	public void init(IWorkbench workbench, IProject project) {
-		this.project = project;
-	}
-	
-	public void addPages() {
-		mainPage = new FileSystemMainPage(
-			"FileSystemMainPage", //$NON-NLS-1$
-			Policy.bind("ConfigurationWizard.name"), 
-			Policy.bind("ConfigurationWizard.description"), 
-			null);
-		addPage(mainPage);
-	}
-	
-	/*
-	 * Using the information entered in the main page set the provider for
-	 * the given project.
-	 */
-	public boolean performFinish() {
-		mainPage.finish(null);
-		try {
-			// Map the provider and set the location
-			RepositoryProvider.map(project, FileSystemPlugin.PROVIDER_ID);
-			FileSystemProvider provider = (FileSystemProvider) RepositoryProvider.getProvider(project);
-			provider.setTargetLocation(mainPage.getLocation());
-		} catch (TeamException e) {
-			ErrorDialog.openError(
-				getShell(),
-				Policy.bind("ConfigurationWizard.errorMapping"),
-				Policy.bind("ConfigurationWizard.error"),
-				e.getStatus());
-			return false;
-		}
-		return true;
-	}
-
-}
diff --git a/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/ui/DisconnectAction.java b/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/ui/DisconnectAction.java
deleted file mode 100644
index 52cc47c..0000000
--- a/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/ui/DisconnectAction.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.examples.filesystem.ui;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.team.core.RepositoryProvider;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.examples.filesystem.Policy;
-import org.eclipse.team.internal.ui.actions.TeamAction;
-
-/**
- * Action for getting the contents of the selected resources
- */
-public class DisconnectAction extends TeamAction {
-	
-	/**
-	 * @see org.eclipse.ui.IActionDelegate#run(IAction)
-	 */
-	public void run(IAction action) {
-		IProject projects[] = getSelectedProjects();
-		try {
-			for (int i = 0; i < projects.length; i++) {
-				RepositoryProvider.unmap(projects[i]);
-			}
-		} catch (TeamException e) {
-			ErrorDialog.openError(getShell(), Policy.bind("DisconnectAction.errorTitle"), null, e.getStatus());
-		} 
-	}
-	
-	/**
-	 * @see TeamAction#isEnabled()
-	 */
-	protected boolean isEnabled() {
-		return true;
-	}
-}
diff --git a/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/ui/FileSystemAction.java b/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/ui/FileSystemAction.java
deleted file mode 100644
index e3a5da7..0000000
--- a/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/ui/FileSystemAction.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.examples.filesystem.ui;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.team.core.RepositoryProvider;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.examples.filesystem.FileSystemPlugin;
-import org.eclipse.team.internal.ui.actions.TeamAction;
-
-/**
- * An abstract class that acts as a super class for FileSystemProvider actions.
- * It provides some general methods applicable to multipe actions.
- */
-public abstract class FileSystemAction extends TeamAction {
-
-	/**
-	 * @see org.eclipse.team.internal.ui.actions.TeamAction#isEnabled()
-	 */
-	protected boolean isEnabled() {
-		IResource[] resources = getSelectedResources();
-		if (resources.length == 0)
-			return false;
-		for (int i = 0; i < resources.length; i++) {
-			IResource resource = resources[i];
-			// we only want to work on resources mapped to a file system provider
-			RepositoryProvider provider = RepositoryProvider.getProvider(resource.getProject(), FileSystemPlugin.PROVIDER_ID);
-			if (provider == null)
-				return false;
-		}
-		return true;
-	}
-
-	/**
-	 * Split the resources into sets associated with their project/provider
-	 */
-	protected Map getRepositoryProviderMapping() throws TeamException {
-		HashMap result = new HashMap();
-		IResource[] resources = getSelectedResources();
-		for (int i = 0; i < resources.length; i++) {
-			RepositoryProvider provider = RepositoryProvider.getProvider(resources[i].getProject());
-			List list = (List) result.get(provider);
-			if (list == null) {
-				list = new ArrayList();
-				result.put(provider, list);
-			}
-			list.add(resources[i]);
-		}
-		return result;
-	}
-	
-}
diff --git a/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/ui/FileSystemMainPage.java b/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/ui/FileSystemMainPage.java
deleted file mode 100644
index 97bea03..0000000
--- a/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/ui/FileSystemMainPage.java
+++ /dev/null
@@ -1,301 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.examples.filesystem.ui;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.DirectoryDialog;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.team.examples.filesystem.Policy;
-
-/**
- * This class provides the main page of the file system repository configuration wizard.
- * It allows the user to select a location on disk. Once the page is finished, the
- * location can be accessed using the <code>getLocation()</code> method.
- */
-public class FileSystemMainPage extends WizardPage {
-	
-	private static final int COMBO_HISTORY_LENGTH = 5;
-	
-	String location;
-	Combo locationCombo;
-	
-	/*
-	 * WizardPage constructor comment.
-	 * @param pageName  the name of the page
-	 * @param title  the title of the page
-	 * @param description  the description of the page
-	 * @param titleImage  the image for the page
-	 */
-
-	public FileSystemMainPage(String pageName, String title, String description, ImageDescriptor titleImage) {
-		super(pageName, title, titleImage);
-		setDescription(description);
-		setTitle(title);
-	}
-		
-	/*
-	 * Creates a new checkbox instance and sets the default layout data.
-	 *
-	 * @param group  the composite in which to create the checkbox
-	 * @param label  the string to set into the checkbox
-	 * @return the new checkbox
-	 */ 
-	protected Button createCheckBox(Composite group, String label) {
-		Button button = new Button(group, SWT.CHECK | SWT.LEFT);
-		button.setText(label);
-		GridData data = new GridData();
-		data.horizontalSpan = 2;
-		button.setLayoutData(data);
-		return button;
-	}
-	
-	/*
-	 * Utility method that creates a combo box
-	 *
-	 * @param parent  the parent for the new label
-	 * @return the new widget
-	 */
-	protected Combo createCombo(Composite parent) {
-		Combo combo = new Combo(parent, SWT.READ_ONLY);
-		GridData data = new GridData(GridData.FILL_HORIZONTAL);
-		data.widthHint = IDialogConstants.ENTRY_FIELD_WIDTH;
-		combo.setLayoutData(data);
-		return combo;
-	}
-	
-	/*
-	 * Creates composite control and sets the default layout data.
-	 *
-	 * @param parent  the parent of the new composite
-	 * @param numColumns  the number of columns for the new composite
-	 * @return the newly-created coposite
-	 */
-	protected Composite createComposite(Composite parent, int numColumns) {
-		Composite composite = new Composite(parent, SWT.NULL);
-	
-		// GridLayout
-		GridLayout layout = new GridLayout();
-		layout.numColumns = numColumns;
-		composite.setLayout(layout);
-	
-		// GridData
-		GridData data = new GridData();
-		data.verticalAlignment = GridData.FILL;
-		data.horizontalAlignment = GridData.FILL;
-		composite.setLayoutData(data);
-		return composite;
-	}
-	
-	/*
-	 * Utility method that creates a label instance
-	 * and sets the default layout data.
-	 *
-	 * @param parent  the parent for the new label
-	 * @param text  the text for the new label
-	 * @return the new label
-	 */
-	protected Label createLabel(Composite parent, String text) {
-		Label label = new Label(parent, SWT.LEFT);
-		label.setText(text);
-		GridData data = new GridData();
-		data.horizontalSpan = 1;
-		data.horizontalAlignment = GridData.FILL;
-		label.setLayoutData(data);
-		return label;
-	}
-	
-	/*
-	 * Create a text field specific for this application
-	 *
-	 * @param parent  the parent of the new text field
-	 * @return the new text field
-	 */
-	protected Text createTextField(Composite parent) {
-		Text text = new Text(parent, SWT.SINGLE | SWT.BORDER);
-		GridData data = new GridData(GridData.FILL_HORIZONTAL);
-		data.verticalAlignment = GridData.CENTER;
-		data.grabExcessVerticalSpace = false;
-		data.widthHint = IDialogConstants.ENTRY_FIELD_WIDTH;
-		text.setLayoutData(data);
-		return text;
-	}
-	
-	/*
-	 * Adds an entry to a history, while taking care of duplicate history items
-	 * and excessively long histories.  The assumption is made that all histories
-	 * should be of length <code>ConfigurationWizardMainPage.COMBO_HISTORY_LENGTH</code>.
-	 *
-	 * @param history the current history
-	 * @param newEntry the entry to add to the history
-	 * @return the history with the new entry appended
-	 */
-	protected String[] addToHistory(String[] history, String newEntry) {
-		ArrayList l = new ArrayList(Arrays.asList(history));
-		addToHistory(l, newEntry);
-		String[] r = new String[l.size()];
-		l.toArray(r);
-		return r;
-	}
-	
-	/*
-	 * Adds an entry to a history, while taking care of duplicate history items
-	 * and excessively long histories.  The assumption is made that all histories
-	 * should be of length <code>ConfigurationWizardMainPage.COMBO_HISTORY_LENGTH</code>.
-	 *
-	 * @param history the current history
-	 * @param newEntry the entry to add to the history
-	 */
-	protected void addToHistory(List history, String newEntry) {
-		history.remove(newEntry);
-		history.add(0,newEntry);
-	
-		// since only one new item was added, we can be over the limit
-		// by at most one item
-		if (history.size() > COMBO_HISTORY_LENGTH)
-			history.remove(COMBO_HISTORY_LENGTH);
-	}
-	
-	/*
-	 * Utility method to create an editable combo box
-	 * 
-	 * @param parent  the parent of the combo box
-	 * @return the created combo
-	 */
-	protected Combo createEditableCombo(Composite parent) {
-		Combo combo = new Combo(parent, SWT.NULL);
-		GridData data = new GridData(GridData.FILL_HORIZONTAL);
-		data.widthHint = IDialogConstants.ENTRY_FIELD_WIDTH;
-		combo.setLayoutData(data);
-		return combo;
-	}
-	
-	// Dialog store id constants
-	private static final String STORE_LOCATION =
-		"ExamplesFSWizardMainPage.STORE_LOCATION";//$NON-NLS-1$
-	
-	public void createControl(Composite parent) {
-		Composite composite = new Composite(parent, SWT.NULL);
-		composite.setLayoutData(new GridData(GridData.FILL_BOTH));
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 2;
-		composite.setLayout(layout);
-		setControl(composite);
-		
-		Label label = new Label(composite, SWT.NULL);
-		label.setText(Policy.bind("FileSystemMainPage.location"));
-		label.setLayoutData(new GridData());
-		
-		locationCombo = createEditableCombo(composite);
-		locationCombo.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		locationCombo.addListener(SWT.Modify, new Listener() {
-			public void handleEvent(Event e) {
-				location = ((Combo)e.widget).getText();
-				FileSystemMainPage.this.validateFields();		
-			}
-		});
-		
-		locationCombo.setFocus();
-		
-		new Label(composite, SWT.NULL);
-		Button browse = new Button(composite, SWT.NULL);
-		browse.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END));
-		browse.setText(Policy.bind("FileSystemMainPage.browseDir"));
-		browse.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event event) {
-				DirectoryDialog d = new DirectoryDialog(getShell());
-				String directory = d.open();
-				if(directory!=null) {
-					locationCombo.setText(directory);
-				}			
-			}
-		});
-	
-		initializeValues();
-		validateFields();
-	}
-	
-	public String getLocation() {
-		return location;
-	}
-
-	public boolean finish(IProgressMonitor monitor) {
-		saveWidgetValues();
-		return true;
-	}
-	/**
-	 * Initializes states of the controls.
-	 */
-	private void initializeValues() {
-		IDialogSettings settings = getDialogSettings();
-		if (settings != null) {
-			String[] locations = settings.getArray(STORE_LOCATION);
-			if (locations != null) {
-				for (int i = 0; i < locations.length; i++) {
-					locationCombo.add(locations[i]);
-				}
-				locationCombo.select(0);
-			}
-		}
-	}
-	/**
-	 * Saves the widget values
-	 */
-	private void saveWidgetValues() {
-		// Update history
-		IDialogSettings settings = getDialogSettings();
-		if (settings != null) {
-			String[] locations = settings.getArray(STORE_LOCATION);
-			if (locations == null) locations = new String[0];
-			locations = addToHistory(locations, locationCombo.getText());
-			settings.put(STORE_LOCATION, locations);	
-		}
-	}
-	
-	/*
-	 * Validates the contents of the editable fields and set page completion 
-	 * and error messages appropriately.
-	 */
-	private void validateFields() {
-		String location = locationCombo.getText();
-		if (location.length() == 0) {
-			setErrorMessage(null);
-			setPageComplete(false);
-			return;
-		} else {
-			File file = new File(location);
-			if(!file.exists() || !file.isDirectory()) {
-				setErrorMessage(Policy.bind("FileSystemMainPage.notValidLocation"));
-				setPageComplete(false);
-				return;				
-			}			
-		}
-		setErrorMessage(null);
-		setPageComplete(true);
-	}
-}
diff --git a/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/ui/FileSystemPropertiesPage.java b/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/ui/FileSystemPropertiesPage.java
deleted file mode 100644
index 309f980..0000000
--- a/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/ui/FileSystemPropertiesPage.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.examples.filesystem.ui;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.team.core.RepositoryProvider;
-import org.eclipse.ui.dialogs.PropertyPage;
-/*
- * A property page which displays the  file system specific properties 
- * for the selected resource.
- */
-public class FileSystemPropertiesPage extends PropertyPage {
-	// The resource to show properties for
-	protected IResource resource;
-
-	/*	 
-	 * Creates a key-value property pair in the given parent.
-	 * 
-	 * @param parent  the parent for the labels
-	 * @param left  the string for the left label
-	 * @param right  the string for the right label
-	 */
-	protected void createPair(Composite parent, String left, String right) {
-		Label label = new Label(parent, SWT.NONE);
-		label.setText(left);
-	
-		label = new Label(parent, SWT.NONE);
-		label.setText(right);
-		label.setToolTipText(right);
-		label.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-	}
-
-	/*
-	 * Returns the element selected when the properties was run
-	 * @return the selected element
-	 */	
-	protected IResource getSelectedElement() {
-		// get the resource that is the source of this property page
-		IResource resource = null;
-		IAdaptable element = getElement();
-		if (element instanceof IResource) {
-			resource = (IResource)element;
-		} else {
-			Object adapter = element.getAdapter(IResource.class);
-			if (adapter instanceof IResource) {
-				resource = (IResource)adapter;
-			}
-		}
-		return resource;
-	}
-	
-	/*
-	 * @see PreferencePage#createContents(Composite)
-	 */
-	protected Control createContents(Composite parent) {
-		Composite composite = new Composite(parent, SWT.NONE);
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 2;
-		layout.marginHeight = layout.marginWidth = 0;
-		composite.setLayout(layout);
-		composite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-				
-		IResource resource = getSelectedElement();
-		RepositoryProvider provider = RepositoryProvider.getProvider(resource.getProject());
-		return composite;
-	}
-}
diff --git a/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/ui/GetAction.java b/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/ui/GetAction.java
deleted file mode 100644
index 1c4ce85..0000000
--- a/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/ui/GetAction.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.examples.filesystem.ui;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.examples.filesystem.FileSystemProvider;
-import org.eclipse.team.examples.filesystem.Policy;
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-
-/**
- * Action for getting the contents of the selected resources
- */
-public class GetAction extends FileSystemAction {
-
-	public void run(IAction action) {
-		run(new WorkspaceModifyOperation() {
-			public void execute(IProgressMonitor monitor) throws InterruptedException, InvocationTargetException {
-				try {
-					Map table = getRepositoryProviderMapping();
-					monitor.beginTask(null, table.size() * 1000);
-					monitor.setTaskName(Policy.bind("GetAction.working")); //$NON-NLS-1$
-					for (Iterator iter = table.keySet().iterator(); iter.hasNext();) {
-						IProgressMonitor subMonitor = new SubProgressMonitor(monitor, 1000);
-						FileSystemProvider provider = (FileSystemProvider) iter.next();
-						List list = (List) table.get(provider);
-						IResource[] providerResources = (IResource[]) list.toArray(new IResource[list.size()]);
-						provider.getSimpleAccess().get(providerResources, IResource.DEPTH_INFINITE, subMonitor);
-					}
-				} catch (TeamException e) {
-					throw new InvocationTargetException(e);
-				} finally {
-					monitor.done();
-				}
-			}
-		}, Policy.bind("GetAction.problemMessage"), PROGRESS_DIALOG); //$NON-NLS-1$
-	}
-}
diff --git a/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/ui/PutAction.java b/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/ui/PutAction.java
deleted file mode 100644
index 004b865..0000000
--- a/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/ui/PutAction.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.examples.filesystem.ui;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.examples.filesystem.FileSystemProvider;
-import org.eclipse.team.examples.filesystem.Policy;
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-
-/**
- * Action for checking in the selected resources
- */
-public class PutAction extends FileSystemAction {
-
-	/*
-	 * Method declared on IActionDelegate.
-	 */
-	public void run(IAction action) {
-		run(new WorkspaceModifyOperation() {
-			public void execute(IProgressMonitor monitor) throws InterruptedException, InvocationTargetException {
-				try {
-					Map table = getRepositoryProviderMapping();
-					monitor.beginTask(null, table.size() * 1000);
-					monitor.setTaskName(Policy.bind("PutAction.working")); //$NON-NLS-1$
-					for (Iterator iter = table.keySet().iterator(); iter.hasNext();) {
-						IProgressMonitor subMonitor = new SubProgressMonitor(monitor, 1000);
-						FileSystemProvider provider = (FileSystemProvider) iter.next();
-						List list = (List) table.get(provider);
-						IResource[] providerResources = (IResource[]) list.toArray(new IResource[list.size()]);
-						provider.getSimpleAccess().checkin(providerResources, IResource.DEPTH_INFINITE, subMonitor);
-					}
-				} catch (TeamException e) {
-					throw new InvocationTargetException(e);
-				} finally {
-					monitor.done();
-				}
-			}
-		}, Policy.bind("PutAction.problemMessage"), PROGRESS_DIALOG); //$NON-NLS-1$
-	}
-}
diff --git a/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/ui/ReplaceAction.java b/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/ui/ReplaceAction.java
deleted file mode 100644
index b35b59e..0000000
--- a/examples/org.eclipse.team.examples.filesystem/src/org/eclipse/team/examples/filesystem/ui/ReplaceAction.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.examples.filesystem.ui;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.examples.filesystem.FileSystemProvider;
-import org.eclipse.team.examples.filesystem.FileSystemRemoteResource;
-import org.eclipse.team.examples.filesystem.Policy;
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-
-/**
- * Action for replacing the contents of the selected resources with whatever is in the repository
- */
-public class ReplaceAction extends FileSystemAction {
-	
-	public void run(IAction action) {
-		run(new WorkspaceModifyOperation() {
-			public void execute(IProgressMonitor monitor) throws InterruptedException, InvocationTargetException {
-				try {
-					Map table = getRepositoryProviderMapping();
-					monitor.beginTask(null, table.size() * 1000);
-					monitor.setTaskName(Policy.bind("ReplaceAction.working")); //$NON-NLS-1$
-					for (Iterator iter = table.keySet().iterator(); iter.hasNext();) {
-						IProgressMonitor subMonitor = new SubProgressMonitor(monitor, 1000);
-						FileSystemProvider provider = (FileSystemProvider) iter.next();
-						List list = (List) table.get(provider);
-						IResource[] providerResources = (IResource[]) list.toArray(new IResource[list.size()]);
-						//Grab the remote counterparts of 'providerResources':
-						FileSystemRemoteResource[] remote = new FileSystemRemoteResource[list.size()];
-						for (int i = 0; i < remote.length; i++) {
-							remote[i] = new FileSystemRemoteResource(provider.getRoot().append(providerResources[i].getProjectRelativePath()));
-						}
-						//copy the entire tree structure:
-						IPath dropSpot = null;
-						for (int i = 0; i < providerResources.length; i++) {
-							if (providerResources[i].getType() == IResource.FILE) {
-								IFile localFile = (IFile) providerResources[i];
-								dropSpot = localFile.getLocation().removeLastSegments(1);
-							} else if (providerResources[i].getType() == IResource.FOLDER||providerResources[i].getType() == IResource.PROJECT) {
-								IContainer localDir = (IContainer) providerResources[i];
-								dropSpot = localDir.getLocation().removeLastSegments(1);
-							} 
-							if (remote[i].isContainer())
-								remote[i].copyOver(dropSpot);
-							else 
-								provider.getSimpleAccess().get(new IResource[] { providerResources[i] }, IResource.DEPTH_ONE, subMonitor);
-						}
-					}
-				} catch (TeamException e) {
-					throw new InvocationTargetException(e);
-				} finally {
-					monitor.done();
-				}
-			}
-		}, Policy.bind("ReplaceAction.problemMessage"), PROGRESS_DIALOG); //$NON-NLS-1$
-	}
-}
diff --git a/tests/org.eclipse.compare.tests/.classpath b/tests/org.eclipse.compare.tests/.classpath
deleted file mode 100644
index 344356c..0000000
--- a/tests/org.eclipse.compare.tests/.classpath
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-    <classpathentry kind="src" path="JUnit Tests"/>
-    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-    <classpathentry kind="src" path="/org.junit"/>
-    <classpathentry kind="src" path="/org.eclipse.compare"/>
-    <classpathentry kind="src" path="/org.eclipse.jface.text"/>
-    <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/tests/org.eclipse.compare.tests/.cvsignore b/tests/org.eclipse.compare.tests/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/tests/org.eclipse.compare.tests/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/tests/org.eclipse.compare.tests/.project b/tests/org.eclipse.compare.tests/.project
deleted file mode 100644
index 3ed5ca3..0000000
--- a/tests/org.eclipse.compare.tests/.project
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.compare.tests</name>
-	<comment></comment>
-	<projects>
-		<project>org.eclipse.compare</project>
-		<project>org.eclipse.jface.text</project>
-		<project>org.junit</project>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/tests/org.eclipse.compare.tests/JUnit Tests/org/eclipse/compare/tests/AllTests.java b/tests/org.eclipse.compare.tests/JUnit Tests/org/eclipse/compare/tests/AllTests.java
deleted file mode 100644
index 59bc66d..0000000
--- a/tests/org.eclipse.compare.tests/JUnit Tests/org/eclipse/compare/tests/AllTests.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Created on May 22, 2003
- *
- * To change this generated comment go to 
- * Window>Preferences>Java>Code Generation>Code Template
- */
-package org.eclipse.compare.tests;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * @author weinand
- */
-public class AllTests {
-
-	public static Test suite() {
-		TestSuite suite= new TestSuite("Test for org.eclipse.compare.tests");
-		//$JUnit-BEGIN$
-		suite.addTestSuite(DocLineComparatorTest.class);
-		//$JUnit-END$
-		return suite;
-	}
-}
diff --git a/tests/org.eclipse.compare.tests/JUnit Tests/org/eclipse/compare/tests/DocLineComparatorTest.java b/tests/org.eclipse.compare.tests/JUnit Tests/org/eclipse/compare/tests/DocLineComparatorTest.java
deleted file mode 100644
index a69c0a2..0000000
--- a/tests/org.eclipse.compare.tests/JUnit Tests/org/eclipse/compare/tests/DocLineComparatorTest.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Created on May 22, 2003
- *
- * To change this generated comment go to 
- * Window>Preferences>Java>Code Generation>Code Template
- */
-package org.eclipse.compare.tests;
-
-import junit.framework.Assert;
-import junit.framework.TestCase;
-
-import org.eclipse.compare.internal.DocLineComparator;
-import org.eclipse.compare.rangedifferencer.IRangeComparator;
-import org.eclipse.jface.text.Document;
-import org.eclipse.jface.text.IDocument;
-
-/**
- * @author weinand
- */
-public class DocLineComparatorTest extends TestCase {
-	
-	public DocLineComparatorTest(String name) {
-		super(name);
-	}
-
-	protected void setUp() throws Exception {
-	}
-
-	protected void tearDown() throws Exception {
-		super.tearDown();
-	}
-
-	public void testRangesEqual() {
-		IDocument doc1= new Document();
-		doc1.set("if (s.strip))");
-		
-		IDocument doc2= new Document();
-		doc2.set("if (s.strip)");
-		
-		IRangeComparator comp1= new DocLineComparator(doc1, null, true);
-		IRangeComparator comp2= new DocLineComparator(doc2, null, true);
-
-		Assert.assertFalse(comp1.rangesEqual(0, comp2, 0));
-	}
-
-	public void testWhitespaceAtEnd() {
-		IDocument doc1= new Document();
-		doc1.set("if (s.strip))");
-		
-		IDocument doc2= new Document();
-		doc2.set("if (s.strip))   ");
-		
-		IRangeComparator comp1= new DocLineComparator(doc1, null, true);
-		IRangeComparator comp2= new DocLineComparator(doc2, null, true);
-
-		Assert.assertTrue(comp1.rangesEqual(0, comp2, 0));
-	}
-
-	public void testEmpty() {
-		IDocument doc1= new Document();
-		doc1.set("");
-		
-		IDocument doc2= new Document();
-		doc2.set("    ");
-		
-		IRangeComparator comp1= new DocLineComparator(doc1, null, true);
-		IRangeComparator comp2= new DocLineComparator(doc2, null, true);
-
-		Assert.assertTrue(comp1.rangesEqual(0, comp2, 0));
-	}
-
-}
diff --git a/tests/org.eclipse.compare.tests/about.html b/tests/org.eclipse.compare.tests/about.html
deleted file mode 100644
index 9db411a..0000000
--- a/tests/org.eclipse.compare.tests/about.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>20th June, 2002</p>	
-<h3>License</h3>
-<p>Eclipse.org makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-Common Public License Version 1.0 (&quot;CPL&quot;).  A copy of the CPL is available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>.
-For purposes of the CPL, &quot;Program&quot; will mean the Content.</p>
-
-<h3>Contributions</h3>
-
-<p>If this Content is licensed to you under the terms and conditions of the CPL, any Contributions, as defined in the CPL, uploaded, submitted, or otherwise
-made available to Eclipse.org, members of Eclipse.org and/or the host of Eclipse.org web site, by you that relate to such
-Content are provided under the terms and conditions of the CPL and can be made available to others under the terms of the CPL.</p>
-
-<p>If this Content is licensed to you under license terms and conditions other than the CPL (&quot;Other License&quot;), any modifications, enhancements and/or
-other code and/or documentation (&quot;Modifications&quot;) uploaded, submitted, or otherwise made available to Eclipse.org, members of Eclipse.org and/or the
-host of Eclipse.org, by you that relate to such Content are provided under terms and conditions of the Other License and can be made available
-to others under the terms of the Other License.  In addition, with regard to Modifications for which you are the copyright holder, you are also
-providing the Modifications under the terms and conditions of the CPL and such Modifications can be made available to others under the terms of
-the CPL.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/tests/org.eclipse.compare.tests/build.properties b/tests/org.eclipse.compare.tests/build.properties
deleted file mode 100644
index ac724f1..0000000
--- a/tests/org.eclipse.compare.tests/build.properties
+++ /dev/null
@@ -1,15 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes= plugin.xml,\
-              test.xml,\
-              about.html,\
-              *.jar
-source.comparetests.jar= JUnit Tests/
diff --git a/tests/org.eclipse.compare.tests/plugin.properties b/tests/org.eclipse.compare.tests/plugin.properties
deleted file mode 100644
index f2c6b19..0000000
--- a/tests/org.eclipse.compare.tests/plugin.properties
+++ /dev/null
@@ -1,15 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-#
-# Resource strings for Compare Tests plugin.xml file
-#
-pluginName= Compare Tests
-providerName= Eclipse.org
\ No newline at end of file
diff --git a/tests/org.eclipse.compare.tests/plugin.xml b/tests/org.eclipse.compare.tests/plugin.xml
deleted file mode 100644
index f13ba08..0000000
--- a/tests/org.eclipse.compare.tests/plugin.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- File written by PDE 1.0 -->
-<plugin
-   id="org.eclipse.compare.tests"
-   name="%pluginName"
-   provider-name="%providerName"
-   version="3.0.0">
-
-<requires>
-   <import plugin="org.junit"/>
-   <import plugin="org.eclipse.compare"/>
-</requires>
-
-<runtime>
-    <library name="comparetests.jar">
-      <export name="*"/>
-      <packages prefixes="org.eclipse.compare.tests"/>
-    </library>
-  </runtime>
-</plugin>
diff --git a/tests/org.eclipse.compare.tests/test.xml b/tests/org.eclipse.compare.tests/test.xml
deleted file mode 100644
index 4688022..0000000
--- a/tests/org.eclipse.compare.tests/test.xml
+++ /dev/null
@@ -1,48 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<project name="testsuite" default="run" basedir=".">
-  <!-- The property ${eclipse-home} should be passed into this script -->
-  <!-- Set a meaningful default value for when it is not. -->
-  <property name="eclipse-home" value="${basedir}/../.."/>
-
-  <!-- sets the properties plugin-name, and library-file -->
-  <property name="plugin-name" value="org.eclipse.compare.tests"/>
-  <property name="library-file" value="${eclipse-home}/plugins/org.eclipse.test/library.xml"/>
-
-  <!-- This target holds all initialization code that needs to be done for -->
-  <!-- all tests that are to be run. Initialization for individual tests -->
-  <!-- should be done within the body of the suite target. -->
-  <target name="init">
-    <tstamp/>
-    <delete>
-      <fileset dir="${eclipse-home}" includes="org*.xml"/>
-    </delete>
-  </target>
-
-  <!-- This target defines the tests that need to be run. -->
-  <target name="suite">
-    <property name="compare-folder" value="${eclipse-home}/compare_folder"/>
-    <delete dir="${compare-folder}" quiet="true"/>
-    <ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
-      <property name="data-dir" value="${compare-folder}"/>
-      <property name="plugin-name" value="${plugin-name}"/>
-      <property name="classname" value="org.eclipse.compare.tests.AllTests"/>
-    </ant>
-  </target>
-
-  <!-- This target holds code to cleanup the testing environment after -->
-  <!-- after all of the tests have been run. You can use this target to -->
-  <!-- delete temporary files that have been created. -->
-  <target name="cleanup">
-  </target>
-
-  <!-- This target runs the test suite. Any actions that need to happen -->
-  <!-- after all the tests have been run should go here. -->
-  <target name="run" depends="init,suite,cleanup">
-    <ant target="collect" antfile="${library-file}" dir="${eclipse-home}">
-      <property name="includes" value="org*.xml"/>
-      <property name="output-file" value="${plugin-name}.xml"/>
-    </ant>
-  </target>
-
-</project>
diff --git a/tests/org.eclipse.team.tests.core/.classpath b/tests/org.eclipse.team.tests.core/.classpath
deleted file mode 100644
index ad5e948..0000000
--- a/tests/org.eclipse.team.tests.core/.classpath
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-    <classpathentry kind="src" path="src/"/>
-    <classpathentry kind="src" path="/org.apache.xerces"/>
-    <classpathentry kind="src" path="/org.eclipse.core.tests.harness"/>
-    <classpathentry kind="src" path="/org.eclipse.core.resources"/>
-    <classpathentry kind="src" path="/org.eclipse.team.core"/>
-    <classpathentry kind="src" path="/org.eclipse.team.ui"/>
-    <classpathentry kind="src" path="/org.eclipse.compare"/>
-    <classpathentry kind="src" path="/org.eclipse.ui"/>
-    <classpathentry kind="src" path="/org.junit"/>
-    <classpathentry kind="var" path="JRE_LIB" rootpath="JRE_SRCROOT" sourcepath="JRE_SRC"/>
-    <classpathentry kind="src" path="/org.eclipse.core.runtime"/>
-    <classpathentry kind="src" path="/org.eclipse.core.boot"/>
-    <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/tests/org.eclipse.team.tests.core/.cvsignore b/tests/org.eclipse.team.tests.core/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/tests/org.eclipse.team.tests.core/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/tests/org.eclipse.team.tests.core/.project b/tests/org.eclipse.team.tests.core/.project
deleted file mode 100644
index a332d8b..0000000
--- a/tests/org.eclipse.team.tests.core/.project
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.team.tests.core</name>
-	<comment></comment>
-	<projects>
-		<project>org.apache.xerces</project>
-		<project>org.eclipse.compare</project>
-		<project>org.eclipse.core.boot</project>
-		<project>org.eclipse.core.resources</project>
-		<project>org.eclipse.core.runtime</project>
-		<project>org.eclipse.core.tests.harness</project>
-		<project>org.eclipse.team.core</project>
-		<project>org.eclipse.team.ui</project>
-		<project>org.eclipse.ui</project>
-		<project>org.junit</project>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.PluginNature</nature>
-	</natures>
-</projectDescription>
diff --git a/tests/org.eclipse.team.tests.core/about.html b/tests/org.eclipse.team.tests.core/about.html
deleted file mode 100644
index 9db411a..0000000
--- a/tests/org.eclipse.team.tests.core/about.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>20th June, 2002</p>	
-<h3>License</h3>
-<p>Eclipse.org makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-Common Public License Version 1.0 (&quot;CPL&quot;).  A copy of the CPL is available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>.
-For purposes of the CPL, &quot;Program&quot; will mean the Content.</p>
-
-<h3>Contributions</h3>
-
-<p>If this Content is licensed to you under the terms and conditions of the CPL, any Contributions, as defined in the CPL, uploaded, submitted, or otherwise
-made available to Eclipse.org, members of Eclipse.org and/or the host of Eclipse.org web site, by you that relate to such
-Content are provided under the terms and conditions of the CPL and can be made available to others under the terms of the CPL.</p>
-
-<p>If this Content is licensed to you under license terms and conditions other than the CPL (&quot;Other License&quot;), any modifications, enhancements and/or
-other code and/or documentation (&quot;Modifications&quot;) uploaded, submitted, or otherwise made available to Eclipse.org, members of Eclipse.org and/or the
-host of Eclipse.org, by you that relate to such Content are provided under terms and conditions of the Other License and can be made available
-to others under the terms of the Other License.  In addition, with regard to Modifications for which you are the copyright holder, you are also
-providing the Modifications under the terms and conditions of the CPL and such Modifications can be made available to others under the terms of
-the CPL.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.core/build-tests.xml b/tests/org.eclipse.team.tests.core/build-tests.xml
deleted file mode 100644
index 9a16b11..0000000
--- a/tests/org.eclipse.team.tests.core/build-tests.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0"?>
-<project name="Build Team Sniff" basedir="." default="init">
-
-  <property name="root" value="${basedir}/.."/>
-  <property name="temp" value="${root}/__temp"/>
-  <property name="plugins" value="${temp}/eclipse/plugins"/>
-
-  <target name="init">
-    <tstamp/>
-
-    <delete dir="${temp}"/>
-    <mkdir dir="${plugins}"/>
-
-    <antcall target="buildPlugin">
-      <param name="pluginName" value="org.eclipse.core.tests.harness" />
-      <param name="jarName" value="testharness.jar" />
-    </antcall>
-    
-    <antcall target="buildPlugin">
-      <param name="pluginName" value="org.eclipse.team.tests.core" />
-      <param name="jarName" value="teamtests.jar" />
-    </antcall>
-
-    <zip zipfile="${basedir}/teamSniff${DSTAMP}.zip"
-       basedir="${temp}"
-    />
-
-    <delete dir="${temp}"/>
-    <eclipse.refreshLocal resource="org.eclipse.team.tests.core"/>
-  </target>
-
-  <target name="buildPlugin">
-    <copy todir="${plugins}/${pluginName}">
-      <fileset dir="${root}/${pluginName}"/>
-    </copy>
-    <jar jarfile="${plugins}/${pluginName}/${jarName}"
-         basedir="${plugins}/${pluginName}/bin"
-    />
-    <delete dir="${plugins}/${pluginName}/bin"/>
-  </target>
-
-</project>
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.core/build.properties b/tests/org.eclipse.team.tests.core/build.properties
deleted file mode 100644
index 992cef9..0000000
--- a/tests/org.eclipse.team.tests.core/build.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source.teamtests.jar=src/
-bin.includes=about.html,plugin.xml,*.jar,test.xml, ftp.properties, webdav.properties
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.core/ftp.properties b/tests/org.eclipse.team.tests.core/ftp.properties
deleted file mode 100644
index 472424e..0000000
--- a/tests/org.eclipse.team.tests.core/ftp.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-target=org.eclipse.team.ftp
-test_dir=target
-location=ftp://@host@/path
-username=@user@
-password=@password@
-connectionTimeout=6000
-passive=true
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.core/plugin.xml b/tests/org.eclipse.team.tests.core/plugin.xml
deleted file mode 100644
index 71cf6c9..0000000
--- a/tests/org.eclipse.team.tests.core/plugin.xml
+++ /dev/null
@@ -1,104 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<plugin
-   id="org.eclipse.team.tests.core"
-   name="Eclipse Team Core Tests"
-   version="2.1.0"
-   provider-name="Eclipse.org"
-   class="">
-
-   <runtime>
-      <library name="teamtests.jar">
-         <export name="*"/>
-         <packages prefixes="org.eclipse.team.tests.core"/>
-      </library>
-   </runtime>
-   <requires>
-      <import plugin="org.apache.xerces"/>
-      <import plugin="org.eclipse.core.tests.harness"/>
-      <import plugin="org.eclipse.core.resources"/>
-      <import plugin="org.eclipse.core.boot"/>
-      <import plugin="org.eclipse.team.core"/>
-      <import plugin="org.eclipse.team.cvs.core"/>
-      <import plugin="org.eclipse.team.ui"/>
-      <import plugin="org.eclipse.team.cvs.ui"/>
-      <import plugin="org.eclipse.compare"/>
-      <import plugin="org.eclipse.ui"/>
-      <import plugin="org.junit"/>
-   </requires>
-
-
-   <extension
-         point="org.eclipse.core.tests.harness.tests">
-      <test
-            id="team.all">
-         <run
-               class="org.eclipse.team.tests.core.RepositoryProviderTests">
-         </run>
-      </test>
-   </extension>
-   <extension
-         point="org.eclipse.core.tests.harness.tests">
-      <test
-            id="target.all">
-         <run
-               class="org.eclipse.team.tests.core.TargetProviderTests">
-         </run>
-      </test>
-   </extension>
-     <extension
-         point="org.eclipse.core.tests.harness.tests">
-      <test
-            id="team.ftp">
-         <run
-               class="org.eclipse.team.tests.ftp.ClientTest">
-         </run>
-      </test>
-   </extension>
-   
-	<!-- *************** Repository Providers **************** -->
-	<extension
-         point="org.eclipse.team.core.repository">
-      <repository
-      		id="org.eclipse.team.tests.core.bic-provider"
-            class="org.eclipse.team.tests.core.RepositoryProviderBic">
-      </repository>
-	</extension>
-	
-	<extension
-         point="org.eclipse.team.core.repository">
-      <repository
-      		id="org.eclipse.team.tests.core.naish-provider"
-            class="org.eclipse.team.tests.core.RepositoryProviderNaish">
-      </repository>
-	</extension>
-	
-	<!-- *************** Bad provider that is not registered **************** 
-	<extension
-         point="org.eclipse.team.core.repository">
-      <repository
-      		id="org.eclipse.team.tests.core.other"
-            class="org.eclipse.team.tests.core.RepositoryProviderOtherSport">
-      </repository>
-	</extension>
-	-->
-	
-	<extension
-         point="org.eclipse.team.core.repository">
-      <repository
-      		id="org.eclipse.team.tests.core.linking"
-            class="org.eclipse.team.tests.core.RepositoryProviderWithLinking">
-      </repository>
-	</extension>
-	
-	<!-- *************** Test application **************** -->
-   <extension
-         id="testapplication"
-         point="org.eclipse.core.runtime.applications">
-      <application>
-         <run
-               class="org.eclipse.team.tests.ftp.TestApplication">
-         </run>
-      </application>
-   </extension>
-   
-</plugin>
diff --git a/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/core/AllTargetTests.java b/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/core/AllTargetTests.java
deleted file mode 100644
index dcdd61a..0000000
--- a/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/core/AllTargetTests.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.core;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-import org.eclipse.core.tests.harness.EclipseWorkspaceTest;
-
-public class AllTargetTests extends EclipseWorkspaceTest {
-
-	/**
-	 * Constructor for AllTargetTests.
-	 */
-	public AllTargetTests() {
-		super();
-	}
-
-	/**
-	 * Constructor for AllTargetTests.
-	 * @param name
-	 */
-	public AllTargetTests(String name) {
-		super(name);
-	}
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite();
-		suite.addTest(TargetProviderTests.suite());
-		suite.addTest(RemoteResourceTests.suite());
-		suite.addTest(SyncElementTest.suite());
-		return new TargetTestSetup(suite);
-	}
-}
diff --git a/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/core/AllTeamTests.java b/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/core/AllTeamTests.java
deleted file mode 100644
index 99d1a47..0000000
--- a/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/core/AllTeamTests.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.core;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-import org.eclipse.core.tests.harness.EclipseWorkspaceTest;
-
-public class AllTeamTests extends EclipseWorkspaceTest {
-
-	/**
-	 * Constructor for CVSClientTest.
-	 */
-	public AllTeamTests() {
-		super();
-	}
-
-	/**
-	 * Constructor for CVSClientTest.
-	 * @param name
-	 */
-	public AllTeamTests(String name) {
-		super(name);
-	}
-
-	/*
-	 * ORDER IS IMPORTANT: Run compatibility and resource tests before any other!!!
-	 */
-	public static Test suite() {
-		TestSuite suite = new TestSuite();
-		suite.addTest(RepositoryProviderTests.suite());
-		suite.addTest(StreamTests.suite());
-		return suite;
-	}
-}
-
diff --git a/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/core/RemoteResourceTests.java b/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/core/RemoteResourceTests.java
deleted file mode 100644
index 8a666ba..0000000
--- a/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/core/RemoteResourceTests.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.core;
-
-import java.io.IOException;
-import java.io.InputStream;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.sync.IRemoteResource;
-import org.eclipse.team.internal.core.target.TargetProvider;
-
-/**
- * A set of test cases for org.eclipse.team.core.sync.IRemoteResource
- */
-public class RemoteResourceTests extends TeamTest {
-	public RemoteResourceTests() {
-		super();
-	}
-	public RemoteResourceTests(String name) {
-		super(name);
-	}
-	public static Test suite() {
-		TestSuite suite = new TestSuite(RemoteResourceTests.class);
-		return new TargetTestSetup(suite);
-	}
-	
-	protected IProject createAndPut(String projectPrefix, String[] resourceNames) throws CoreException, TeamException {
-		IProject project = getUniqueTestProject(projectPrefix);
-		IResource[] resources = buildResources(project, resourceNames, false);
-		TargetProvider target = createProvider(project);
-		target.put(resources, null);
-		return project;
-	}
-	 
-	public void testGetName() throws CoreException, TeamException {
-		IProject project = createAndPut("getname", new String[] { "file1.txt", "folder1/", "folder1/b.txt" });
-		TargetProvider target = getProvider(project);
-		IRemoteResource remote = target.getRemoteResource();
-		assertEquals(project.getName(), remote.getName());
-	}
-	public void testIsContainerSuccess() throws CoreException, TeamException {
-		IProject project = getUniqueTestProject("iscontainer");
-		IResource[] resources = buildResources(project, new String[] { "file1.txt", "folder1/", "folder1/b.txt" }, false);
-		TargetProvider target = createProvider(project);
-		target.put(resources, null);
-		IRemoteResource remote = target.getRemoteResource();
-		assertTrue(remote.isContainer());
-	}
-	public void testIsContainerFail() throws CoreException, TeamException {
-		IProject project = createAndPut("iscontainer", new String[] { "file1.txt", "folder1/", "folder1/b.txt" });
-		TargetProvider target = getProvider(project);
-		IRemoteResource remote = target.getRemoteResourceFor(project.getFile("file1.txt"));
-		assertTrue(!remote.isContainer());
-	}
-	public void testGetContents() throws CoreException, TeamException {
-		IProject project = createAndPut("getname", new String[] { "file1.txt", "folder1/", "folder1/b.txt" });
-		TargetProvider target = getProvider(project);
-		IRemoteResource remote = target.getRemoteResourceFor(project.getFile("file1.txt"));
-		InputStream jin = remote.getContents(DEFAULT_MONITOR);
-		try {
-			while (jin.available() > 0) {
-				jin.read();
-			}
-		} catch (IOException e) {
-			System.out.flush();
-			e.printStackTrace(System.err);
-			fail("Couldn't read from the input stream.");
-		}
-	}
-	public void testMembers() throws CoreException, TeamException {
-		IProject project = createAndPut("getname", new String[] { "file1.txt", "folder1/", "folder1/b.txt" });
-		TargetProvider target = getProvider(project);
-		IRemoteResource remote = target.getRemoteResource();
-		IRemoteResource[] altResources = remote.members(DEFAULT_MONITOR);
-		for (int i = 0; i < altResources.length; i++) {
-			assertEquals(altResources[i], project.findMember(altResources[i].getName()));
-		}
-	}
-	/**
-	 * @see TestCase#setUp()
-	 */
-	protected void setUp() throws Exception {
-		super.setUp();
-		properties=TargetTestSetup.properties;
-	}
-}
diff --git a/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/core/RepositoryProviderBic.java b/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/core/RepositoryProviderBic.java
deleted file mode 100644
index 6d5afc5..0000000
--- a/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/core/RepositoryProviderBic.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.core;
-
-import org.eclipse.core.resources.IFileModificationValidator;
-import org.eclipse.core.resources.team.IMoveDeleteHook;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.team.core.RepositoryProvider;
-
-public class RepositoryProviderBic extends RepositoryProvider {
-	
-	final public static String NATURE_ID = "org.eclipse.team.tests.core.bic-provider";
-	
-	private IMoveDeleteHook mdh;
-	private IFileModificationValidator mv;
-	
-	/*
-	 * @see RepositoryProvider#configureProject()
-	 */
-	public void configureProject() throws CoreException {
-	}
-
-	/*
-	 * @see RepositoryProvider#getID()
-	 */
-	public String getID() {
-		return NATURE_ID;
-	}
-	/*
-	 * @see IProjectNature#deconfigure()
-	 */
-	public void deconfigure() throws CoreException {
-	}
-	
-	/*
-	 * @see RepositoryProvider#getFileModificationValidator()
-	 */
-	public IFileModificationValidator getFileModificationValidator() {
-		return mv;
-	}
-
-	/*
-	 * @see RepositoryProvider#getMoveDeleteHook()
-	 */
-	public IMoveDeleteHook getMoveDeleteHook() {
-		return mdh;
-	}
-	
-	public void setModificationValidator(IFileModificationValidator mv) {
-		this.mv = mv;
-	}
-	
-	public void setMoveDeleteHook(IMoveDeleteHook mdh) {
-		this.mdh = mdh;
-	}
-}
diff --git a/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/core/RepositoryProviderNaish.java b/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/core/RepositoryProviderNaish.java
deleted file mode 100644
index c116ebe..0000000
--- a/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/core/RepositoryProviderNaish.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.core;
-
-import org.eclipse.core.resources.IFileModificationValidator;
-import org.eclipse.core.resources.team.IMoveDeleteHook;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.team.core.RepositoryProvider;
-
-public class RepositoryProviderNaish extends RepositoryProvider {
-	
-	final public static String NATURE_ID = "org.eclipse.team.tests.core.naish-provider";
-	private IMoveDeleteHook mdh;
-	private IFileModificationValidator mv;
-	/*
-	 * @see RepositoryProvider#configureProject()
-	 */
-	public void configureProject() throws CoreException {
-	}
-
-	/*
-	 * @see RepositoryProvider#getID()
-	 */
-	public String getID() {
-		return NATURE_ID;
-	}
-	/*
-	 * @see IProjectNature#deconfigure()
-	 */
-	public void deconfigure() throws CoreException {
-	}
-	
-	public void setModificationValidator(IFileModificationValidator mv) {
-		this.mv = mv;
-	}
-	
-	public void setMoveDeleteHook(IMoveDeleteHook mdh) {
-		this.mdh = mdh;
-	}
-	/*
-	 * @see RepositoryProvider#getFileModificationValidator()
-	 */
-	public IFileModificationValidator getFileModificationValidator() {
-		return mv;
-	}
-
-	/*
-	 * @see RepositoryProvider#getMoveDeleteHook()
-	 */
-	public IMoveDeleteHook getMoveDeleteHook() {
-		return mdh;
-	}
-}
diff --git a/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/core/RepositoryProviderOtherSport.java b/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/core/RepositoryProviderOtherSport.java
deleted file mode 100644
index 772fadc..0000000
--- a/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/core/RepositoryProviderOtherSport.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.core;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.team.core.RepositoryProvider;
-
-public class RepositoryProviderOtherSport extends RepositoryProvider {
-	
-	final public static String NATURE_ID = "org.eclipse.team.tests.core.other";
-
-	/*
-	 * @see RepositoryProvider#configureProject()
-	 */
-	public void configureProject() throws CoreException {
-	}
-
-	/*
-	 * @see RepositoryProvider#getID()
-	 */
-	public String getID() {
-		return NATURE_ID;
-	}
-	/*
-	 * @see IProjectNature#deconfigure()
-	 */
-	public void deconfigure() throws CoreException {
-	}
-}
diff --git a/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/core/RepositoryProviderTests.java b/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/core/RepositoryProviderTests.java
deleted file mode 100644
index baa5a63..0000000
--- a/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/core/RepositoryProviderTests.java
+++ /dev/null
@@ -1,382 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.core;
-
-import java.io.ByteArrayInputStream;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import junit.extensions.TestSetup;
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFileModificationValidator;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IProjectDescription;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceStatus;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.resources.team.IMoveDeleteHook;
-import org.eclipse.core.resources.team.IResourceTree;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.team.core.RepositoryProvider;
-import org.eclipse.team.core.TeamException;
-
-public class RepositoryProviderTests extends TeamTest {
-	public RepositoryProviderTests() {
-		super();
-	}
-	
-	public RepositoryProviderTests(String name) {
-		super(name);
-	}
-	
-	public static Test suite() {
-		TestSuite suite = new TestSuite(RepositoryProviderTests.class);
-		return new TestSetup(suite);
-		//return new testSetup(new RepositoryProviderTests("test"));
-	}
-	
-	public void testProvidersRegistered() throws CoreException, TeamException {
-		List repoProviderIds = new ArrayList(Arrays.asList(RepositoryProvider.getAllProviderTypeIds()));
-		assertEquals(true, repoProviderIds.contains(RepositoryProviderBic.NATURE_ID));
-		assertEquals(true, repoProviderIds.contains(RepositoryProviderNaish.NATURE_ID));
-		assertEquals(false, repoProviderIds.contains(RepositoryProviderOtherSport.NATURE_ID));
-	}
-	
-	public void testGetProviderGeneric() throws CoreException, TeamException {
-		IProject project = getUniqueTestProject("testGetProviderGeneric1");
-		IProject project2 = getUniqueTestProject("testGetProviderGeneric2");
-		
-		// test that adding a non registered provider doesn't work
-		boolean good = false;
-		try {
-			RepositoryProvider.map(project, RepositoryProviderOtherSport.NATURE_ID);
-		} catch (TeamException e) {
-			good = true;
-		}
-		assertTrue(good);
-		
-		// adding a valid team provider should be fine
-		RepositoryProvider.map(project, RepositoryProviderNaish.NATURE_ID);
-		RepositoryProvider.map(project2, RepositoryProviderNaish.NATURE_ID);
-		RepositoryProvider provider1 = RepositoryProvider.getProvider(project);
-		RepositoryProvider provider2 = RepositoryProvider.getProvider(project2);
-		assertTrue(provider1 != null && provider1.getID().equals(RepositoryProviderNaish.NATURE_ID));
-		assertTrue(provider2 != null && provider2.getID().equals(RepositoryProviderNaish.NATURE_ID));
-		assertTrue(provider1.getProject().equals(project) && provider2.getProject().equals(project2));
-		
-		// remapping a provider is allowed
-		RepositoryProvider.map(project, RepositoryProviderBic.NATURE_ID);	
-		provider1 = RepositoryProvider.getProvider(project);
-		assertTrue(provider1 != null && provider1.getID().equals(RepositoryProviderBic.NATURE_ID));
-				
-		// closed or non-existant projects cannot be associated with a provider
-		IProject closedProject = getUniqueTestProject("testGetProviderGenericClosed");
-		IProject nonExistantProject = ResourcesPlugin.getWorkspace().getRoot().getProject("nonExistant");
-		closedProject.close(null);
-		assertTrue(RepositoryProvider.getProvider(closedProject) == null);
-		assertTrue(RepositoryProvider.getProvider(nonExistantProject) == null);
-		
-		// removing the nature removes the provider association
-		RepositoryProvider.unmap(project);
-		RepositoryProvider.unmap(project2);
-		assertTrue(RepositoryProvider.getProvider(project)==null);
-		assertTrue(RepositoryProvider.getProvider(project2)==null);
-	}
-	
-	public void testGetProviderById() throws CoreException, TeamException {
-		IProject project1 = getUniqueTestProject("testGetProviderById_1");
-		IProject project2 = getUniqueTestProject("testGetProviderById_2");
-		
-		// adding a valid team provider should be fine
-		RepositoryProvider.map(project1, RepositoryProviderBic.NATURE_ID);
-		RepositoryProvider.map(project2, RepositoryProviderNaish.NATURE_ID);
-		assertTrue(RepositoryProvider.getProvider(project1, RepositoryProviderBic.NATURE_ID)!=null);
-		assertTrue(RepositoryProvider.getProvider(project2, RepositoryProviderNaish.NATURE_ID)!=null);
-		
-		// closed or non-existant projects cannot be associated with a provider
-		IProject closedProject = getUniqueTestProject("testGetProviderGenericClosed");
-		IProject nonExistantProject = ResourcesPlugin.getWorkspace().getRoot().getProject("nonExistant");
-		closedProject.close(null);
-		assertTrue(RepositoryProvider.getProvider(closedProject, "id") == null);
-		assertTrue(RepositoryProvider.getProvider(nonExistantProject, "id") == null);
-		
-		// removing the nature removes the provider association
-		RepositoryProvider.unmap(project1);
-		RepositoryProvider.unmap(project2);
-		assertTrue(RepositoryProvider.getProvider(project1, RepositoryProviderBic.NATURE_ID)==null);
-		assertTrue(RepositoryProvider.getProvider(project2, RepositoryProviderNaish.NATURE_ID)==null);
-	}
-	
-	public void testFileModificationValidator() throws CoreException, TeamException {
-		IProject project = getUniqueTestProject("testFileModificationValidator");
-		
-		// adding a valid team provider should be fine
-		RepositoryProvider.map(project, RepositoryProviderBic.NATURE_ID);
-		RepositoryProviderBic bicProvider = (RepositoryProviderBic)RepositoryProvider.getProvider(project, RepositoryProviderBic.NATURE_ID);
-		assertTrue(bicProvider!=null);
-		
-		// test that validator gets called by team core dispatching
-		final boolean[] called = new boolean[] {false};
-		bicProvider.setModificationValidator(new IFileModificationValidator() {
-			// can't test validate edit here because it is only called from editors
-			public IStatus validateEdit(IFile[] files, Object context) {
-				return null;
-			}
-			public IStatus validateSave(IFile file) {
-				called[0] = true;
-				return getTeamTestStatus(IStatus.OK);
-			}
-		});
-		IFile file = project.getFile("test.txt");
-		file.create(new ByteArrayInputStream("test".getBytes()), true, null);
-		file.setContents(new ByteArrayInputStream("test2".getBytes()), true, false, null);
-		assertTrue(called[0] == true);
-		
-		// test that validator can veto a setContents
-		called[0] = false;
-		bicProvider.setModificationValidator(new IFileModificationValidator() {
-			// can't test validate edit here because it is only called from editors
-			public IStatus validateEdit(IFile[] files, Object context) {
-				return null;
-			}
-			public IStatus validateSave(IFile file) {
-				called[0] = true;
-				return getTeamTestStatus(IStatus.ERROR);
-			}
-		});
-		try {
-			file.setContents(new ByteArrayInputStream("test3".getBytes()), true, false, null);
-			fail("validate hook should veto this setContents");
-		} catch(CoreException e) {
-			assertTrue(called[0] == true);
-		}
-		
-		// test that default validator allows the modification
-		bicProvider.setModificationValidator(null);
-		file.setContents(new ByteArrayInputStream("test4".getBytes()), true, false, null);	
-	}
-	
-	public void testMoveDeleteHook() throws CoreException, TeamException {
-		final IProject project = getUniqueTestProject("testMoveDeleteHook");
-		
-		// adding a valid team provider should be fine
-		RepositoryProvider.map(project, RepositoryProviderBic.NATURE_ID);
-		RepositoryProviderBic bicProvider = (RepositoryProviderBic)RepositoryProvider.getProvider(project, RepositoryProviderBic.NATURE_ID);
-		assertTrue(bicProvider!=null);
-		
-		// only testing that dispatching works, resources plugin is testing the rest of the API
-		final boolean[] called = new boolean[] {false, false, false, false, false, false};
-		IMoveDeleteHook hook = new IMoveDeleteHook() {
-			public boolean deleteFile(IResourceTree tree,	IFile file,	int updateFlags, IProgressMonitor monitor) {
-				called[0] = true;
-				return false;
-			}
-			public boolean deleteFolder(IResourceTree tree, IFolder folder, int updateFlags, IProgressMonitor monitor) {
-				called[1] = true;
-				return false;
-			}
-			public boolean deleteProject(IResourceTree tree, IProject project, int updateFlags, IProgressMonitor monitor) {
-				called[2] = true;
-				return false;
-			}
-			public boolean moveFile(IResourceTree tree, IFile source, IFile destination, int updateFlags, IProgressMonitor monitor) {
-				called[3] = true;
-				return false;
-			}
-			public boolean moveFolder(IResourceTree tree,	IFolder source,	IFolder destination, int updateFlags, IProgressMonitor monitor) {
-				called[4] = true;
-				return false;
-			}
-			public boolean moveProject(IResourceTree tree, IProject source, IProjectDescription description, int updateFlags, IProgressMonitor monitor) {
-				called[5] = true;
-				return false;
-			}
-		};
-		bicProvider.setMoveDeleteHook(hook);
-		
-		IResource[] resources = buildResources(project, new String[] {"deleteFile.txt", "moveFile.txt", "deletedFolder/", "moveFolder/"});
-		ensureExistsInWorkspace(resources, true);
-		resources[0].delete(false, null);
-		resources[1].move(resources[1].getFullPath().removeLastSegments(1).append("movedFile_NEW"), false, null);
-		resources[2].delete(false, null);
-		resources[3].move(resources[3].getFullPath().removeLastSegments(1).append("movedFolder"), false, null);
-		// moving using the description allows the moved project to have natures ids or origination
-		IProjectDescription desc = project.getDescription();
-		desc.setName("movedProject");
-		project.move(desc, false, null);
-		IProject newProject = ResourcesPlugin.getWorkspace().getRoot().getProject("movedProject");
-		bicProvider = (RepositoryProviderBic)RepositoryProvider.getProvider(newProject);
-		bicProvider.setMoveDeleteHook(hook);
-		newProject.delete(true, null);
-		for (int i = 0; i < called.length; i++) {
-			assertTrue(called[i]);
-		}
-	}
-	
-	public void testMoveDeleteHookBetweenProjects() throws CoreException, TeamException {
-		final IProject projectA = getUniqueTestProject("testMoveDeleteHookBetweenProjects_A");
-		final IProject projectB = getUniqueTestProject("testMoveDeleteHookBetweenProjects_B");
-		final IProject projectC = getUniqueTestProject("testMoveDeleteHookBetweenProjects_C");
-		
-		// adding a valid team provider should be fine
-		RepositoryProvider.map(projectA, RepositoryProviderBic.NATURE_ID);
-		final RepositoryProviderBic bicProvider = (RepositoryProviderBic)RepositoryProvider.getProvider(projectA, RepositoryProviderBic.NATURE_ID);
-		RepositoryProvider.map(projectB, RepositoryProviderNaish.NATURE_ID);
-		final RepositoryProviderNaish naishProvider = (RepositoryProviderNaish)RepositoryProvider.getProvider(projectB, RepositoryProviderNaish.NATURE_ID);
-		assertTrue(bicProvider!=null && naishProvider!=null);
-		
-		// only testing that dispatching works, resources plugin is testing the rest of the API
-		final boolean[] calledProjectA = new boolean[] {false, false};
-		bicProvider.setMoveDeleteHook(new IMoveDeleteHook() {
-			public boolean deleteFile(IResourceTree tree,	IFile file,	int updateFlags, IProgressMonitor monitor) {
-				return false;
-			}
-			public boolean deleteFolder(IResourceTree tree, IFolder folder, int updateFlags, IProgressMonitor monitor) {
-				return false;
-			}
-			public boolean deleteProject(IResourceTree tree, IProject project, int updateFlags, IProgressMonitor monitor) {				
-				return false;
-			}
-			public boolean moveFile(IResourceTree tree, IFile source, IFile destination, int updateFlags, IProgressMonitor monitor) {
-				assertTrue(bicProvider.getProject().equals(source.getProject()));
-				calledProjectA[0] = true;
-				return false;
-			}
-			public boolean moveFolder(IResourceTree tree,	IFolder source,	IFolder destination, int updateFlags, IProgressMonitor monitor) {
-				assertTrue(bicProvider.getProject().equals(source.getProject()));
-				calledProjectA[1] = true;
-				return false;
-			}
-			public boolean moveProject(IResourceTree tree, IProject source, IProjectDescription description, int updateFlags, IProgressMonitor monitor) {
-				return false;
-			}
-		});
-		
-		final boolean[] calledProjectB = new boolean[] {false, false};
-		naishProvider.setMoveDeleteHook(new IMoveDeleteHook() {
-			public boolean deleteFile(IResourceTree tree,	IFile file,	int updateFlags, IProgressMonitor monitor) {
-				return false;
-			}
-			public boolean deleteFolder(IResourceTree tree, IFolder folder, int updateFlags, IProgressMonitor monitor) {
-				return false;
-			}
-			public boolean deleteProject(IResourceTree tree, IProject project, int updateFlags, IProgressMonitor monitor) {				
-				return false;
-			}
-			public boolean moveFile(IResourceTree tree, IFile source, IFile destination, int updateFlags, IProgressMonitor monitor) {
-				assertTrue(bicProvider.getProject().equals(destination.getProject()));
-				calledProjectB[0] = true;
-				return false;
-			}
-			public boolean moveFolder(IResourceTree tree, IFolder source,	IFolder destination, int updateFlags, IProgressMonitor monitor) {
-				assertTrue(bicProvider.getProject().equals(destination.getProject()));
-				calledProjectB[1] = true;
-				return false;
-			}
-			public boolean moveProject(IResourceTree tree, IProject source, IProjectDescription description, int updateFlags, IProgressMonitor monitor) {
-				return false;
-			}
-		});
-		
-		// test that moving files/folders between two projects with providers calls the destination
-		IResource[] resources = buildResources(projectA, new String[] {"moveFile.txt", "moveFolder/"});
-		ensureExistsInWorkspace(resources, true);
-		resources[0].move(projectB.getFullPath().append("moveFile_new.txt"), false, null);
-		resources[1].move(projectB.getFullPath().append("movedFolder"), false, null);
-		for (int i = 0; i < calledProjectA.length; i++) {
-			assertTrue(calledProjectA[i]  && calledProjectB[i]==false);
-		}
-		
-		// test that moving files/folders from a project with a provider to a project without a provider calls the
-		// hooks for the source
-		calledProjectA[0] = false; calledProjectA[1] = false;
-		calledProjectB[0] = false; calledProjectB[1] = false;
-		resources = buildResources(projectA, new String[] {"anotherMovedFiled.txt", "anotherMovedFolder/"});
-		ensureExistsInWorkspace(resources, true);
-		resources[0].move(projectC.getFullPath().append("moveFileOther_new.txt"), false, null);
-		resources[1].move(projectC.getFullPath().append("movedFolderOther"), false, null);
-		for (int i = 0; i < calledProjectA.length; i++) {
-			assertTrue(calledProjectA[i] && calledProjectB[i]==false);
-		}
-	}
-	
-	public void testMapSuccess() throws CoreException, TeamException {
-		IProject project = getUniqueTestProject("testLinkSuccess");
-		buildResources(project, new String[] { "changed.txt", "deleted.txt", "folder1/", "folder1/a.txt" }, true);
-		IFolder folder = project.getFolder("link");
-		folder.createLink(getRandomLocation(), IResource.ALLOW_MISSING_LOCAL, null);
-		RepositoryProviderWithLinking.setCanHandleLinking(true);
-		RepositoryProvider.map(project, RepositoryProviderWithLinking.TYPE_ID);
-	}
-	
-	public void testLinkSuccess() throws CoreException, TeamException {
-		IProject project = getUniqueTestProject("testLinkSuccess");
-		buildResources(project, new String[] { "changed.txt", "deleted.txt", "folder1/", "folder1/a.txt" }, true);
-		RepositoryProviderWithLinking.setCanHandleLinking(true);
-		RepositoryProvider.map(project, RepositoryProviderWithLinking.TYPE_ID);
-		IFolder folder = project.getFolder("link");
-		folder.createLink(getRandomLocation(), IResource.ALLOW_MISSING_LOCAL, null);
-	}
-
-	public void testMapFailure() throws CoreException, TeamException {
-		IProject project = getUniqueTestProject("testLinkSuccess");
-		buildResources(project, new String[] { "changed.txt", "deleted.txt", "folder1/", "folder1/a.txt" }, true);
-		IFolder folder = project.getFolder("link");
-		folder.createLink(getRandomLocation(), IResource.ALLOW_MISSING_LOCAL, null);
-		try {
-			RepositoryProviderWithLinking.setCanHandleLinking(false);
-			RepositoryProvider.map(project, RepositoryProviderWithLinking.TYPE_ID);
-		} catch (TeamException e) {
-			if (e.getStatus().getCode() != IResourceStatus.LINKING_NOT_ALLOWED) {
-				throw e;
-			}
-			return;
-		}
-		fail("Link should be disallowed");
-	}
-
-	public void testLinkFailure() throws CoreException, TeamException {
-		IProject project = getUniqueTestProject("testLinkSuccess");
-		buildResources(project, new String[] { "changed.txt", "deleted.txt", "folder1/", "folder1/a.txt" }, true);
-		RepositoryProviderWithLinking.setCanHandleLinking(false);
-		RepositoryProvider.map(project, RepositoryProviderWithLinking.TYPE_ID);
-		IFolder folder = project.getFolder("link");
-		try {
-			folder.createLink(getRandomLocation(), IResource.ALLOW_MISSING_LOCAL, null);
-		} catch (CoreException e) {
-			if (e.getStatus().getCode() != IResourceStatus.LINKING_NOT_ALLOWED) {
-				throw e;
-			}
-			return;
-		}
-		fail("Link should be disallowed");
-	}
-	
-	public void testIsShared() throws CoreException, TeamException {
-		IProject project1 = getUniqueTestProject("testGetProviderById_1");
-		RepositoryProvider.map(project1, RepositoryProviderBic.NATURE_ID);
-		assertTrue(RepositoryProvider.isShared(project1));
-		project1.close(null);
-		assertTrue(!RepositoryProvider.isShared(project1));
-		project1.open(null);
-		assertTrue(RepositoryProvider.isShared(project1));
-		RepositoryProvider.unmap(project1);
-		assertTrue(!RepositoryProvider.isShared(project1));
-	}
-	
-}
diff --git a/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/core/RepositoryProviderTypeBic.java b/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/core/RepositoryProviderTypeBic.java
deleted file mode 100644
index 21c238e..0000000
--- a/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/core/RepositoryProviderTypeBic.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.core;
-
-import java.io.File;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.team.core.ProjectSetCapability;
-import org.eclipse.team.core.RepositoryProviderType;
-import org.eclipse.team.core.TeamException;
-
-public class RepositoryProviderTypeBic extends RepositoryProviderType {
-	File createdFile;
-	/**
-	 * @see org.eclipse.team.core.RepositoryProviderType#getProjectSetCapability()
-	 */
-	public ProjectSetCapability getProjectSetCapability() {
-		return new ProjectSetCapability() {
-			public IProject[] addToWorkspace(
-				String[] referenceStrings,
-				String filename,
-				IPath root,
-				Object context,
-				IProgressMonitor monitor)
-				throws TeamException {
-				return null;
-			}
-
-			public void projectSetCreated(
-				File file,
-				IProgressMonitor monitor) {
-					
-				createdFile = file;
-			}
-		};
-	}
-
-	/**
-	 * @return File
-	 */
-	public File getCreatedFile() {
-		return createdFile;
-	}
-
-	/**
-	 * Sets the createdFile.
-	 * @param createdFile The createdFile to set
-	 */
-	public void setCreatedFile(File createdFile) {
-		this.createdFile = createdFile;
-	}
-
-}
diff --git a/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/core/RepositoryProviderWithLinking.java b/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/core/RepositoryProviderWithLinking.java
deleted file mode 100644
index fc5f34b..0000000
--- a/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/core/RepositoryProviderWithLinking.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.core;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.team.core.RepositoryProvider;
-
-/**
- * This class is used to text resource linking
- */
-public class RepositoryProviderWithLinking extends RepositoryProvider {
-	
-	final public static String TYPE_ID = "org.eclipse.team.tests.core.linking";
-	
-	private static boolean canHandleLinking = false;
-	
-	/**
-	 * @see org.eclipse.team.core.RepositoryProvider#configureProject()
-	 */
-	public void configureProject() throws CoreException {
-	}
-	/**
-	 * @see org.eclipse.team.core.RepositoryProvider#getID()
-	 */
-	public String getID() {
-		return TYPE_ID;
-	}
-	/**
-	 * @see org.eclipse.core.resources.IProjectNature#deconfigure()
-	 */
-	public void deconfigure() throws CoreException {
-	}
-
-	/**
-	 * Sets the canHandleLinking.
-	 * @param canHandleLinking The canHandleLinking to set
-	 */
-	public static void setCanHandleLinking(boolean canHandleLinking) {
-		RepositoryProviderWithLinking.canHandleLinking = canHandleLinking;
-	}
-
-	/**
-	 * @see org.eclipse.team.core.RepositoryProvider#canHandleLinkedResources()
-	 */
-	public boolean canHandleLinkedResources() {
-		return canHandleLinking;
-	}
-
-}
diff --git a/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/core/StreamTests.java b/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/core/StreamTests.java
deleted file mode 100644
index b7fcc06..0000000
--- a/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/core/StreamTests.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.core;
-
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-import org.eclipse.team.internal.core.streams.CRLFtoLFInputStream;
-import org.eclipse.team.internal.core.streams.LFtoCRLFInputStream;
-
-public class StreamTests extends TestCase {
-	private static final byte[] EMPTY_SEQ = new byte[] { };
-	private static final byte[] LF_SEQ = new byte[] { '\n' };
-	private static final byte[] CRLF_SEQ = new byte[] { '\r', '\n' };
-
-	public StreamTests(String name) {
-		super(name);
-	}
-
-	public static Test suite() {
-		return new TestSuite(StreamTests.class);
-	}
-
-	public void testCRLFtoLFInputStream() throws IOException {
-		testCRLFtoLFTranslation("", "");
-		testCRLFtoLFTranslation("a", "a");
-		testCRLFtoLFTranslation("abc", "abc");
-		testCRLFtoLFTranslation("\n", "\n");
-		testCRLFtoLFTranslation("\r", "\r");
-		testCRLFtoLFTranslation("\r\n", "\n");
-		testCRLFtoLFTranslation("x\r\r\n\rx", "x\r\n\rx");
-		testCRLFtoLFTranslation("The \r\n quick brown \n fox \r\n\n\r\r\n jumped \n\n over \r\n the \n lazy dog.\r\n",
-			"The \n quick brown \n fox \n\n\r\n jumped \n\n over \n the \n lazy dog.\n");
-	}
-
-	private void testCRLFtoLFTranslation(String pre, String post) throws IOException {
-		ByteArrayInputStream bin = new ByteArrayInputStream(pre.getBytes());
-		InputStream in = new CRLFtoLFInputStream(bin);
-		InputStream inExpected = new ByteArrayInputStream(post.getBytes());
-		assertStreamEquals(inExpected, in);
-	}
-
-	public void testLFtoCRLFInputStream() throws IOException {
-		testLFtoCRLFTranslation("", "");
-		testLFtoCRLFTranslation("a", "a");
-		testLFtoCRLFTranslation("abc", "abc");
-		testLFtoCRLFTranslation("\n", "\r\n");
-		testLFtoCRLFTranslation("\r", "\r");
-		testLFtoCRLFTranslation("\r\n", "\r\r\n");
-		testLFtoCRLFTranslation("x\r\r\n\rx", "x\r\r\r\n\rx");
-		testLFtoCRLFTranslation("The \r\n quick brown \n fox \r\n\n\r\r\n jumped \n\n over \r\n the \n lazy dog.\r\n",
-			"The \r\r\n quick brown \r\n fox \r\r\n\r\n\r\r\r\n jumped \r\n\r\n over \r\r\n the \r\n lazy dog.\r\r\n");
-	}
-	
-	private void testLFtoCRLFTranslation(String pre, String post) throws IOException {
-		ByteArrayInputStream bin = new ByteArrayInputStream(pre.getBytes());
-		InputStream in = new LFtoCRLFInputStream(bin);
-		InputStream inExpected = new ByteArrayInputStream(post.getBytes());
-		assertStreamEquals(inExpected, in);
-	}
-
-	private void assertStreamEquals(InputStream in1, InputStream in2) throws IOException {
-		try {
-			for (;;) {
-				int byte1 = in1.read();
-				int byte2 = in2.read();
-				assertEquals("Streams not equal", byte1, byte2);
-				if (byte1 == -1) break;
-			}
-		} finally {
-			in1.close();
-			in2.close();
-		}
-	}
-}
diff --git a/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/core/SyncElementTest.java b/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/core/SyncElementTest.java
deleted file mode 100644
index 756159d..0000000
--- a/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/core/SyncElementTest.java
+++ /dev/null
@@ -1,707 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.core;
-
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-
-import junit.framework.AssertionFailedError;
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IProjectDescription;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.sync.ILocalSyncElement;
-import org.eclipse.team.core.sync.IRemoteSyncElement;
-import org.eclipse.team.core.sync.RemoteSyncElement;
-import org.eclipse.team.internal.core.target.TargetManager;
-import org.eclipse.team.internal.core.target.TargetProvider;
-import org.eclipse.team.internal.core.target.UrlUtil;
-
-public class SyncElementTest extends TeamTest {
-	/*
-	 * Constructor for SyncElementTest.
-	 */
-	public SyncElementTest() {
-		super();
-	}
-
-	/*
-	 * Constructor for SyncElementTest.
-	 * @param name
-	 */
-	public SyncElementTest(String name) {
-		super(name);
-	}
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(SyncElementTest.class);
-		return new TargetTestSetup(suite);
-		//return new CVSTestSetup(new SyncElementTest("testAdditionConflicts"));
-	}
-	/*
-	 * Get the child in the sync tree
-	 */
-	protected ILocalSyncElement getChild(ILocalSyncElement tree, IPath path) throws TeamException {
-		if (path.segmentCount() == 0)
-			return tree;
-		ILocalSyncElement[] children = tree.members(DEFAULT_MONITOR);
-		for (int i = 0; i < children.length; i++) {
-			if (children[i].getName().equals(path.segment(0)))
-				return getChild(children[i], path.removeFirstSegments(1));
-		}
-		assertTrue("Child " + path.toString() + " does not exist", false);
-		return null;
-	}
-
-	/*
-	 * Assert that the specified resources in the tree have the specified sync kind
-	 * Ignore conflict types if they are not specified in the assert statement
-	 */
-	public void assertSyncEquals(String message, ILocalSyncElement tree, String[] resources, int[] syncKinds, int granularity)
-		throws TeamException {
-		assertTrue(resources.length == syncKinds.length);
-		for (int i = 0; i < resources.length; i++) {
-			int conflictTypeMask = 0x0F; // ignore manual and auto merge sync types for now.
-			ILocalSyncElement child = getChild(tree, new Path(resources[i]));
-			int kind = child.getSyncKind(granularity, DEFAULT_MONITOR) & conflictTypeMask;
-			int kindOther = syncKinds[i] & conflictTypeMask;
-			assertTrue(
-				message
-					+ ": improper sync state for "
-					+ resources[i]
-					+ " expected "
-					+ RemoteSyncElement.kindToString(kindOther)
-					+ " but was "
-					+ RemoteSyncElement.kindToString(kind),
-				kind == kindOther);
-		}
-	}
-
-	public void assertSyncEquals(String message, ILocalSyncElement tree, String[] resources, int[] syncKinds) throws TeamException {
-		assertSyncEquals(message, tree, resources, syncKinds, ILocalSyncElement.GRANULARITY_TIMESTAMP);
-	}
-
-	/* 
-	 * Assert that the named resources have no local resource or sync info
-	 */
-	public void assertDeleted(String message, IRemoteSyncElement tree, String[] resources) throws CoreException, TeamException {
-		for (int i = 0; i < resources.length; i++) {
-			try {
-				getChild(tree, new Path(resources[i]));
-			} catch (AssertionFailedError e) {
-				break;
-			}
-			assertTrue(message + ": resource " + resources[i] + " still exists in some form", false);
-		}
-	}
-
-	IRemoteSyncElement getRemoteSyncTree(IProject project, IProgressMonitor monitor) throws TeamException {
-		return getProvider(project).getRemoteSyncElement(project);
-	}
-	protected IProject checkoutCopy(IProject project, String postfix) throws CoreException,TeamException {
-		TargetProvider provider = getProvider(project);
-		IProject result = getUniqueTestProject(project.getName()+postfix);
-		TargetManager.map(result, provider.getSite(), UrlUtil.getTrailingPath(provider.getURL(), provider.getSite().getURL()));
-		TargetProvider target = TargetManager.getProvider(result);
-		target.get(new IResource[] { result }, null);
-		return result;
-	}
-	protected void getResourcesFromTarget(IProject project, String[] resourceNames)throws TeamException,CoreException {
-		TargetProvider provider=getProvider(project);
-		IResource[] resources=getResources(project,resourceNames);
-		provider.get(resources,null);
-	}
-	protected void putResourcesOntoTarget(IProject project, String[] resourceNames)throws TeamException,CoreException {
-		TargetProvider provider=getProvider(project);
-		IResource[] resources=getResources(project,resourceNames);
-		provider.put(resources,null);
-	}
-	/**
-	 * Add the resources to an existing container and optionally upload them to the remote server
-	 */
-	public IResource[] addResources(IProject container, String[] hierarchy, boolean checkin) throws CoreException, TeamException {
-		IResource[] newResources = buildResources(container, hierarchy, false);
-		if (checkin) getProvider(container).put(newResources, DEFAULT_MONITOR);
-		return newResources;
-	}
-	/**
-	 * Delete the resources from an existing container and optionally add the changes to the remote server
-	 */
-	public IResource[] deleteResources(IProject container, String[] hierarchy, boolean checkin) throws CoreException, TeamException {
-		IResource[] resources = getResources(container, hierarchy);
-		for (int i = 0; i < resources.length; i++) {
-			resources[0].delete(true, null);
-		}
-		if (checkin) getProvider(container).put(resources, DEFAULT_MONITOR);
-		return resources;
-	}
-	/*
-	 * Perform a simple test that checks for the different types of incoming changes
-	 */
-	public void testIncomingChanges() throws TeamException, CoreException, IOException {
-		// Create a test project
-		IProject project = createAndPut("testIncomingChanges", new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder1/b.txt" });
-
-		// Checkout and modify a copy
-		IProject copy = checkoutCopy(project, "-copy");
-		IFile file = copy.getFile("folder1/a.txt");
-		sleep(1500); // Wait so that timestamp of modified file differs from original
-		file.setContents(new ByteArrayInputStream("This will be different".getBytes()), false, false, null);
-		addResources(copy, new String[] { "folder2/folder3/add.txt" }, false);
-		deleteResources(copy, new String[] { "folder1/b.txt" }, false);
-		sleep(1500); // Wait so that timestamp of modified file differs from original
-		putResourcesOntoTarget(copy,new String[] { "folder1/a.txt","folder2/folder3/add.txt","folder1/b.txt" });
-
-		// Get the sync tree for the project
-		IRemoteSyncElement tree = getRemoteSyncTree(project, DEFAULT_MONITOR);
-		assertSyncEquals(
-			"testIncomingChanges",
-			tree,
-			new String[] {
-				"file1.txt",
-				"folder1/",
-				"folder1/a.txt",
-				"folder1/b.txt",
-				"folder2/",
-				"folder2/folder3/",
-				"folder2/folder3/add.txt" },
-			new int[] {
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.INCOMING | IRemoteSyncElement.CHANGE,
-				IRemoteSyncElement.INCOMING | IRemoteSyncElement.DELETION,
-				IRemoteSyncElement.INCOMING | IRemoteSyncElement.ADDITION,
-				IRemoteSyncElement.INCOMING | IRemoteSyncElement.ADDITION,
-				IRemoteSyncElement.INCOMING | IRemoteSyncElement.ADDITION });
-
-		// Verify that we are in sync (except for "folder1/b.txt", which was deleted)
-		getResourcesFromTarget(project, 
-			new String[] {
-				"file1.txt",
-				"folder1/",
-				"folder1/a.txt",
-				"folder1/b.txt",
-				"folder2/",
-				"folder2/folder3/",
-				"folder2/folder3/add.txt" });
-		tree = getRemoteSyncTree(project, DEFAULT_MONITOR);
-		assertSyncEquals(
-			"testIncomingChanges",
-			tree,
-			new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder2/", "folder2/folder3/", "folder2/folder3/add.txt" },
-			new int[] {
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.IN_SYNC });
-
-		// Ensure "folder1/b.txt" was deleted
-		assertDeleted("testIncomingChanges", tree, new String[] { "folder1/b.txt" });
-
-		// Verify that the copy equals the original
-		assertEquals(project, copy);
-	}
-
-	/*
-	 * Perform a simple test that checks for the different types of outgoing changes
-	 */
-	public void testOutgoingChanges() throws TeamException, CoreException {
-		// Create a test project (which commits it as well)
-		IProject project = createAndPut("testIncomingChanges", new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder1/b.txt" });
-
-		// Make some modifications
-		IFile file = project.getFile("folder1/a.txt");
-		sleep(1500); // Wait so that timestamp of modified file differs from original
-		file.setContents(getRandomContents(), false, false, null);
-		addResources(project, new String[] { "folder2/folder3/add.txt" }, false);
-		deleteResources(project, new String[] { "folder1/b.txt" }, false);
-
-		// Get the sync tree for the project
-		IRemoteSyncElement tree = getRemoteSyncTree(project, DEFAULT_MONITOR);
-		assertSyncEquals(
-			"testOutgoingChanges",
-			tree,
-			new String[] {
-				"file1.txt",
-				"folder1/",
-				"folder1/a.txt",
-				"folder1/b.txt",
-				"folder2/",
-				"folder2/folder3/",
-				"folder2/folder3/add.txt" },
-			new int[] {
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.OUTGOING | IRemoteSyncElement.CHANGE,
-				IRemoteSyncElement.OUTGOING | IRemoteSyncElement.DELETION,
-				IRemoteSyncElement.OUTGOING | IRemoteSyncElement.ADDITION,
-				IRemoteSyncElement.OUTGOING | IRemoteSyncElement.ADDITION,
-				IRemoteSyncElement.OUTGOING | IRemoteSyncElement.ADDITION });
-
-		// Commit the changes
-		putResourcesOntoTarget(project, new String[] { "folder1/a.txt", "folder1/b.txt", "folder2/folder3/add.txt" });
-
-		// Ensure we're in sync
-		tree = getRemoteSyncTree(project, DEFAULT_MONITOR);
-		assertSyncEquals(
-			"testOutgoingChanges",
-			tree,
-			new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder2/", "folder2/folder3/", "folder2/folder3/add.txt" },
-			new int[] {
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.IN_SYNC });
-
-		// Ensure deleted resource "folder1/b.txt" no longer exists
-		assertDeleted("testOutgoingChanges", tree, new String[] { "folder1/b.txt" });
-	}
-
-		/*
-	 * Test simple file conflicts
-	 */
-	public void testFileConflict() throws TeamException, CoreException, IOException {
-		// Create a test project (which commits it as well)
-		IProject project = createAndPut("testFileConflict", new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder1/b.txt" });
-
-		// Checkout a copy and make some modifications
-		IProject copy = checkoutCopy(project, "-copy");
-		IFile file = copy.getFile("file1.txt");
-		sleep(1500); // Wait so that timestamp of modified file differs from original
-		appendText(file, "prefix\n", true);
-		file = copy.getFile("folder1/a.txt");
-		file.setContents(new ByteArrayInputStream("Use a custom string to avoid intermitant errors!".getBytes()), false, false, null);
-		getProvider(copy).put(new IResource[] { copy }, DEFAULT_MONITOR);
-
-		// Make the same modifications to the original (We need to test both M and C!!!)
-		file = project.getFile("file1.txt");
-		sleep(1500); // Wait so that timestamp of modified file differs from original
-		appendText(file, "\npostfix", false); // This will test merges (M)
-		file = project.getFile("folder1/a.txt");
-		sleep(1500); // Wait so that timestamp of modified file differs from original
-		file.setContents(getRandomContents(), false, false, null); // This will test conflicts (C)
-
-		// Get the sync tree for the project
-		IRemoteSyncElement tree = getRemoteSyncTree(project, DEFAULT_MONITOR);
-		assertSyncEquals(
-			"testFileConflict",
-			tree,
-			new String[] { "file1.txt", "folder1/", "folder1/a.txt" },
-			new int[] {
-				IRemoteSyncElement.CONFLICTING | IRemoteSyncElement.CHANGE,
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.CONFLICTING | IRemoteSyncElement.CHANGE });
-
-		// Catch up to the file1.txt conflict using UPDATE with ignoreLocalChanges
-		getResourcesFromTarget(project, new String[] { "file1.txt" });
-		tree = getRemoteSyncTree(project, DEFAULT_MONITOR);
-		assertSyncEquals(
-			"testFileConflict",
-			tree,
-			new String[] { "file1.txt", "folder1/", "folder1/a.txt" },
-			new int[] {
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.CONFLICTING | IRemoteSyncElement.CHANGE });
-
-		// Release the folder1/a.txt conflict uploading
-		getProvider(project).put(new IResource[] { project.getFile("folder1/a.txt")}, DEFAULT_MONITOR);
-		tree = getRemoteSyncTree(project, DEFAULT_MONITOR);
-		assertSyncEquals(
-			"testFileConflict",
-			tree,
-			new String[] { "file1.txt", "folder1/", "folder1/a.txt" },
-			new int[] { IRemoteSyncElement.IN_SYNC, IRemoteSyncElement.IN_SYNC, IRemoteSyncElement.IN_SYNC });
-	}
-
-	/*
-	 * Test conflicts involving additions
-	 */
-	public void testAdditionConflicts() throws TeamException, CoreException {
-		// CASE 1: The user adds (using CVS add) a remotely added file
-		//     (a) catchup is simply get?
-		//     (b) release must do a merge
-		// CASE 2: The user adds (but not using cvs add) a remotely added file
-		//     (a) catchup is simply get?
-		//     (b) release must do a merge
-		// CASE 3: The user adds a remotely added then deleted file
-		//     catchup is not applicable
-		//     release is normal
-
-		// Create a test project (which commits it as well) and add an uncommited resource
-		IProject project = createAndPut("testAdditionConflicts", new String[] { "file.txt" });
-		addResources(project, new String[] { "add1a.txt", "add1b.txt" }, false);
-		addResources(project, new String[] { "add3.txt" }, false);
-		buildResources(project, new String[] { "add2a.txt", "add2b.txt" }, false); //useless code!???
-
-		// Checkout a copy, add the same resource and commit
-		IProject copy = checkoutCopy(project, "-copy");
-		addResources(copy, new String[] { "add1a.txt", "add1b.txt", "add2a.txt", "add2b.txt", "add3.txt" }, true);
-		deleteResources(copy, new String[] { "add3.txt" }, true);
-
-		// Get the sync tree for the project
-		IRemoteSyncElement tree = getRemoteSyncTree(project, DEFAULT_MONITOR);
-		assertSyncEquals(
-			"testAdditionConflicts",
-			tree,
-			new String[] { "file.txt", "add1a.txt", "add1b.txt", "add2a.txt", "add2b.txt", "add3.txt" },
-			new int[] {
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.CONFLICTING | IRemoteSyncElement.CHANGE,
-				IRemoteSyncElement.CONFLICTING | IRemoteSyncElement.CHANGE,
-				IRemoteSyncElement.CONFLICTING | IRemoteSyncElement.CHANGE,
-				IRemoteSyncElement.CONFLICTING | IRemoteSyncElement.CHANGE,
-				IRemoteSyncElement.OUTGOING | IRemoteSyncElement.ADDITION });
-
-		getProvider(project).put(
-			new IResource[] { project.getFile("add1b.txt"), project.getFile("add2b.txt"), project.getFile("add3.txt")},
-			DEFAULT_MONITOR);
-		tree = getRemoteSyncTree(project, DEFAULT_MONITOR);
-		assertSyncEquals(
-			"testAdditionConflicts",
-			tree,
-			new String[] { "file.txt", "add1b.txt", "add2b.txt", "add3.txt" },
-			new int[] { IRemoteSyncElement.IN_SYNC, IRemoteSyncElement.IN_SYNC, IRemoteSyncElement.IN_SYNC, IRemoteSyncElement.IN_SYNC });
-
-		IFile file = project.getFile("add1a.txt");
-		file.delete(false, DEFAULT_MONITOR);
-		file = project.getFile("add2a.txt");
-		file.delete(false, DEFAULT_MONITOR);
-		getResourcesFromTarget(project, new String[] { "add1a.txt","add2a.txt" });//This replaces the chunk commented out below:
-		/*getProvider(project).update(
-			new IResource[] { project.getFile("add1a.txt"), project.getFile("add2a.txt")},
-			new Command.LocalOption[] { Command.DO_NOT_RECURSE },
-			null,
-			true,	//createBackups
-			DEFAULT_MONITOR
-		);*/
-		tree = getRemoteSyncTree(project, DEFAULT_MONITOR);
-		assertSyncEquals(
-			"testAdditionConflicts",
-			tree,
-			new String[] { "add1a.txt", "add2a.txt" },
-			new int[] { IRemoteSyncElement.IN_SYNC, IRemoteSyncElement.IN_SYNC });
-	}
-
-	/*
-	 * Test conflicts involving deletions
-	 */
-	public void testDeletionConflicts() throws TeamException, CoreException {
-
-		// CASE 1: The user deletes a remotely modified file
-		//    (a) catchup must do an update
-		//    (b) release must do a merge
-		// CASE 2: The user deletes (and removes) a remotely modified file	
-		//    (a) catchup must do an unmanage and update
-		//    (b) release must do a merge
-		// CASE 3: The user modified a remotely deleted file
-		//    (a) catchup must do an unmanage and local delete
-		//    (b) release must do a merge
-		// CASE 4: The user deletes a remotely deleted file
-		//    (a) catchup can update (or unmanage?)
-		//    (b) release must unmanage
-		// CASE 5: The user deletes (and removes) a remotely deleted file
-		//    (a) catchup can update (or unmanage?)
-		//    (b) release must unmanage
-
-		// Perform the test case for case A first
-
-		// Create a test project (which commits it as well) and delete the resource without committing
-		IProject project =
-			createAndPut(
-				"testDeletionConflictsA",
-				new String[] { "delete1.txt", "delete2.txt", "delete3.txt", "delete4.txt", "delete5.txt" });
-		IFile file = project.getFile("delete1.txt");
-		file.delete(false, DEFAULT_MONITOR);
-		deleteResources(project, new String[] { "delete2.txt" }, false);
-		file = project.getFile("delete3.txt");
-		sleep(1500); // Wait so that timestamp of modified file differs from original
-		file.setContents(new ByteArrayInputStream("unique text for delete3.txt".getBytes()), false, false, null);
-		file = project.getFile("delete4.txt");
-		file.delete(false, DEFAULT_MONITOR);
-		deleteResources(project, new String[] { "delete5.txt" }, false);
-
-		// Checkout a copy and commit the deletion
-		IProject copy = checkoutCopy(project, "-copy");
-		file = copy.getFile("delete1.txt");
-		sleep(1500); // Wait so that timestamp of modified file differs from original
-		file.setContents(new ByteArrayInputStream("unique text for delete1.txt".getBytes()), false, false, null);
-		file = copy.getFile("delete2.txt");
-		sleep(1500); // Wait so that timestamp of modified file differs from original
-		file.setContents(new ByteArrayInputStream("unique text for delete2.txt".getBytes()), false, false, null);
-		deleteResources(copy, new String[] { "delete3.txt", "delete4.txt", "delete5.txt" }, false);
-		getProvider(copy).put(new IResource[] { copy }, DEFAULT_MONITOR);
-
-		// Get the sync tree for the project
-		IRemoteSyncElement tree = getRemoteSyncTree(project, DEFAULT_MONITOR);
-		assertSyncEquals(
-			"testDeletionConflictsA",
-			tree,
-			new String[] { "delete1.txt", "delete2.txt", "delete3.txt", "delete4.txt", "delete5.txt" },
-			new int[] {
-				IRemoteSyncElement.CONFLICTING | IRemoteSyncElement.CHANGE,
-				IRemoteSyncElement.CONFLICTING | IRemoteSyncElement.CHANGE,
-				IRemoteSyncElement.CONFLICTING | IRemoteSyncElement.CHANGE,
-				IRemoteSyncElement.CONFLICTING | IRemoteSyncElement.CHANGE | IRemoteSyncElement.PSEUDO_CONFLICT,
-				IRemoteSyncElement.CONFLICTING | IRemoteSyncElement.CHANGE | IRemoteSyncElement.PSEUDO_CONFLICT });
-
-		// Catch up to remote changes.
-
-		project.getFile("delete3.txt").delete(false, DEFAULT_MONITOR);
-
-		tree = getRemoteSyncTree(project, DEFAULT_MONITOR);
-		assertSyncEquals(
-			"testDeletionConflictsA",
-			tree,
-			new String[] { "delete1.txt", "delete2.txt" },
-			new int[] {
-				IRemoteSyncElement.CONFLICTING | IRemoteSyncElement.CHANGE | IRemoteSyncElement.PSEUDO_CONFLICT,
-				IRemoteSyncElement.CONFLICTING | IRemoteSyncElement.CHANGE | IRemoteSyncElement.PSEUDO_CONFLICT });
-		assertDeleted("testDeletionConflictsA", tree, new String[] { "delete3.txt", "delete4.txt", "delete5.txt" });
-
-		// Now redo the test case for case B
-
-		// Create a test project (which commits it as well) and delete the resource without committing
-		project =
-			createAndPut(
-				"testDeletionConflictsB",
-				new String[] { "delete1.txt", "delete2.txt", "delete3.txt", "delete4.txt", "delete5.txt" });
-		file = project.getFile("delete1.txt");
-		file.delete(false, DEFAULT_MONITOR);
-		deleteResources(project, new String[] { "delete2.txt" }, false);
-		file = project.getFile("delete3.txt");
-		sleep(1500); // Wait so that timestamp of modified file differs from original
-		file.setContents(getRandomContents(), false, false, null);
-		file = project.getFile("delete4.txt");
-		file.delete(false, DEFAULT_MONITOR);
-		deleteResources(project, new String[] { "delete5.txt" }, false);
-
-		// Checkout a copy and commit the deletion
-		copy = checkoutCopy(project, "-copy");
-		file = copy.getFile("delete1.txt");
-		sleep(1500); // Wait so that timestamp of modified file differs from original
-		file.setContents(getRandomContents(), false, false, null);
-		file = copy.getFile("delete2.txt");
-		sleep(1500); // Wait so that timestamp of modified file differs from original
-		file.setContents(getRandomContents(), false, false, null);
-		deleteResources(copy, new String[] { "delete3.txt", "delete4.txt", "delete5.txt" }, false);
-		getProvider(copy).put(new IResource[] { copy }, DEFAULT_MONITOR);
-
-		// Get the sync tree for the project
-		tree = getRemoteSyncTree(project, DEFAULT_MONITOR);
-		assertSyncEquals(
-			"testDeletionConflictsB",
-			tree,
-			new String[] { "delete1.txt", "delete2.txt", "delete3.txt", "delete4.txt", "delete5.txt" },
-			new int[] {
-				IRemoteSyncElement.CONFLICTING | IRemoteSyncElement.CHANGE,
-				IRemoteSyncElement.CONFLICTING | IRemoteSyncElement.CHANGE,
-				IRemoteSyncElement.CONFLICTING | IRemoteSyncElement.CHANGE,
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.IN_SYNC });
-
-		// Release the resources
-
-		putResourcesOntoTarget(project, new String[] { "delete1.txt", "delete2.txt", "delete3.txt", "delete4.txt", "delete5.txt" });
-		tree = getRemoteSyncTree(project, DEFAULT_MONITOR);
-		assertSyncEquals("testDeletionConflictsB", tree, new String[] { "delete3.txt" }, new int[] { IRemoteSyncElement.IN_SYNC });
-		assertDeleted("testDeletionConflictsB", tree, new String[] { "delete1.txt", "delete2.txt", "delete4.txt", "delete5.txt" });
-	}
-
-	/*
-	* Test that a deleted file can still be deleted through the team provider
-	*/
-	public void testOutgoingDeletion() throws TeamException, CoreException {
-
-		// Create a test project (which commits it as well)
-		IProject project = createAndPut("testOutgoingDeletion", new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder1/b.txt" });
-
-		// Delete a file
-		IFile file = project.getFile("folder1/b.txt");
-		file.delete(true, DEFAULT_MONITOR); // WARNING: As of 2002/03/05, this is equivalent to a cvs remove
-
-		// Get the sync tree for the project
-		IRemoteSyncElement tree = getRemoteSyncTree(project, DEFAULT_MONITOR);
-		assertSyncEquals(
-			"testOutgoingDeletion",
-			tree,
-			new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder1/b.txt" },
-			new int[] {
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.OUTGOING | IRemoteSyncElement.DELETION });
-
-		// Commit the deletion
-		getProvider(file.getProject()).put(new IResource[] { file }, DEFAULT_MONITOR);
-
-		// Get the sync tree again for the project and ensure others aren't effected
-		tree = getRemoteSyncTree(project, DEFAULT_MONITOR);
-		assertSyncEquals(
-			"testOutgoingDeletion",
-			tree,
-			new String[] { "file1.txt", "folder1/", "folder1/a.txt" },
-			new int[] { IRemoteSyncElement.IN_SYNC, IRemoteSyncElement.IN_SYNC, IRemoteSyncElement.IN_SYNC });
-
-		// Assert that deletion no longer appears in remote tree
-		assertDeleted("testOutgoingDeletion", tree, new String[] { "folder1/b.txt" });
-	}
-
-	/*
-	 * Test catching up to an incoming addition
-	 */
-	public void testIncomingAddition() throws TeamException, CoreException {
-		// Create a test project
-		IProject project = createAndPut("testIncomingAddition", new String[] { "file1.txt", "folder1/", "folder1/a.txt" });
-
-		// Checkout and modify a copy
-		IProject copy = checkoutCopy(project, "-copy");
-		addResources(copy, new String[] { "folder1/add.txt" }, true);
-
-		// Get the sync tree for the project
-		IRemoteSyncElement tree = getRemoteSyncTree(project, DEFAULT_MONITOR);
-		assertSyncEquals(
-			"testIncomingAddition",
-			tree,
-			new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder1/add.txt" },
-			new int[] {
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.INCOMING | IRemoteSyncElement.ADDITION });
-
-		// Get the resource from the tree
-		ILocalSyncElement element = getChild(tree, new Path("folder1/add.txt"));
-
-		// Catch up to the addition by updating
-		getResourcesFromTarget(project, new String[] { "folder1/add.txt" });
-
-		// Get the sync tree again for the project and ensure the added resource is in sync
-		tree = getRemoteSyncTree(project, DEFAULT_MONITOR);
-		assertSyncEquals(
-			"testIncomingAddition",
-			tree,
-			new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder1/add.txt" },
-			new int[] { IRemoteSyncElement.IN_SYNC, IRemoteSyncElement.IN_SYNC, IRemoteSyncElement.IN_SYNC, IRemoteSyncElement.IN_SYNC });
-	}
-
-	/* 
-	 * Test changes using a granularity of contents
-	 */
-	public void testGranularityContents() throws TeamException, CoreException, IOException {
-		// Create a test project (which commits it as well)
-		IProject project =
-			createAndPut("testGranularityContents", new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder1/b.txt" });
-
-		// Checkout a copy and make some modifications
-		IProject copy = checkoutCopy(project, "-copy");
-		IFile file = copy.getFile("file1.txt");
-		sleep(1500); // Wait so that timestamp of modified file differs from original
-		appendText(file, "a", true);
-		file = copy.getFile("folder1/a.txt");
-		file.setContents(getRandomContents(), false, false, null);
-		putResourcesOntoTarget(copy, new String[] { "file1.txt","folder1/a.txt" });
-
-		// Make the same modifications to the original
-		file = project.getFile("file1.txt");
-		sleep(1500); // Wait so that timestamp of modified file differs from original
-		appendText(file, "a", false);
-		file = project.getFile("folder1/a.txt");
-		file.setContents(new ByteArrayInputStream("unique text".getBytes()), false, false, null);
-
-		// Get the sync tree for the project
-		IRemoteSyncElement tree = getRemoteSyncTree(project, DEFAULT_MONITOR);
-		assertSyncEquals(
-			"testGranularityContents",
-			tree,
-			new String[] { "file1.txt", "folder1/", "folder1/a.txt" },
-			new int[] {
-				IRemoteSyncElement.CONFLICTING | IRemoteSyncElement.CHANGE | IRemoteSyncElement.PSEUDO_CONFLICT,
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.CONFLICTING | IRemoteSyncElement.CHANGE },
-			IRemoteSyncElement.GRANULARITY_CONTENTS);
-	}
-
-	public void testRenameProject() throws TeamException, CoreException, IOException {
-		String[] resourceNames = new String[] { "changed.txt", "folder1/", "folder1/a.txt" };
-		int[] inSync = new int[] { IRemoteSyncElement.IN_SYNC, IRemoteSyncElement.IN_SYNC, IRemoteSyncElement.IN_SYNC };
-		IProject project = createAndPut("testRenameProject", new String[] { "changed.txt", "folder1/", "folder1/a.txt" });
-
-		IRemoteSyncElement tree = getRemoteSyncTree(project, DEFAULT_MONITOR);
-		assertSyncEquals("sync should be in sync", tree, resourceNames, inSync);
-		IProjectDescription desc = project.getDescription();
-		String newName = project.getName() + "_renamed";
-		desc.setName(newName);
-		project.move(desc, false, null);
-		project = ResourcesPlugin.getWorkspace().getRoot().getProject(newName);
-		assertTrue(project.exists());
-		tree = getRemoteSyncTree(project, DEFAULT_MONITOR);
-		assertSyncEquals("sync should be in sync", tree, resourceNames, inSync);
-	}
-
-	public void testFolderDeletion() throws TeamException, CoreException {
-
-		IProject project =
-			createAndPut(
-				"testFolderDeletion",
-				new String[] { "changed.txt", "deleted.txt", "folder1/", "folder1/a.txt", "folder1/folder2/file.txt" });
-
-		// Delete a folder and ensure that the file is managed but doesn't exist
-		project.getFolder("folder1").delete(false, false, null);
-
-		// The folders and files should show up as outgoing deletions
-		IRemoteSyncElement tree = getRemoteSyncTree(project, DEFAULT_MONITOR);
-		assertSyncEquals(
-			"testFolderDeletion sync check",
-			tree,
-			new String[] { "folder1", "folder1/a.txt", "folder1/folder2", "folder1/folder2/file.txt" },
-			new int[] {
-				IRemoteSyncElement.OUTGOING | IRemoteSyncElement.DELETION,
-				IRemoteSyncElement.OUTGOING | IRemoteSyncElement.DELETION,
-				IRemoteSyncElement.OUTGOING | IRemoteSyncElement.DELETION,
-				IRemoteSyncElement.OUTGOING | IRemoteSyncElement.DELETION });
-
-		// commit folder1/a.txt
-		putResourcesOntoTarget(project, new String[] { "folder1/a.txt" });
-
-		// Resync and verify that above file is gone and others remain the same
-		tree = getRemoteSyncTree(project, DEFAULT_MONITOR);
-		assertSyncEquals(
-			"testFolderDeletion sync check",
-			tree,
-			new String[] { "folder1", "folder1/folder2", "folder1/folder2/file.txt" },
-			new int[] {
-				IRemoteSyncElement.OUTGOING | IRemoteSyncElement.DELETION,
-				IRemoteSyncElement.OUTGOING | IRemoteSyncElement.DELETION,
-				IRemoteSyncElement.OUTGOING | IRemoteSyncElement.DELETION });
-		assertDeleted("testFolderDeletion", tree, new String[] { "folder1/a.txt" });
-
-		// Commit folder1/folder2/file.txt
-		putResourcesOntoTarget(project, new String[] { "folder1/", "folder1/folder2/", "folder1/folder2/file.txt" });
-
-		// Resync and verify that all are deleted
-		tree = getRemoteSyncTree(project, DEFAULT_MONITOR);
-		assertDeleted("testFolderDeletion", tree, new String[] { "folder1", "folder1/folder2", "folder1/folder2/file.txt" });
-	}
-}
diff --git a/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/core/TargetProviderTests.java b/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/core/TargetProviderTests.java
deleted file mode 100644
index a70a834..0000000
--- a/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/core/TargetProviderTests.java
+++ /dev/null
@@ -1,237 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.core;
-
-import java.net.MalformedURLException;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.core.target.TargetManager;
-import org.eclipse.team.internal.core.target.TargetProvider;
-import org.eclipse.team.internal.core.target.UrlUtil;
-
-/**
- * A set of test cases for org.eclipse.team.core.target.TargetProvider
- */
-public class TargetProviderTests extends TeamTest {
-	
-
-	public TargetProviderTests() {
-		super();
-	}
-	public TargetProviderTests(String name) {
-		super(name);
-	}
-	public static Test suite() {
-		TestSuite suite = new TestSuite(TargetProviderTests.class);
-		return new TargetTestSetup(suite);
-		//return new TargetTestSetup(new TargetProviderTests("testPutAndGet"));
-	}
-	/**
-	 * Tests the link between the target & the site for consistency.
-	 * @throws CoreException
-	 * @throws TeamException
-	 */
-	public void testProjectMapping() throws CoreException, TeamException {
-		IProject project = getUniqueTestProject("projectmapping");
-		TargetProvider target = createProvider(project);
-		assertTrue(getSite().equals(target.getSite()));
-		TargetManager.unmap(project);
-		assertNull(TargetManager.getProvider(project));
-	}
-	/**
-	 * Tests the getURL() method on TargetProvider.
-	 * @throws CoreException
-	 * @throws TeamException
-	 */
-	public void testUrlRetrieval() throws CoreException, TeamException, MalformedURLException {
-		IProject project = getNamedTestProject("urlretrieval");
-		TargetManager.map(project, getSite(), new Path(properties.getProperty("test_dir")));
-		TargetProvider target = TargetManager.getProvider(project);
-		String goodurl = UrlUtil.concat(properties.getProperty("location"), new Path(properties.getProperty("test_dir"))).toString();
-		assertEquals(goodurl, target.getURL().toString()); 
-	}
-	/**
-	 * Verifies that the get() and put() methods on the TargetProvider works as expected.
-	 * @throws CoreException
-	 * @throws TeamException
-	 */
-	public void testPutAndGet() throws CoreException, TeamException {
-		// test put
-		IProject project = getUniqueTestProject("get");
-		IResource[] resources = buildResources(project, new String[] { "file1.txt", "folder1/", "folder1/b.txt" }, false);
-		TargetProvider target = createProvider(project);
-		target.put(resources, DEFAULT_MONITOR);
-		assertLocalEqualsRemote(project);
-		// test get on a new project
-		project.delete(true, true, DEFAULT_MONITOR);
-		project.create(DEFAULT_MONITOR);
-		project.open(DEFAULT_MONITOR);
-		target = createProvider(project);
-		target.get(new IResource[] { project }, DEFAULT_MONITOR);
-		assertLocalEqualsRemote(project);
-	}
-	/**
-	 * Verifies that canGet() and canPut() returns accurate values.
-	 * @throws CoreException
-	 * @throws TeamException
-	 */
-	public void testCanGetAndCanPut() throws CoreException, TeamException {
-		IProject project = getUniqueTestProject("canget");
-		IResource[] resources = buildResources(project, new String[] { "file1.txt", "folder1/", "folder1/b.txt" }, false);
-		TargetProvider target = createProvider(project);
-		for (int i = 0; i < resources.length; i++) {
-			assertTrue(target.canPut(resources[i]));
-		}
-		target.put(resources, DEFAULT_MONITOR);
-		project.delete(true, true, DEFAULT_MONITOR);
-		project.create(DEFAULT_MONITOR);
-		project.open(DEFAULT_MONITOR);
-		target = createProvider(project);
-		for (int i = 0; i < resources.length; i++) {
-			assertTrue(target.canGet(resources[i]));
-		}
-		target.get(new IResource[] { project }, null);
-	}
-	/**
-	 * Tests bahavior of isOutOfDate() for correctness
-	 * @throws CoreException
-	 * @throws TeamException
-	 */
-	public void testIsOutOfDate() throws CoreException, TeamException {
-		IProject project = getUniqueTestProject("outdated");
-		IResource[] resources = buildResources(project, new String[] { "file1.txt", "folder1/", "folder1/b.txt" }, false);
-		TargetProvider target = createProvider(project);
-		target.put(resources, null);
-		sleep(1501);
-		IProject dupeProject = getUniqueTestProject("outdated");
-		IResource[] freshResources = buildResources(dupeProject, new String[] { "file1.txt", "folder1/", "folder1/b.txt" }, false);
-		TargetManager.map(dupeProject, getSite(), new Path(properties.getProperty("test_dir")).append(project.getName()));
-		TargetProvider dupeTarget = TargetManager.getProvider(dupeProject);
-		dupeTarget.put(freshResources, null);
-		for (int i = 0; i < resources.length; i++) {
-			if (resources[i].getType() == IResource.FILE)
-				assertTrue(target.isOutOfDate(resources[i], DEFAULT_PROGRESS_MONITOR));
-		}
-	}
-	/**
-	 * Tests bahavior of isDirty() for correctness
-	 * @throws CoreException
-	 * @throws TeamException
-	 */
-	public void testIsDirty() throws CoreException, TeamException {
-		IProject project = getUniqueTestProject("dirty");
-		IResource[] resources = buildResources(project, new String[] { "file1.txt", "folder1/", "folder1/b.txt" }, false);
-		TargetProvider target = createProvider(project);
-		target.put(resources, null);
-		sleep(1501);
-		resources = buildResources(project, new String[] { "file1.txt", "folder1/", "folder1/b.txt" }, false);
-		for (int i = 0; i < resources.length; i++) {
-			if (resources[i].getType()==IResource.FILE) assertTrue(resources[i].getName(),target.isDirty(resources[i]));
-		}
-	}
-	public void testOverwrite() throws CoreException, TeamException {
-		IProject project = getUniqueTestProject("overwrite");
-		IResource[] resources = buildResources(project, new String[] { "file1.txt", "folder1/", "folder1/b.txt" }, false);
-		TargetProvider target = createProvider(project);
-		target.put(resources, null);
-		//Create resources with the same names but different content & upload them in the same spot:
-		resources = buildResources(project, new String[] { "file1.txt", "folder1/", "folder1/b.txt" }, false);
-		target.put(resources, null);
-
-		IProject dupeProject = getUniqueTestProject("overwrite");
-		TargetManager.map(dupeProject, getSite(), new Path(properties.getProperty("test_dir")).append(project.getName()));
-		IResource[] freshResources = buildEmptyResources(project, new String[] { "file1.txt", "folder1/", "folder1/b.txt" }, false);
-		TargetProvider dupeTarget = TargetManager.getProvider(dupeProject);
-		dupeTarget.get(new IResource[] { dupeProject }, null);
-		for (int i = 0; i < resources.length; i++) {
-			assertEquals(resources[i],freshResources[i]);
-		}
-	}
-	public void testIsDirtyWhenDeleted() throws CoreException, TeamException {
-		IProject project = getUniqueTestProject("dirty");
-		IResource[] resources = buildResources(project, new String[] { "file1.txt", "folder1/", "folder1/b.txt" }, false);
-		TargetProvider target = createProvider(project);
-		target.put(resources, null);
-		for (int i = 0; i < resources.length; i++) {
-			resources[i].delete(true, null);
-		}
-		sleep(1501);
-		resources = buildResources(project, new String[] { "file1.txt", "folder1/", "folder1/b.txt" }, false);
-		for (int i = 0; i < resources.length; i++) {
-			if (resources[i].getType()==IResource.FILE) assertTrue(resources[i].getName(),target.isDirty(resources[i]));
-		}
-	}
-	public void testIsOutOfDateWhenDeleted() throws CoreException, TeamException {
-		IProject project = getUniqueTestProject("outdated");
-		IResource[] resources = buildResources(project, new String[] { "file1.txt", "folder1/", "folder1/b.txt" }, false);
-		TargetProvider target = createProvider(project);
-		target.put(resources, null);
-		for (int i = 0; i < resources.length; i++) {
-			resources[i].delete(true, null);
-		}
-		sleep(1501);
-		IProject dupeProject = getUniqueTestProject("outdated");
-		IResource[] freshResources = buildResources(dupeProject, new String[] { "file1.txt", "folder1/", "folder1/b.txt" }, false);
-		TargetManager.map(dupeProject, getSite(), new Path(properties.getProperty("test_dir")).append(project.getName()));
-		TargetProvider dupeTarget = TargetManager.getProvider(dupeProject);
-		dupeTarget.put(freshResources, null);
-		for (int i = 0; i < resources.length; i++) {
-			if (resources[i].getType() == IResource.FILE)
-				assertTrue(target.isOutOfDate(resources[i], DEFAULT_PROGRESS_MONITOR));
-		}
-	}
-	public void testPutWithPhantoms() throws CoreException, TeamException {
-		IProject project = getUniqueTestProject("put");
-		IResource[] resources = buildEmptyResources(project, new String[] { "file1.txt", "folder1/", "folder1/b.txt" }, false);
-		TargetProvider target = createProvider(project);
-		target.put(resources, null);
-		for (int i = 0; i < resources.length; i++) {
-			resources[i].delete(true, null);
-		}
-		try {
-			target.put(resources, null);
-			for (int i = 0; i < resources.length; i++) {
-				assertTrue(!target.getRemoteResourceFor(resources[i]).exists(null));
-			}
-		} catch (TeamException e) {} catch (RuntimeException e) {
-			fail("Putting files that don't exist locally should delete them remotely");
-		}
-	}
-	public void testGetWithPhantoms() throws CoreException, TeamException {
-		IProject project = getUniqueTestProject("get");
-		String[] testFileNames=new String[] { "file1.txt", "folder1/", "folder1/b.txt" };
-		IResource[] resources = buildResources(project, testFileNames, false);
-		TargetProvider target = createProvider(project);
-		try {
-			target.get(new IResource[] { project }, null);
-			IResource[] phantoms=getResources(project,testFileNames);
-			for (int i = 0; i < phantoms.length; i++) {
-				assertTrue(!project.getFile(testFileNames[i]).exists());
-			}
-		} catch (TeamException e) {
-			fail("Getting files that don't exist remotely should delete them locally");
-		}
-	}
-	/**
-	 * @see TestCase#setUp()
-	 */
-	protected void setUp() throws Exception {
-		super.setUp();
-		properties=TargetTestSetup.properties;
-	}
-}
diff --git a/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/core/TargetTestSetup.java b/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/core/TargetTestSetup.java
deleted file mode 100644
index b18dd00..0000000
--- a/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/core/TargetTestSetup.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.core;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileReader;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.Properties;
-
-import junit.extensions.TestSetup;
-import junit.framework.Test;
-
-import org.eclipse.core.runtime.Path;
-import org.eclipse.team.core.sync.IRemoteResource;
-import org.eclipse.team.internal.core.target.IRemoteTargetResource;
-import org.eclipse.team.internal.core.target.ISiteFactory;
-import org.eclipse.team.internal.core.target.Site;
-import org.eclipse.team.internal.core.target.TargetManager;
-import org.eclipse.team.internal.core.target.TargetProvider;
-
-/**
- * A set of test cases for org.eclipse.team.core.sync.IRemoteResource
- */
-public class TargetTestSetup extends TestSetup {
-
-	public static Properties properties;
-	static {
-		loadProperties();
-	}
-
-	public static void loadProperties() {
-		properties = new Properties();
-		String propertiesFile = System.getProperty("eclipse.target.properties");
-		if (propertiesFile == null)
-			return;
-		File file = new File(propertiesFile);
-		if (file.isDirectory())
-			file = new File(file, "target.properties");
-		try {
-			BufferedReader reader = new BufferedReader(new FileReader(file));
-			try {
-				for (String line;(line = reader.readLine()) != null;) {
-					int sep = line.indexOf("=");
-					String property = line.substring(0, sep).trim();
-					String value = line.substring(sep + 1).trim();
-					properties.setProperty(property, value);
-				}
-			} finally {
-				reader.close();
-			}
-		} catch (Exception e) {
-			System.err.println("Could not read repository properties file: " + file.getAbsolutePath());
-		}
-	}
-	
-	public TargetTestSetup(Test test) {
-		super(test);
-	}
-	/**
-	 * Retrieves the Site object that the TargetProvider is contained in.
-	 * @return Site
-	 */
-	Site getSite() {
-		try {
-			URL url = new URL(properties.getProperty("location"));
-			return TargetManager.getSite(properties.getProperty("target"), url);
-		} catch (MalformedURLException e) {
-			return null;
-		}
-	}
-	/**
-	 * This method runs before starting the entire test suite.
-	 * @see TestCase#setUp()
-	 */
-	protected void setUp() throws Exception {
-		super.setUp();
-		Site location;
-		ISiteFactory factory = TargetManager.getSiteFactory(properties.getProperty("target"));
-		assertNotNull(factory);
-		Site[] locations = TargetManager.getSites();
-
-		if (locations.length == 0) {
-			Site l = factory.newSite(properties);
-			TargetManager.addSite(l);
-		}
-		location = getSite();
-		
-		//clean up the directory:
-		IRemoteTargetResource remote=location.getRemoteResource().getFolder(properties.getProperty("test_dir"));
-		IRemoteResource[] children=remote.members(null);
-		for (int i = 0; i < children.length; i++) {
-			((IRemoteTargetResource)children[i]).delete(null);
-		}
-		
-		TargetProvider target = location.newProvider(new Path(properties.getProperty("test_dir")));
-		assertNotNull(target);
-	}
-}
diff --git a/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/core/TeamTest.java b/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/core/TeamTest.java
deleted file mode 100644
index 5bf3472..0000000
--- a/tests/org.eclipse.team.tests.core/src/org/eclipse/team/tests/core/TeamTest.java
+++ /dev/null
@@ -1,302 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.core;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Properties;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.tests.harness.EclipseWorkspaceTest;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.sync.IRemoteResource;
-import org.eclipse.team.internal.core.target.IRemoteTargetResource;
-import org.eclipse.team.internal.core.target.Site;
-import org.eclipse.team.internal.core.target.TargetManager;
-import org.eclipse.team.internal.core.target.TargetProvider;
-
-public class TeamTest extends EclipseWorkspaceTest {
-	protected static IProgressMonitor DEFAULT_MONITOR = new NullProgressMonitor();
-	protected static final IProgressMonitor DEFAULT_PROGRESS_MONITOR = new NullProgressMonitor();
-
-	Properties properties;
-
-	public TeamTest() {
-		super();
-	}
-	public TeamTest(String name) {
-		super(name);
-	}
-	/**
-	* @see TestCase#setUp()
-	*/
-	protected void setUp() throws Exception {
-		super.setUp();
-		properties = TargetTestSetup.properties;
-	}
-	protected IProject getNamedTestProject(String name) throws CoreException {
-		IProject target = getWorkspace().getRoot().getProject(name);
-		if (!target.exists()) {
-			target.create(null);
-			target.open(null);
-		}
-		assertExistsInFileSystem(target);
-		return target;
-	}
-	
-	protected IProject getUniqueTestProject(String prefix) throws CoreException {
-		// manage and share with the default stream create by this class
-		return getNamedTestProject(prefix + "-" + Long.toString(System.currentTimeMillis()));
-	}
-	
-	protected IStatus getTeamTestStatus(int severity) {
-		return new Status(severity, "org.eclipse.team.tests.core", 0, "team status", null);
-	}
-		/**
-	 * Retrieves the Site object that the TargetProvider is contained in.
-	 * @return Site
-	 */
-	Site getSite() {
-		try {
-			URL url = new URL(properties.getProperty("location"));
-			return TargetManager.getSite(properties.getProperty("target"), url);
-		} catch (MalformedURLException e) {
-			return null;
-		}
-	}
-	/**
-	 * Creates filesystem 'resources' with the given names and fills them with random text.
-	 * @param container An object that can hold the newly created resources.
-	 * @param hierarchy A list of files & folder names to use as resources
-	 * @param includeContainer A flag that controls whether the container is included in the list of resources.
-	 * @return IResource[] An array of resources filled with variable amounts of random text
-	 * @throws CoreException
-	 */
-	public IResource[] buildResources(IContainer container, String[] hierarchy, boolean includeContainer) throws CoreException {
-		List resources = new ArrayList(hierarchy.length + 1);
-		if (includeContainer)
-			resources.add(container);
-		resources.addAll(Arrays.asList(buildResources(container, hierarchy)));
-		IResource[] result = (IResource[]) resources.toArray(new IResource[resources.size()]);
-		ensureExistsInWorkspace(result, true);
-		for (int i = 0; i < result.length; i++) {
-			if (result[i].getType() == IResource.FILE) // 3786 bytes is the average size of Eclipse Java files!
-				 ((IFile) result[i]).setContents(getRandomContents(100), true, false, null);
-		}
-		return result;
-	}
-	public IResource[] buildEmptyResources(IContainer container, String[] hierarchy, boolean includeContainer) throws CoreException {
-		List resources = new ArrayList(hierarchy.length + 1);
-		resources.addAll(Arrays.asList(buildResources(container, hierarchy)));
-		if (includeContainer)
-			resources.add(container);
-		IResource[] result = (IResource[]) resources.toArray(new IResource[resources.size()]);
-		ensureExistsInWorkspace(result, true);
-		return result;
-	}
-	/**
-	 * Creates an InputStream filled with random text in excess of a specified minimum.
-	 * @param sizeAtLeast 	The minimum number of chars to fill the input stream with.
-	 * @return InputStream The input stream containing random text.
-	 */
-	protected static InputStream getRandomContents(int sizeAtLeast) {
-		StringBuffer randomStuff = new StringBuffer(sizeAtLeast + 100);
-		while (randomStuff.length() < sizeAtLeast) {
-			randomStuff.append(getRandomSnippet());
-		}
-		return new ByteArrayInputStream(randomStuff.toString().getBytes());
-	}
-	/**
-	 * Produces a random chunk of text from a finite collection of pre-written phrases.
-	 * @return String Some random words.
-	 */
-	public static String getRandomSnippet() {
-		switch ((int) Math.round(Math.random() * 10)) {
-			case 0 :
-				return "este e' o meu conteudo (portuguese)";
-			case 1 :
-				return "Dann brauchen wir aber auch einen deutschen Satz!";
-			case 2 :
-				return "I'll be back";
-			case 3 :
-				return "don't worry, be happy";
-			case 4 :
-				return "there is no imagination for more sentences";
-			case 5 :
-				return "customize yours";
-			case 6 :
-				return "foo";
-			case 7 :
-				return "bar";
-			case 8 :
-				return "foobar";
-			case 9 :
-				return "case 9";
-			default :
-				return "these are my contents";
-		}
-	}
-	public TargetProvider createProvider(IProject project) throws TeamException {
-		// Ensure the remote folder exists
-		IRemoteTargetResource remote = getSite().getRemoteResource().getFolder(
-			new Path(properties.getProperty("test_dir")).append(project.getName()).toString());
-		if (! remote.exists(null)) {
-			remote.mkdirs(null);
-		}
-		TargetManager.map(project, getSite(), new Path(properties.getProperty("test_dir")).append(project.getName()));
-		TargetProvider target = getProvider(project);
-		return target;
-	}
-	
-	public TargetProvider getProvider(IProject project) throws TeamException {
-		return TargetManager.getProvider(project);
-	}
-	
-	public void sleep(int ms) {
-		try {
-			Thread.sleep(ms);
-		} catch (InterruptedException e) {
-			System.err.println("Testing was rudely interrupted.");
-		}
-	}
-	void assertLocalEqualsRemote(IProject project) throws CoreException, TeamException {
-		IProject newProject = getNamedTestProject("equals");
-		TargetProvider target = TargetManager.getProvider(project);
-		IResource[] localResources = project.members();
-		for (int i = 0; i < localResources.length; i++) {
-			assertEquals(target.getRemoteResourceFor(localResources[i]), localResources[i]);
-		}
-	}
-	// Assert that the two containers have equal contents
-	protected void assertEquals(IRemoteResource container1, IResource container2) throws CoreException, TeamException {
-		if (container2.getType() == IResource.FILE) {
-			// Ignore .project file
-			if (container2.getName().equals(".project"))
-				return;
-			assertTrue(compareContent(container1.getContents(DEFAULT_MONITOR), ((IFile) container2).getContents()));
-		} else {
-			IRemoteResource[] remoteResources = container1.members(DEFAULT_MONITOR);
-			IResource[] localResources = ((IFolder) container2).members();
-			for (int i = 0; i < localResources.length; i++) {
-				assertEquals(remoteResources[i], localResources[i]);
-			}
-		}
-	}
-	protected IProject createAndPut(String projectPrefix, String[] resourceNames) throws CoreException, TeamException {
-		IProject project = getUniqueTestProject(projectPrefix);
-		IResource[] resources = buildResources(project, resourceNames, false);
-		TargetProvider target = createProvider(project);
-		target.put(resources, DEFAULT_MONITOR);
-		return project;
-	}
-
-	public void appendText(IResource resource, String text, boolean prepend) throws CoreException, IOException {
-		IFile file = (IFile) resource;
-		InputStream in = file.getContents();
-		ByteArrayOutputStream bos = new ByteArrayOutputStream();
-		try {
-			if (prepend) {
-				bos.write(text.getBytes());
-			}
-			int i;
-			while ((i = in.read()) != -1) {
-				bos.write(i);
-			}
-			if (!prepend) {
-				bos.write(text.getBytes());
-			}
-		} finally {
-			in.close();
-		}
-		file.setContents(new ByteArrayInputStream(bos.toByteArray()), false, false, DEFAULT_MONITOR);
-	}
-	/*
-	 * Get the resources for the given resource names
-	 */
-	public IResource[] getResources(IContainer container, String[] hierarchy) throws CoreException {
-		IResource[] resources = new IResource[hierarchy.length];
-		for (int i=0;i<resources.length;i++) {
-			resources[i] = container.findMember(hierarchy[i]);
-			if (resources[i] == null) {
-				resources[i] = buildResources(container, new String[] {hierarchy[i]})[0];
-			}
-		}
-		return resources;
-	}
-	
-	// Assert that the two containers have equal contents
-	protected void assertEquals(IContainer container1, IContainer container2) throws CoreException {
-		assertEquals(container1.getName(), container2.getName());
-		List members1 = new ArrayList();
-		members1.addAll(Arrays.asList(container1.members()));
-		
-		List members2 = new ArrayList();
-		members2.addAll(Arrays.asList(container2.members()));
-		
-		assertTrue(members1.size() == members2.size());
-		for (int i=0;i<members1.size();i++) {
-			IResource member1 = (IResource)members1.get(i);
-			IResource member2 = container2.findMember(member1.getName());
-			assertNotNull(member2);
-			assertEquals(member1, member2);
-		}
-	}
-	
-	// Assert that the two files have equal contents
-	protected void assertEquals(IFile file1, IFile file2) throws CoreException {
-		assertEquals(file1.getName(), file2.getName());
-		assertTrue(compareContent(file1.getContents(), file2.getContents()));
-	}
-	
-	// Assert that the two projects have equal contents ignoreing the project name
-	// and the .vcm_meta file
-	protected void assertEquals(IProject container1, IProject container2) throws CoreException {
-		List members1 = new ArrayList();
-		members1.addAll(Arrays.asList(container1.members()));
-		members1.remove(container1.findMember(".project"));
-		
-		List members2 = new ArrayList();
-		members2.addAll(Arrays.asList(container2.members()));
-		members2.remove(container2.findMember(".project"));
-		
-		assertTrue("Number of children differs for " + container1.getFullPath(), members1.size() == members2.size());
-		for (int i=0;i<members1.size();i++) {
-			IResource member1 = (IResource)members1.get(i);
-			IResource member2 = container2.findMember(member1.getName());
-			assertNotNull(member2);
-			assertEquals(member1, member2);
-		}
-	}
-	protected void assertEquals(IResource resource1, IResource resource2) throws CoreException {
-		assertEquals(resource1.getType(), resource2.getType());
-		if (resource1.getType() == IResource.FILE)
-			assertEquals((IFile)resource1, (IFile)resource2);
-		else 
-			assertEquals((IContainer)resource1, (IContainer)resource2);
-	}
-}
diff --git a/tests/org.eclipse.team.tests.core/test.xml b/tests/org.eclipse.team.tests.core/test.xml
deleted file mode 100644
index bc792fd..0000000
--- a/tests/org.eclipse.team.tests.core/test.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0"?>
-
-<project name="Team Automated Tests" default="run" basedir=".">
-
-  <!-- The property ${eclipse-home} should be passed into this script -->
-  
-  <!-- sets the properties eclipse-home, and library-file -->
-  <property name="eclipse-home" value="${basedir}/../../"/>
-  <property name="library-file" value="${eclipse-home}/plugins/org.eclipse.test/library.xml"/>
-  <property name="org.eclipse.team.tests.core" value="org.eclipse.team.tests.core"/>
-  <property name="team-home" value="${eclipse-home}/plugins/${org.eclipse.team.tests.core}"/>
-
-  <!-- This target holds all initialization code that needs to be done for -->
-  <!-- all tests that are to be run. Initialization for individual tests -->
-  <!-- should be done within the body of the suite target. -->
-  <target name="init">
-    <tstamp/>
-  </target>
-
-  <!-- This target defines the tests that need to be run. -->
-  <target name="suite">
-    <property name="location" value="${eclipse-home}/team_test_workspace"/>
-    <delete dir="${location}" quiet="true"/>
-
-    <!-- Session Test ** Team Core ** -->
-    <ant target="core-test" antfile="${library-file}" dir="${eclipse-home}">
-      <property name="data-dir" value="${location}"/>
-      <property name="plugin-name" value="org.eclipse.team.tests.core"/>
-      <property name="classname" value="org.eclipse.team.tests.core.AllTeamTests"/>
-    </ant>
-    
-  </target>
-  
-  <!-- This target defines the FTP tests that need to be run. -->
-  <target name="ftpsuite">
-    <property name="location" value="${eclipse-home}/team_test_workspace"/>
-    <delete dir="${location}" quiet="true"/>
-
-    <!-- Session Test ** FTP ** -->
-    <property name="classname" value="org.eclipse.team.tests.core.TargetProviderTests"/>
-    <ant target="core-test" antfile="${library-file}" dir="${eclipse-home}">
-      <property name="data-dir" value="${location}"/>
-      <property name="plugin-name" value="org.eclipse.team.tests.core"/>
-      <property name="classname" value="org.eclipse.team.tests.core.TargetProviderTests"/>
-      <property name="vmargs" value="-Declipse.target.properties=${team-home}/ftp.properties"/>
-    </ant>
-    <move file="${eclipse-home}/${classname}.xml" tofile="${eclipse-home}/${classname}-ftp.xml"/> 
-  </target>
-  
-  <!-- This target defines the WebDAV tests that need to be run. -->
-  <target name="webdavsuite">
-    <property name="location" value="${eclipse-home}/team_test_workspace"/>
-    <delete dir="${location}" quiet="true"/>
-
-    <!-- Session Test ** WebDAV ** -->
-    <property name="classname" value="org.eclipse.team.tests.core.TargetProviderTests"/>
-    <ant target="core-test" antfile="${library-file}" dir="${eclipse-home}">
-      <property name="data-dir" value="${location}"/>
-      <property name="plugin-name" value="org.eclipse.team.tests.core"/>
-      <property name="classname" value="${classname}"/>
-      <property name="vmargs" value="-Declipse.target.properties=${team-home}/webdav.properties"/>
-    </ant>
-    <move file="${eclipse-home}/${classname}.xml" tofile="${eclipse-home}/${classname}-webdav.xml"/> 
-  </target>
-  
-  <!-- This target holds code to cleanup the testing environment after the tests -->
-  <!-- have been run. You can use this to delete temporary files that are created. -->
-  <target name="cleanup">
-  </target>
-
-  <!-- This target runs the test suite. Any actions that need to happen after all -->
-  <!-- the tests have been run should go here. -->
-  <target name="run" depends="init,suite,cleanup">
-    <ant target="collect" antfile="${library-file}" dir="${eclipse-home}">
-      <property name="includes" value="org*.xml"/>
-      <property name="output-file" value="org.eclipse.team.tests.core.xml"/>
-    </ant>
-  </target>
-
-</project>
diff --git a/tests/org.eclipse.team.tests.core/webdav.properties b/tests/org.eclipse.team.tests.core/webdav.properties
deleted file mode 100644
index a81f091..0000000
--- a/tests/org.eclipse.team.tests.core/webdav.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-target=org.eclipse.team.webdav
-test_dir=target
-location=http://@host@/path
-httpClient.username=@user@
-httpClient.password=@password@
-httpClient.proxyURL=
-httpClient.connectionTimeout=6000
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/.classpath b/tests/org.eclipse.team.tests.cvs.core/.classpath
deleted file mode 100644
index a9168f8..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/.classpath
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-    <classpathentry kind="src" path="src/"/>
-    <classpathentry kind="src" path="/org.apache.xerces"/>
-    <classpathentry kind="src" path="/org.eclipse.core.tests.harness"/>
-    <classpathentry kind="src" path="/org.eclipse.core.resources"/>
-    <classpathentry kind="src" path="/org.eclipse.team.core"/>
-    <classpathentry kind="src" path="/org.eclipse.team.cvs.core"/>
-    <classpathentry kind="src" path="/org.eclipse.team.ui"/>
-    <classpathentry kind="src" path="/org.eclipse.team.cvs.ui"/>
-    <classpathentry kind="src" path="/org.eclipse.compare"/>
-    <classpathentry kind="src" path="/org.eclipse.ui"/>
-    <classpathentry kind="src" path="/org.junit"/>
-    <classpathentry kind="src" path="/org.eclipse.team.tests.core"/>
-    <classpathentry kind="src" path="/org.eclipse.core.runtime"/>
-    <classpathentry kind="src" path="/org.eclipse.core.boot"/>
-    <classpathentry kind="var" path="JRE_LIB" rootpath="JRE_SRCROOT" sourcepath="JRE_SRC"/>
-    <classpathentry kind="src" path="/org.eclipse.swt"/>
-    <classpathentry kind="src" path="/org.eclipse.update.core"/>
-    <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/tests/org.eclipse.team.tests.cvs.core/.cvsignore b/tests/org.eclipse.team.tests.cvs.core/.cvsignore
deleted file mode 100644
index b359b9f..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-bin
-selfhost*
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/.project b/tests/org.eclipse.team.tests.cvs.core/.project
deleted file mode 100644
index 2b0ded5..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/.project
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.team.tests.cvs.core</name>
-	<comment></comment>
-	<projects>
-		<project>org.apache.xerces</project>
-		<project>org.eclipse.compare</project>
-		<project>org.eclipse.core.boot</project>
-		<project>org.eclipse.core.resources</project>
-		<project>org.eclipse.core.runtime</project>
-		<project>org.eclipse.core.tests.harness</project>
-		<project>org.eclipse.swt</project>
-		<project>org.eclipse.team.core</project>
-		<project>org.eclipse.team.cvs.core</project>
-		<project>org.eclipse.team.cvs.ui</project>
-		<project>org.eclipse.team.tests.core</project>
-		<project>org.eclipse.team.ui</project>
-		<project>org.eclipse.ui</project>
-		<project>org.eclipse.update.core</project>
-		<project>org.junit</project>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/tests/org.eclipse.team.tests.cvs.core/about.html b/tests/org.eclipse.team.tests.cvs.core/about.html
deleted file mode 100644
index 9db411a..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/about.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>20th June, 2002</p>	
-<h3>License</h3>
-<p>Eclipse.org makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-Common Public License Version 1.0 (&quot;CPL&quot;).  A copy of the CPL is available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>.
-For purposes of the CPL, &quot;Program&quot; will mean the Content.</p>
-
-<h3>Contributions</h3>
-
-<p>If this Content is licensed to you under the terms and conditions of the CPL, any Contributions, as defined in the CPL, uploaded, submitted, or otherwise
-made available to Eclipse.org, members of Eclipse.org and/or the host of Eclipse.org web site, by you that relate to such
-Content are provided under the terms and conditions of the CPL and can be made available to others under the terms of the CPL.</p>
-
-<p>If this Content is licensed to you under license terms and conditions other than the CPL (&quot;Other License&quot;), any modifications, enhancements and/or
-other code and/or documentation (&quot;Modifications&quot;) uploaded, submitted, or otherwise made available to Eclipse.org, members of Eclipse.org and/or the
-host of Eclipse.org, by you that relate to such Content are provided under terms and conditions of the Other License and can be made available
-to others under the terms of the Other License.  In addition, with regard to Modifications for which you are the copyright holder, you are also
-providing the Modifications under the terms and conditions of the CPL and such Modifications can be made available to others under the terms of
-the CPL.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/benchmark/cvsui_benchmark.bat b/tests/org.eclipse.team.tests.cvs.core/benchmark/cvsui_benchmark.bat
deleted file mode 100644
index 2e3f73e..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/benchmark/cvsui_benchmark.bat
+++ /dev/null
@@ -1,42 +0,0 @@
-@echo off

-rem Team UI benchmark script

-rem Expects the following plugins to be installed:

-rem   org.eclipse.core.tests.harness

-rem   org.eclipse.team.core

-rem   org.eclipse.team.cvs.core

-rem   org.eclipse.team.cvs.ui

-rem   org.eclipse.team.tests.cvs

-rem   org.eclipse.team.tests.cvs.core

-rem   org.eclipse.team.ui

-rem   org.junit

-

-set ROOT=D:\PerformanceTesting

-

-set ECLIPSE=%ROOT%\eclipse

-set REPOSITORY_PROPERTIES=%ROOT%\repository.properties

-

-rem set TEST=cvsui.benchmark.all

-rem set REPEAT=25

-rem set IGNOREFIRST=-ignorefirst

-

-set TEST=cvsui.benchmark.command

-set REPEAT=25

-set IGNOREFIRST=-ignorefirst

-

-set LOG=%ROOT%\%TEST%.xml

-set WORKSPACE=%ECLIPSE%\workspace

-set JRE=%ROOT%\jre

-set JAVA=%JRE%\bin\java.exe

-set HARNESS=org.eclipse.team.tests.cvs.core.harness

-

-set VMARGS=-Declipse.cvs.properties=%REPOSITORY_PROPERTIES%

-set PROGARGS=-dev bin -noupdate -application %HARNESS% -test %TEST% -log %LOG% -purge -repeat %REPEAT% %IGNOREFIRST%

-

-pushd %ECLIPSE%

-echo Purging the workspace: %WORKSPACE%

-del /S /F /Q %WORKSPACE% >NUL:

-@echo on

-@echo Running Team UI benchmark test

-%JAVA% -cp startup.jar %VMARGS% org.eclipse.core.launcher.Main %PROGARGS%

-@echo off

-popd
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/benchmark/readme.txt b/tests/org.eclipse.team.tests.cvs.core/benchmark/readme.txt
deleted file mode 100644
index 6f64e0e..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/benchmark/readme.txt
+++ /dev/null
@@ -1,180 +0,0 @@
-README Benchmark Tests
-======================
-
-This plugin provides automated benchmark tests and related support
-programs to locate regressions or improvements between different versions
-of the CVS Team Provider.
-
-For now, all of the tests are targeted towards typical UI workflows.
-This need not be the case.  Should it be necessary, benchmark tests can
-easily be written for lower level core components as well.
-
-
-
-Deploying the Tests
-===================
-
-1. If you have a pre-built plugin available, then you do not need to rebuild
-   the org.eclipse.team.* plugins.  Otherwise you must build these as usual,
-   but you do not need to create a JAR file.  Having all of the compiled
-   classes in the 'bin' directory of each plugin is sufficient.
-
-2. Checkout the matching version of the org.eclipse.team.tests.cvs.core source
-   for your org.eclipse.team.* plugins.  Ensure all dependencies have been
-   satisfied.  Compile as usual.
-   
-3. Checkout and compile org.eclipse.core.tests.harness.
-   
-4. On the target machine, install a matching version of Eclipse in a dedicated
-   test directory.  Also install a suitable JRE for the platform into that
-   directory (should always choose the same one).  
-
-   If you are using Windows, then copy the "teamui_benchmark.bat" script to the
-   directory.  For other platforms, you will need to cook up your own script.
-   You will probably want to change the definition of the "ROOT" variable and
-   other options before running the tests.
-   
-   Copy the template "repository.properties" file to the test directory.  Fill it in.
-   
-   Replace the existing org.eclipse.team.* plugins in the eclipse/plugins
-   directory with the new ones.  Also install org.eclipse.core.tests.harness
-   there.  In the typical case, this just means copying or exporting the projects
-   directly from the workspace where you compiled them to the new location.
-   
-   The test directory structure should look like this:
-     + mytestdirectory/
-       - teamui_benchmark.bat
-       - repository.properties
-         + jre/
-           ... a suitable java runtime ...
-         + eclipse/
-           - install/
-           - readme/
-           - splash/
-           - buildmanifest.properties
-           - startup.jar
-           + plugins/
-             - org.eclipse.core.tests.harness/
-             - org.eclipse.team.core/
-             - org.eclipse.team.ui/
-             - org.eclipse.team.cvs.core/
-             - org.eclipse.team.cvs.ui/
-             - org.eclipse.team.tests.core/
-             - org.eclipse.team.tests.cvs.core/
-             - org.junit/
-             ... and all of the other required Eclipse plugins ...
-            
-5. From a command shell, run the script.  Grab a coffee.
-
-
-
-Running or Debugging the Tests from within Eclipse
-==================================================
-
-1. Checkout and compile the necessary projects (see above).
-
-2. Using the PDE launcher, run the "org.eclipse.team.tests.cvs.core.harness"
-   application with the following arguments:
-   
-   VM Arguments:
-     -Declipse.cvs.properties=<location of your repository.properties file>
-     
-   Program arguments:
-     -test <suite>   : id of suite to run (must be plugged into extension point)
-                       [see plugin.xml file for the list of available tests]
-     -log <file>     : specify a file for logging
-     -nolog          : do not write a log file
-     -repeat <n>     : number of iterations to run
-     -ignorefirst    : ignore (do not record) results from first iteration
-     -purge          : purge all projects from the workspace before each iteration
-     <anything else> : passed verbatim to the org.eclipse.ui.workbench application
-
-
-
-Inspecting the Output
-=====================
-
-1. Checkout and compile the org.eclipse.team.tests.cvs.core project.
-
-2. Note that the log formatting tools require org.apache.xerces to be on the
-   classpath when they are run.  They do not require any other Eclipse
-   components, however.
-   
-3. Run any of the following Java programs:
-
-   org.eclipse.team.tests.ccvs.ui.logformatter.PrintSummaryMain
-   ------------------------------------------------------------
-   
-   Synopsis:
-     Prints a summary of the output of all runs contained in a particular
-     XML log file.  It is not possible to average runs in multiple log files
-     at once without merging the files together on disk.  [Strip the closing
-     tag of the first file, and the opening tag of the second file, then
-     append the second file to the first]
-   
-   Program arguments:
-     <log>       : the path of the log file to print
-     -out <file> : specify an output file, otherwise sends to stdout
-     -csv        : writes the data in comma separated values format
-     -raw        : prints a raw dump without collating or averaging results
-
-
-   org.eclipse.team.tests.ccvs.ui.logformatter.PrintDiffMain
-   ---------------------------------------------------------
-
-   Synopsis:
-     Prints the difference between the average of all runs contained
-     in one XML log file (the newer one) and the average of all runs
-     contained in another XML log file (the older one).  This makes it
-     possible to locate regressions or improvements between versions.
-     
-   Program arguments:
-     <newer log> : the path of the "newer" log file
-     <older log> : the path of the "older" log file
-     -out <file> : specify an output file, otherwise sends to stdout
-     -csv        : writes the data in comma separated values format
-     -t <thresh> : specify the minimum non-negligible absolute % change
-     -i          : ignore negligible changes in results [filter them out]
-
-
-   org.eclipse.team.tests.ccvs.ui.logformatter.LogFormatterUIMain
-   ---------------------------------------------------------
-
-   Synopsis:
-     Provides a GUI frontend to the log formatting tools.  To run this,
-     you must ensure that the SWT DLL is on the java library path.
-
-
-
-What is Being Logged
-====================
-
-At the present date the following information is logged for each test run:
-  - current time
-  - current SDK build number
-  - for JUnit test cases:
-    - test name
-    - fully qualified class name
-  - for groups of benchmark tasks:
-    - name
-  - for benchmark tasks:
-    - name
-    - elapsed time
-  - for exceptions and errors:
-    - type of error (warning, error, failure)
-    - error message
-    - stack trace, if applicable
-    - printout of IStatus contents, if applicable
-
-
-
-NOTES
-=====
-
-Exceptions and errors are not reported through the log formatting tools yet
-since it is difficult to determine automatically which benchmark tasks are
-affected (directly or indirectly) by the error.  For this reason, you should
-MANUALLY INSPECT the generated XML log files and search for elements with
-the name "abort".  Since running the test cases is time consuming, it
-may be better to trim out any affected cases from the log rather than to run
-the whole suite over once again.
diff --git a/tests/org.eclipse.team.tests.cvs.core/benchmark/team2.0/2002_02_26.integration.all.xml b/tests/org.eclipse.team.tests.cvs.core/benchmark/team2.0/2002_02_26.integration.all.xml
deleted file mode 100644
index f5e8da2..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/benchmark/team2.0/2002_02_26.integration.all.xml
+++ /dev/null
@@ -1,6027 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<log timestamp="01/Mar/2002 15:35:24" sdkbuild="20020226">
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="16221"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="61422"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5367"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="18236"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="10725"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="18825"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="9834"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="18957"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6039"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="23454"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="8001"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="25236"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5297"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="5718"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4597"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1833"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5077"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1973"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5147"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1963"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4877"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2854"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4712"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2253"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4766"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1512"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4947"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="581"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4687"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="761"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4987"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="741"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4877"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1142"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4577"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="741"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4286"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1662"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="691"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="1282"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="591"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1182"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1722"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1132"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1012"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="7174"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="360"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1903"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="260"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1312"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3194"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1412"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1112"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1972"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2013"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1232"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1242"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="400"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="832"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="901"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1121"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="4697"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="3605"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="35922"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="7361"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5437"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3005"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5639"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2323"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="12849"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="611"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6369"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="440"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5348"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="4266"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5167"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2404"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6339"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="6088"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5438"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3742"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2603"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4797"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4527"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="5698"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="19189"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="16654"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="267841"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="54836"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="31911"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="9243"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="27680"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="8152"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="42611"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2123"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="26728"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1683"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="27019"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="11853"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="26783"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="9934"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="28531"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="41088"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="26799"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="24823"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="13650"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="31375"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="28209"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="32381"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="16013"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="61878"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5441"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="18217"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="10933"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="18867"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="9604"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="19047"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6008"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="23544"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="7771"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="25477"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5298"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="5638"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4686"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1823"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5178"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2003"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5208"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1973"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4987"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2754"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4697"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2253"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4667"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1472"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4717"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="611"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4486"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="791"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4857"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="752"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5067"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1141"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4577"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="641"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4276"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1432"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="731"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="1242"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="601"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1182"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1873"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1071"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="952"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="7450"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="341"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2003"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="260"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1432"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3284"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1282"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1092"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1695"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1983"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1252"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1241"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="501"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="801"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="922"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1122"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="4626"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="3666"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="36091"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="7542"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5468"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3105"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5688"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1943"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="11466"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="561"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6239"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="451"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5387"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="4166"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5378"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2544"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6259"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="6209"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5428"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3765"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2504"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4787"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4556"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="5718"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="18807"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="16895"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="275863"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="54629"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="30604"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="9092"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="26327"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="8112"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="47008"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2042"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="26899"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1662"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="27009"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="11814"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="26508"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="10104"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="28064"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="41940"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="26625"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="24546"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="13439"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="31708"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="28331"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="32177"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="16213"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="61383"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5518"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="18107"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="10926"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="18717"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="9363"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="19025"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6139"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="23455"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="7761"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="25056"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5624"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="5708"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4487"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1832"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5297"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1953"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4967"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1953"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4607"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2854"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4596"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2264"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4576"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1402"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5028"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="550"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4577"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="781"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5027"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="671"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4968"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1141"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4535"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="641"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4186"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1432"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="761"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="1212"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="581"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1222"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1883"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1259"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="942"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="7491"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="410"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1803"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="260"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1412"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3104"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1292"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1222"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1862"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2013"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1392"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1232"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="441"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="841"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="921"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1112"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="4686"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="3636"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="36032"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="7451"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5358"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2954"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5588"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2073"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="12108"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="611"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6279"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="440"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5277"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="4156"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5278"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2454"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6520"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="5988"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5438"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4056"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2433"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4807"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4496"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="5688"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="18727"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="16604"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="277001"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="54932"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="29342"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="9364"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="26524"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="8082"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="42573"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2063"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="26832"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1682"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="27062"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="12538"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="27009"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="9874"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="28388"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="41239"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="26940"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="25086"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="13510"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="31443"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="28330"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="32858"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="16401"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="61600"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5167"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="18236"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="10795"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="18707"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="9183"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="19098"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5979"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="23534"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="7751"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="25493"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5327"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="5688"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4617"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1803"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5295"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2063"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5638"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1963"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4797"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2834"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4727"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2263"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4817"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1392"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4637"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="601"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4446"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="791"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5128"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="681"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4877"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1041"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4476"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="651"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4256"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1412"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="711"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="1171"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="571"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1102"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2013"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1021"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="992"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="7651"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="350"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1913"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="260"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1422"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3084"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1262"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1152"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1862"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1943"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1202"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1282"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="430"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="811"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="861"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1112"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="4646"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="3725"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="35763"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="7691"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5307"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3125"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5568"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1903"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="16341"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="621"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6078"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="451"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5317"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="4357"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6078"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2414"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6609"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="6069"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5388"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3765"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2391"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4797"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4816"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="5788"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="19347"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="16614"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="276274"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="55511"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="29107"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="9113"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="26418"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="8141"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="41845"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2042"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="27336"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1662"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="27079"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="11817"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="27215"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="10054"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="28199"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="41084"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="27169"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="24648"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="13970"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="31746"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="28422"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="32233"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="15824"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="61333"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5458"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="18226"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="11396"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="19010"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="9383"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="19010"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6489"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="23353"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="7835"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="25056"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5228"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="5688"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4637"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1822"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5177"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2083"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5147"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2013"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4637"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2754"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4768"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2263"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4648"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1402"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4847"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="611"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4557"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="761"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5017"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="711"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4872"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1152"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4586"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="721"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4226"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1592"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="701"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="1172"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="591"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1142"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1863"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1251"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="972"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="7751"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="451"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1942"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="271"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1332"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3055"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1442"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1191"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1853"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2033"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1261"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1423"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="410"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="821"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="941"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1092"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="4577"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="3615"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="35531"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="7640"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5338"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3044"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5559"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2133"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="12819"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="620"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6079"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="891"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5308"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="4156"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5468"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2363"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6389"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="5919"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5297"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3845"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2483"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4797"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4727"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="5778"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="18735"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="16794"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="274659"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="54602"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="29688"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="9153"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="26368"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="8092"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="46032"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2043"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="27008"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1662"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="26788"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="11907"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="26514"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="9844"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="28020"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="41551"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="26618"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="24454"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="13544"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="31125"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="28398"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="32581"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="15971"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="61589"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5498"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="18216"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="11157"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="18787"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="9724"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="18967"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5998"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="23279"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="7771"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="25136"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5568"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="5678"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4637"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1833"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5097"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2183"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5175"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1963"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4897"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2844"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4607"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2233"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4887"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1442"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4586"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="581"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4587"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="761"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4767"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="731"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4877"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1041"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4577"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="631"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4216"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1432"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="711"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="1252"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="651"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1142"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1843"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1091"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="922"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="7801"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="370"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2023"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="271"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1432"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2975"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1291"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1122"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1782"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2276"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1371"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1242"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="471"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="831"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="902"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1092"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="4577"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="3687"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="36031"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="7405"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5428"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3055"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5728"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2113"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="12378"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="571"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6399"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="450"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5248"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="4166"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5377"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2304"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6500"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="6108"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5508"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3816"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2684"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4787"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="5087"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="5679"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="18897"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="16554"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="273155"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="54258"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="29472"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="9153"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="26378"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="8176"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="43873"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2063"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="27182"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1672"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="27129"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="11897"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="26973"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="10132"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="28561"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="40892"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="26855"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="24675"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="14221"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="31199"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="28291"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="32907"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="16294"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="61574"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5168"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="18130"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="11196"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="18746"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="9444"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="18997"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6138"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="23564"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="7811"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="25417"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5217"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="5719"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4647"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1813"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5207"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1993"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4927"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1963"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5398"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2854"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4607"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2243"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4697"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1392"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4777"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="591"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4586"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="761"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4867"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="661"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5158"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1051"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4467"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="741"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4346"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1442"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="701"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="1072"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="621"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1162"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1892"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1032"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="991"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="7963"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="410"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1793"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="270"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1332"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3314"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1422"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1192"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1632"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2023"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1292"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1242"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="471"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="831"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="901"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1081"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="4686"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="3735"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="35777"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="7260"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5467"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2975"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5898"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1913"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="13900"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="581"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6489"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="441"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5438"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="4176"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5358"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2554"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6239"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="6009"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5408"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3826"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2663"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4807"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4536"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="5698"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="19188"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="16584"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="271816"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="54534"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="29112"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="9273"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="26477"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="8150"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="43313"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2083"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="26698"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1663"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="26799"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="12106"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="26528"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="9794"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="28387"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="41280"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="26888"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="24869"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="13449"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="30916"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="28311"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="32407"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="16163"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="61373"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5278"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="18203"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="11326"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="18657"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="10405"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="19054"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6089"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="23474"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="7691"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="25396"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5207"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="5628"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4597"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1833"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5027"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2093"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5127"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1963"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5098"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2864"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4696"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2234"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4707"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1392"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4746"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="591"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4517"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="751"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4967"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="751"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4947"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1132"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4576"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="641"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4246"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1332"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="720"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="1202"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="631"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1152"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1892"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="922"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="991"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="7942"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="350"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1923"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="270"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1422"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3188"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1422"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1102"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1672"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2023"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1082"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1241"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="481"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="921"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="901"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1112"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="4547"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="3645"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="36104"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="7330"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5498"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3064"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5588"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1973"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="12648"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="591"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6077"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="450"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5378"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="4176"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5357"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2334"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6720"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="5969"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5387"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3776"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2423"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4797"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4877"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="5759"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="18817"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="16980"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="275423"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="54065"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="30004"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="9331"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="26668"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="8112"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="42638"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2083"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="28111"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1662"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="27177"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="11715"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="26428"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="10024"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="28133"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="41498"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="26658"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="24546"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="13654"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="31576"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="28466"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="32437"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="16299"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="61604"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5258"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="18271"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="10935"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="18912"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="9063"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="19117"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6169"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="23393"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="7626"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="25427"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5318"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="5688"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4727"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1842"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5358"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1963"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4867"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1963"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4797"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2844"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4791"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2273"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4628"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1402"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4667"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="591"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4486"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="761"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4687"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="721"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5678"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1142"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4476"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="641"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4426"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1563"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="681"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="1201"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="621"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1172"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1863"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1051"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="982"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="9363"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="441"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1953"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="280"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1331"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3065"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1492"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1092"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1813"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2333"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1252"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1262"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="481"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="831"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="891"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1071"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="4666"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="3766"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="35972"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="7410"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5398"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3044"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5799"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1963"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="12448"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="581"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6340"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="450"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5348"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="4176"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5478"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2313"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6469"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="6019"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5397"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4523"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="3155"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="5698"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="5048"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="6019"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="18735"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="16634"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="274940"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="54349"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="30464"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="10043"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="26187"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="8392"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="42380"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2073"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="27248"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1713"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="27420"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="11927"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="26706"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="9874"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="28531"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="42284"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="26869"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="24629"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="13470"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="31755"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="28401"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="32336"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="16134"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="61968"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5297"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="18257"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="11113"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="18747"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="9593"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="19108"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6109"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="23866"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="7744"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="25316"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5548"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="5719"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4746"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1760"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5188"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2093"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5137"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1993"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5147"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2864"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4607"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2253"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4647"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1392"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4666"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="611"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4907"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="701"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4887"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="731"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4867"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1142"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4577"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="741"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4266"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1482"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="691"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="1072"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="712"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1092"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2193"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1191"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1022"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="11373"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="411"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1932"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="261"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1242"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2974"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1282"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1132"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1582"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2023"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1502"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1232"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="460"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="832"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1181"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1122"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="4587"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="3685"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="35682"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="7311"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5328"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2864"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5999"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2012"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="14141"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="641"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6629"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="451"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5307"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3972"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5197"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2364"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6570"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="6139"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5588"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3775"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2704"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4837"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4547"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="5826"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="19205"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="16634"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="275210"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="54323"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="29562"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="9133"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="26498"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="8071"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="43133"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2083"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="26927"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1663"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="27510"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="12246"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="26628"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="9864"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="28117"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="41109"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="27043"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="24926"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="13489"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="31511"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="28396"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="32487"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="16284"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="61600"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5278"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="18296"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="11186"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="18777"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="10405"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="18954"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5969"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="23364"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="7691"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="25752"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5267"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="5678"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4867"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1823"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5226"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2083"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4847"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2283"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4777"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2844"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4606"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2264"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4607"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1492"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4767"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="580"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4507"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="751"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5006"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="721"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4887"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1032"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4476"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="641"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4306"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1342"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="711"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="1172"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="631"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1142"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1872"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1192"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1021"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="7751"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="350"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1813"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="290"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1422"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3485"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1422"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1202"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1583"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1912"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1142"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1242"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="400"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="821"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="911"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1122"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="4617"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="3655"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="36547"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="7441"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5608"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3045"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5507"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2173"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="16604"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="610"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6209"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="451"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5257"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="4096"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5638"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2334"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6560"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="5948"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5388"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3755"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2424"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4787"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4857"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="5748"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="19478"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="16581"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="276868"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="54378"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="29308"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="9253"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="26478"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="8122"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="46595"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2123"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="27310"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1672"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="27331"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="11867"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="26718"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="9769"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="28530"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="41232"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="26918"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="24715"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="13770"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="31395"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="28608"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="32304"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="16373"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="62119"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5458"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="18517"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="10755"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="18616"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="9664"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="19043"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5989"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="23598"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="8121"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="25257"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5438"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="5588"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4546"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1803"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5198"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1972"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5449"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1973"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4797"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2854"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4707"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2263"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4687"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1382"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4737"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="561"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4576"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="741"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4890"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="721"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5277"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1042"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4577"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="630"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4296"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1482"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="771"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="1082"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="621"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1132"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1852"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1202"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1032"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="10284"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="411"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1923"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="260"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1372"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2974"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1392"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1101"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1673"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2014"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1302"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1252"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="461"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="831"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="921"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1422"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="4827"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="3606"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="35641"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="7275"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5738"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3005"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5648"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2003"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="12237"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="541"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6429"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="471"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5187"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="4166"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5388"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2313"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6654"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="6118"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5809"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3875"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2414"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4817"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4586"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="5779"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="19148"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="16574"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="271635"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="54669"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="29392"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="9124"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="26598"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="8231"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="45686"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2103"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="26959"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1672"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="27720"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="11807"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="26733"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="9814"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="28692"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="41231"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="27069"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="24841"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="14647"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="31704"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="28632"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="32818"/>
-        </task>
-      </group>
-    </group>
-  </case>
-</log>
diff --git a/tests/org.eclipse.team.tests.cvs.core/benchmark/team2.0/2002_03_19.integration.all.xml b/tests/org.eclipse.team.tests.cvs.core/benchmark/team2.0/2002_03_19.integration.all.xml
deleted file mode 100644
index d783a1f..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/benchmark/team2.0/2002_03_19.integration.all.xml
+++ /dev/null
@@ -1,4577 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<log timestamp="20/Mar/2002 14:30:14" sdkbuild="20020319">
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2674"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="15162"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2193"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4426"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4817"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="4967"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3875"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5361"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1923"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="9303"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1793"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="7831"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1483"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1882"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1623"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="881"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1452"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="731"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1683"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="681"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1703"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1362"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1241"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="992"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1422"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="831"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1672"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="641"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1222"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="290"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1423"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="390"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1663"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="520"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1291"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="321"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="701"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1302"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="611"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="1222"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="601"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1041"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2313"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1201"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1012"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="9444"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="450"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1572"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="350"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="941"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2173"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1112"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="831"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1232"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2694"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="881"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1312"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="461"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="451"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1032"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1422"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1852"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="961"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="32442"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="10405"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1552"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2834"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1693"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1382"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="7561"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="581"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2524"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="340"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1762"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2384"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1642"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1002"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2114"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2904"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1492"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1683"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="4146"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1562"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="2073"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4436"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="3525"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="2301"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="207531"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="72365"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3666"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3224"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4135"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1202"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="20872"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="421"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4086"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="351"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4096"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2844"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3986"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1081"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4687"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="4306"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4387"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2543"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="26942"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="11076"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="10675"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="14451"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2894"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="14922"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1963"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4476"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4697"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="4706"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3666"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5714"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1783"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="9473"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1842"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="7521"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1613"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1882"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1301"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="751"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1452"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="782"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1742"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="841"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1532"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1322"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1292"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="931"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1532"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="801"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1622"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="541"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1132"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1001"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1442"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="360"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1753"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="521"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1292"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="310"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="591"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1232"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="611"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="1132"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="571"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1031"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2314"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1412"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1031"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6169"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="480"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1362"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="361"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1121"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2526"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1152"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="911"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1262"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2734"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="861"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1402"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="440"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="441"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1041"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1502"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1782"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="932"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="32715"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="10425"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1572"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2744"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1592"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1222"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="7931"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="491"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2503"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="401"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1963"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2393"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1543"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="981"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2085"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2904"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1493"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1692"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="4206"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1522"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="2023"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4477"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="3936"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="2207"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="217383"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="72154"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3605"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3245"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4216"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1152"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="22829"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="431"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4046"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="330"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3945"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2845"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4176"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1051"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4747"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="4176"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3946"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2513"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="26406"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="11908"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="10646"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="14140"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2754"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="14862"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2083"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4256"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5147"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="4708"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3795"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5057"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1922"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="9544"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1893"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="7881"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1572"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1903"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1703"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="831"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1542"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="721"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1533"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="620"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1542"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1322"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1282"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1011"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1542"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="792"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1522"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="551"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1232"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="370"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1533"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="380"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1553"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="510"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1112"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="421"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="561"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1312"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="611"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="1322"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="561"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1122"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2633"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1432"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1071"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6465"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="500"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1352"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="350"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="891"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2093"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1142"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="791"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1252"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2674"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="781"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1712"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="391"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="441"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1052"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1522"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1743"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1011"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="32568"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="10375"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1522"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2744"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1603"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1181"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="7921"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="491"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2844"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="371"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1923"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2350"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1552"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="961"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2264"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2844"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1572"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1703"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="4186"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1482"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="2003"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4827"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="3639"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="2243"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="218974"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="72604"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3835"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3415"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4218"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1141"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="21791"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="461"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3956"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="340"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4136"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2794"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4035"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1212"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4637"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="4266"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3936"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2583"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="26569"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="12047"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="10655"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="14561"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2734"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="15001"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1952"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4667"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5348"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="4797"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4126"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5127"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2033"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="9694"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1833"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="7581"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1632"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2033"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1462"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="841"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1552"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="691"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1532"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="711"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1532"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1452"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1260"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="961"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1482"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="821"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1493"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="540"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1131"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="351"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1432"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="370"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1663"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="510"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1102"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="320"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="591"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1322"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="611"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="1122"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="551"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1042"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2323"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1292"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1042"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="8072"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="460"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1483"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="350"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="921"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2233"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1142"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="841"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1312"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2744"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="932"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1452"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="420"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="441"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1011"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1482"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1857"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="881"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="32217"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="10675"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1602"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2724"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1723"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1161"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="8519"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="511"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2423"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="371"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1772"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2303"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1512"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="951"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2333"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2854"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1633"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1732"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="4116"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1532"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="2043"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4477"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="3295"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="2233"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="216834"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="74733"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3615"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3595"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4086"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1212"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="20910"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="421"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3996"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="340"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3895"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2794"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4136"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1070"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4687"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="4246"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4457"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2583"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="27639"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="10986"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="10670"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="14561"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2734"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="15342"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1862"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4327"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4497"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="4717"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4546"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5138"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2263"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="9644"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1963"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="7776"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1643"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1802"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1382"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="772"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1643"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="691"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1612"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="651"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1732"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1382"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1242"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="981"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1452"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="701"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1522"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="541"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="972"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="350"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1422"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="390"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1663"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="490"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1091"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="331"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="731"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1322"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="581"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="1222"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="541"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1041"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2324"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1412"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="971"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="7210"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="431"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1592"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="340"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1101"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2144"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1181"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="822"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1282"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2703"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="711"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1692"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="421"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="440"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="992"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1422"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1603"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1021"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="32727"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="10355"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1497"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2674"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1753"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1202"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="7851"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="471"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2724"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="391"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1713"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2343"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1663"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="921"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2283"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3105"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1592"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1663"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="4156"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1562"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="2033"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4396"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="3255"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="2143"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="216621"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="72830"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3786"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3394"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4065"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1102"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="22031"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="461"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4086"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="320"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4053"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2824"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3986"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1532"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4286"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="4166"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3725"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2624"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="27980"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="10964"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="11216"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="14601"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2774"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="15325"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1792"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4246"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4757"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="5237"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3525"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4867"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1912"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="9744"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2022"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="7712"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1582"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2033"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1462"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="841"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1372"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="691"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1803"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="591"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1492"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1382"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1242"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="941"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1492"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="681"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1723"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="541"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="981"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="341"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1302"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="290"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1543"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="510"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1201"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="411"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="681"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1302"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="651"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="1182"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="571"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1081"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2363"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1161"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="982"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6940"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="491"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1352"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="370"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1091"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2183"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1071"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="911"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1242"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3124"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="735"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1402"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="431"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="431"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1082"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1452"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1742"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="911"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="32577"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="10385"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1592"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2694"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1632"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1172"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="8242"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="451"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2854"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="351"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1663"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2443"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1663"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="961"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2373"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2915"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1672"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1673"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="4176"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1505"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="2013"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4476"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="3154"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="2133"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="218973"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="73744"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3745"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3415"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4446"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1162"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="22942"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="450"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4075"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="331"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3956"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2874"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4647"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1102"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4556"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="4226"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3876"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2524"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="28050"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="11036"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="10905"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="14733"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2604"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="15522"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2133"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4166"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4927"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="5087"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3465"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4920"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1953"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="9684"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1752"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="7581"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1522"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1803"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1703"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="851"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1432"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="711"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1703"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="630"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1462"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1322"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1302"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1422"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1452"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="691"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1532"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="541"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1162"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="341"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1502"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="371"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1592"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="481"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1101"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="311"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="581"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1262"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="651"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="1122"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="611"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1051"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2334"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1392"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="991"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6569"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="431"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1322"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="320"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1061"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2184"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1121"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="852"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1272"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2714"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1062"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1342"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="431"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="440"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1011"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1432"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1522"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="991"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="32618"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="10425"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1482"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2604"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2263"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1162"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="7812"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="440"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2574"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="330"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1783"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2313"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1593"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="961"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2122"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2804"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1602"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1672"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="4096"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1562"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1983"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4366"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="3014"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="2201"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="221419"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="77876"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3786"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3775"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4466"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1271"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="20630"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="410"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4026"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="321"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4086"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2854"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4367"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1151"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4727"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="4186"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4254"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2554"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="28561"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="11056"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="11366"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="14371"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2724"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="14981"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2073"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4226"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5257"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="4807"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4166"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5829"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2273"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="10025"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1883"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="7801"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1643"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1802"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1602"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="841"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1342"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="771"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1642"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="621"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1412"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1522"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1292"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="951"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1532"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="822"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1407"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="510"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1111"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="291"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1442"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="370"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1572"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="501"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1091"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="311"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="731"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1222"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="601"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="1232"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="601"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1041"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2314"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1432"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="981"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6719"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="411"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1322"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="310"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1101"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2624"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1102"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="811"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1242"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2744"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="811"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1362"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="451"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="441"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1042"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1412"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1678"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="982"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="32917"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="10345"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1542"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3255"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1793"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1191"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="13009"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="461"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2423"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="351"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1712"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2394"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1712"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="942"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2313"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2744"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1552"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1683"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="4647"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1522"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1993"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4286"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="3736"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="3795"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="220088"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="74941"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4266"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3124"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4237"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1141"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="21802"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="481"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4166"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="330"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3866"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2834"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4397"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1101"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4447"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="4176"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3945"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2704"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="29052"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="11037"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="11217"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="14561"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2584"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="15588"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2002"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4186"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4827"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="5177"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3776"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5227"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1963"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="9829"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1812"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="7481"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1642"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1892"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1583"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="851"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1562"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="681"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3335"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="681"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1483"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1311"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1201"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="932"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1462"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="791"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1633"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="530"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1221"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="301"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1512"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="301"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1532"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="621"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1292"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="320"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1342"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1231"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="630"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="1122"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="621"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1042"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2303"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1422"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="992"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="7861"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="451"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1332"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="310"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1091"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2123"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1061"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="851"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1270"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2774"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="901"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1402"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="390"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="431"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1602"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1472"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1732"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="981"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="32609"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="10367"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1462"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2724"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1613"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1171"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="7921"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="451"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2353"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="331"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2283"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2293"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1522"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="942"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2273"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2784"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1622"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1703"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="4133"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1552"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1983"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4296"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="3575"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="2143"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="222856"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="74203"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3635"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3795"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4176"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1202"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="23106"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="410"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4176"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="331"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4036"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3375"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4266"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1162"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4466"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="4216"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3955"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2524"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="28879"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="11617"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="10605"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="14991"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2704"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="14631"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2053"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4226"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5498"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="5065"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3465"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5438"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1943"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="9394"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1842"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="7431"/>
-        </task>
-      </group>
-    </group>
-  </case>
-</log>
diff --git a/tests/org.eclipse.team.tests.cvs.core/benchmark/team2.0/2002_04_24.milestone5.all.xml b/tests/org.eclipse.team.tests.cvs.core/benchmark/team2.0/2002_04_24.milestone5.all.xml
deleted file mode 100644
index 04fd661..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/benchmark/team2.0/2002_04_24.milestone5.all.xml
+++ /dev/null
@@ -1,12053 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<log timestamp="24/Apr/2002 15:53:15" sdkbuild="20020416">
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2564"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3625"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2744"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3806"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6019"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1422"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4547"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4536"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2784"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1482"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2564"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5638"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1902"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="962"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1853"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="751"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2003"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="440"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1973"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="621"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1922"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="481"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1532"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="741"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1943"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="751"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1973"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="430"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1522"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="400"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1702"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="421"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2113"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="541"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1502"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="310"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="641"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1282"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="601"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="1152"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="531"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1524"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1141"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1673"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="941"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="10094"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="391"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1782"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="441"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1422"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1302"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1011"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1232"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1252"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1131"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1161"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1072"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="320"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="441"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="651"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="912"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1672"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="922"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="10177"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="5118"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1963"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1603"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2233"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1061"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="10034"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="351"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2764"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="330"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1963"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1663"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2233"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1482"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2183"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1342"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2177"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1222"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="611"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1172"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1522"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="3024"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="3304"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="2163"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="81915"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="36993"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4817"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1402"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4467"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1087"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="18637"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="471"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4847"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="361"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4327"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1482"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4937"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1472"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5047"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2383"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4436"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1953"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2924"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="6800"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="6431"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="7511"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2564"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3675"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2644"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3505"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6109"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1212"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4797"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4837"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2592"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1352"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2303"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5749"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1922"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="962"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1973"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="741"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1963"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="430"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1993"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="571"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1993"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="551"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1488"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="741"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1893"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="641"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1993"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="430"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1463"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="370"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1793"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="310"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2183"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="590"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1492"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="410"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="591"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1227"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="571"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="1212"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="531"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1453"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1251"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1692"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="871"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="10234"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="321"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1883"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="340"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1432"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1222"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1031"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1262"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1212"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1081"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1012"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1142"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="310"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="401"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="671"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1012"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1632"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="811"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="10315"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="5207"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1893"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1572"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2233"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1012"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="10295"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="381"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3118"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="321"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2123"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1572"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2233"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1432"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2344"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1412"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2083"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1192"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="641"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1161"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1472"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="3145"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="3205"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="2133"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="83384"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="37044"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4347"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1442"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4797"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="981"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="18497"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="441"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4977"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="371"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4316"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1503"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4721"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1483"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4977"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2434"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4486"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1933"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2604"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="6930"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="6619"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="7451"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2424"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3625"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2674"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3565"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6168"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1382"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4363"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4526"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3085"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1292"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2473"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5899"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1833"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1061"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2052"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="641"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1863"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="451"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2053"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="611"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1853"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="591"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1522"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="721"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1922"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="741"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1882"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="431"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1492"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="315"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1833"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="360"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1853"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="581"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1502"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="331"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="761"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1272"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="851"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="952"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="481"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1532"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1252"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1652"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="771"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="10312"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="331"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1763"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="340"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1442"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1192"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1011"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1282"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1131"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1202"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1062"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1051"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="230"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="390"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="751"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1001"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1602"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1022"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="10535"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="5113"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1963"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1512"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2223"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1162"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="10577"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="441"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3024"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="291"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2043"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1472"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2233"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1652"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2454"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1622"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2083"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1232"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="811"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1202"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1502"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="3135"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="3224"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="2113"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="82936"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="37477"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4577"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1322"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4486"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="992"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="18468"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="470"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5017"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="355"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4356"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1592"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4507"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1422"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5218"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2674"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4436"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1933"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2954"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="6920"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="7784"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="7310"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2604"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3435"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2814"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3505"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6208"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1493"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4697"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4446"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2844"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1553"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2403"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5668"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1832"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="972"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2053"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="751"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2053"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="440"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1872"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="661"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2033"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="550"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1543"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="711"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1872"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="812"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2083"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="430"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1642"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="390"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1692"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="411"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1983"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="581"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1402"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="350"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="811"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1212"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="581"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="1141"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="550"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1592"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1032"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1692"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="872"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="10445"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="331"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1782"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="321"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1292"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1092"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1021"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1182"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1232"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1141"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="991"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="961"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="270"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="381"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="701"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="971"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1583"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="851"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="10205"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="5197"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1973"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1512"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2314"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1191"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="10325"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="380"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3355"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="341"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2032"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1583"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2353"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1522"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2474"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1582"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2103"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1332"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="601"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1222"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1482"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="3105"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="3355"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="2183"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="81434"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="36983"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4457"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1081"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5168"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="971"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="23705"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="450"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4727"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="321"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4467"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1542"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4917"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1502"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5368"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2473"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4537"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2003"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2864"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="7311"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="6529"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="7271"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2513"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3525"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2964"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3725"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6019"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1292"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5217"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4787"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2614"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1272"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2283"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5598"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2299"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="961"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1973"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="731"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1943"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="450"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1863"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="661"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2294"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="480"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1452"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="721"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1793"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="640"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1882"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="641"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1392"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="411"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1715"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="390"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2083"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="540"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1402"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="331"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="771"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1241"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="651"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="1081"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="530"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1452"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1242"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1663"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="921"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="8633"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="380"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1773"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="360"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1442"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1312"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1202"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1232"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1023"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1181"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1212"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1022"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="240"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="381"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="671"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="942"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1532"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="941"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="10065"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="5207"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1872"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1693"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2143"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1212"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="8502"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="441"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3054"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="341"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2063"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1662"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2143"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1442"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2424"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1472"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2223"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1342"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="611"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1202"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1472"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="3114"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="3005"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="2163"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="85754"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="37565"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4817"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2313"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4657"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="921"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="24043"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="470"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4566"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="331"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4216"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1603"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5117"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1502"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5217"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2684"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4948"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2423"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="3595"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="6823"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="9404"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="7361"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2554"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3936"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2513"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3716"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5699"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1412"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4767"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4486"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2864"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1242"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2594"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5798"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1843"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1051"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1863"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="751"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1943"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="451"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2063"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="721"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1853"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="661"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1462"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="811"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1893"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="651"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1963"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="430"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1703"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="400"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1902"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="421"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1973"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="611"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1462"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="411"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="751"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1112"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="591"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="1031"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="500"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1502"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1242"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1673"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="811"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="8462"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="341"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1672"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="321"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1492"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1312"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1011"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1222"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1212"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1201"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1231"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1072"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="260"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="371"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="781"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="991"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1792"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="882"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="9894"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="5117"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1893"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1512"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2213"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="972"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="9263"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="441"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3256"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="460"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2133"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1563"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2423"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1502"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2514"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1602"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2203"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1332"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="701"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1202"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1462"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="3134"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="3284"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="2113"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="77276"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="38450"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4256"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1662"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4316"/>
-        </task>
-        <task name="Sync View Update action">
-          <abort type="warning" message="Encountered error dialog with title: Problem Occurred">
-          </abort>
-          <result elapsed="8483"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="23183"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="481"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4276"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="811"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4528"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1492"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5047"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1392"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4917"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2493"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4917"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1883"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2814"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="7471"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="6720"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="7070"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2673"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3526"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2643"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3656"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5939"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1432"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5248"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4296"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2864"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1252"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2393"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5678"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1862"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="962"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2053"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="651"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1903"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="380"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2043"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="541"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2194"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="681"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1452"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="681"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1963"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="731"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2093"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="431"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1512"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="381"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1742"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="311"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2013"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="551"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1302"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="400"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="812"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1282"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="631"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="1101"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="560"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1532"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1135"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1702"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="851"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="8412"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="350"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1713"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="300"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1452"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1322"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="992"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1241"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1242"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1122"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1121"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1032"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="220"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="391"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="701"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="961"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1502"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="932"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="10167"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="5178"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1893"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1592"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2133"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="991"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="9093"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="350"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3304"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="341"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2053"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1672"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2243"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1453"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2524"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1502"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2103"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1513"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="711"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1232"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1472"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="3145"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="3495"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="2123"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="83951"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="37704"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4957"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1692"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4740"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1022"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="22382"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="431"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4697"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="360"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4366"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1352"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4366"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1502"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5288"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2454"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5227"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1943"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2534"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="6950"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="8482"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="7260"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2764"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3635"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2703"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3796"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6360"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1261"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4637"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4517"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2874"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1472"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2494"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="6249"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2033"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1061"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2073"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="731"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1892"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="441"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1763"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="651"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2113"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="461"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1462"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="711"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1883"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="641"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1883"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="431"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1522"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="310"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1802"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="411"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2363"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="581"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1378"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="311"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="611"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1312"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="621"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="1092"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="521"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1482"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1172"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1652"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="932"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="11056"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="340"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1793"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="310"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1424"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1312"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1002"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1221"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1252"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1202"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1202"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="991"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="260"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="381"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="671"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1482"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1562"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="821"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="10315"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="5198"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1972"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1570"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2043"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1111"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="10755"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="391"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3114"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="351"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2694"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1572"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2343"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1523"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2674"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1592"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2203"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1242"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="691"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1221"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1442"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="3135"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="3295"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="2093"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="82859"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="37092"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4567"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1392"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4567"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1031"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="22386"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="451"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4707"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="350"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4386"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1502"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5028"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1462"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5118"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3184"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4437"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1832"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2544"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="7010"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="7083"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="7150"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2593"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3545"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2593"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3616"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6540"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1151"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5267"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4567"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2704"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1281"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2473"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5761"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2013"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="922"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1672"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="741"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1933"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="441"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1973"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="591"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2023"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="601"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1522"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="731"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1823"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="530"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1992"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="421"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1402"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="301"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1692"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="311"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1853"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="581"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1302"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="310"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="621"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1321"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="621"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="1001"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="521"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1492"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1352"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1663"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="811"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="11426"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="301"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1672"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="331"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1392"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1221"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1001"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1212"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1112"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1292"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1222"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1041"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="321"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="380"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="697"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1001"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1602"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="891"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="10295"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="5087"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1973"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1592"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2233"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1081"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="11156"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="430"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2739"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="331"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2063"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1582"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2914"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1432"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2233"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1322"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1983"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1332"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="701"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1052"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1452"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="3135"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="3185"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="2133"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="86872"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="37017"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4627"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1322"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4747"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="911"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="22663"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="451"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4396"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="351"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4437"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1502"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5328"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1452"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5708"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2273"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4537"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1892"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2563"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="6930"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="6700"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="7271"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2604"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3525"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2772"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3555"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6790"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1442"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4507"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4917"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2854"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1522"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2304"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="6379"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1823"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="961"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1873"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="731"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1903"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="440"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1773"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="561"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2003"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="771"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1452"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="671"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1913"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="741"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2083"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="566"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1572"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="311"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1792"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="341"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1993"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="541"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1402"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="441"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="581"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1262"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="711"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="1111"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="570"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1462"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1152"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1673"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="871"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="11707"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="441"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1923"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="310"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1452"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1102"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1031"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1252"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="951"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1192"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="971"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1062"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="220"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="381"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="691"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="951"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1642"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="871"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="9984"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="5178"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1762"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1492"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2043"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1032"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="11377"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="390"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2834"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="321"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2053"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2273"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2233"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1472"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2263"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1593"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2003"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1332"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="611"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1211"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1482"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="3165"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="3505"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="2153"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="77430"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="36673"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4327"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1291"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4998"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="881"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="22983"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="471"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4587"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="350"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4537"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1482"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4326"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1713"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5468"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2715"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4757"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1943"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2603"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="7000"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="6530"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="7401"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2764"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3625"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2544"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3685"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6540"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1152"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4492"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4777"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2844"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1442"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2504"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="6159"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1913"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1041"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1873"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="641"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1943"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="541"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1973"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="590"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1983"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="781"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1542"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="721"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1863"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="751"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1973"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="440"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1402"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="390"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1911"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="301"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1933"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="530"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1402"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="310"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="611"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1251"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="620"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="1122"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="561"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1492"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1152"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1672"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="902"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="12064"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="341"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1883"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="290"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1352"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1122"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1011"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1222"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1170"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1272"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1082"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1061"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="331"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="380"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="681"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1012"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1802"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="841"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="9754"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="5160"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2003"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1392"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2303"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1041"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="11416"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="421"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2914"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="311"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2885"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1572"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2253"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1552"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2594"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1602"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2093"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1331"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="601"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1061"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1532"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="3154"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="3475"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="2163"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="83943"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="36912"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4617"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1392"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4576"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="962"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="20821"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="461"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5218"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="360"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4286"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1492"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4536"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1462"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5137"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2484"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4767"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1932"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2463"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="6846"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="8732"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="7300"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2534"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3515"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2774"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3515"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6610"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1372"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4697"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4416"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2879"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1963"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2383"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5438"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1863"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="951"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2063"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="751"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1912"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="471"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2043"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="651"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1948"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="581"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1432"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="731"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1903"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="641"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1983"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="431"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1672"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="361"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1682"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="361"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1933"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="571"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1412"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="300"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="731"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1161"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="631"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="991"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="571"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1502"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1052"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1672"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="972"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="11346"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="421"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1672"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="311"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1472"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1292"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1011"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1932"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1562"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1222"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1102"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="971"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="301"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="380"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="711"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="991"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1612"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="891"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="10095"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="5177"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1913"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1492"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2243"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1011"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="10936"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="431"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3445"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="320"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1963"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1482"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2233"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1553"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2384"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1362"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2043"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1342"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="691"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1172"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1542"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="3154"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="3215"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="2203"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="79820"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="36618"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4597"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1482"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4446"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1022"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="23138"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="461"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4597"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="370"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4486"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1382"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5338"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1492"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5117"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2584"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4556"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1853"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2694"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="6940"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="8783"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="7230"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2503"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3425"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2995"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3455"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6690"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1242"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4587"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4436"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2694"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1432"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3115"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5658"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1862"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="952"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1873"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="631"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2344"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="491"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2013"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="681"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2063"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="771"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1452"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="721"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1893"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="551"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1973"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="431"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1422"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="471"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1752"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="311"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2193"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="581"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1402"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="401"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="721"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1282"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="601"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="1001"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="520"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1452"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1142"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1683"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="871"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6680"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="380"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2693"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="301"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1482"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1131"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1071"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1272"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1292"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1221"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1201"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="972"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="290"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="381"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="640"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="991"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1613"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="881"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="9954"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="5128"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1932"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1573"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2263"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1102"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="9123"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="401"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3595"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="341"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2062"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1503"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2313"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1522"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2373"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1312"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2204"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1321"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="601"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1151"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1442"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="3055"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="3415"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="2093"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="83238"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="36995"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4396"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1422"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5538"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="931"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="21781"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="411"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4707"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="370"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4613"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1392"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5638"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1432"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4877"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2714"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4647"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1963"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2534"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="7611"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="6450"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="7145"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2703"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3646"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2807"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3735"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6930"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1252"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4477"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4656"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2694"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1452"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2404"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="6099"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1852"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1052"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1963"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="641"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2303"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="411"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1983"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="550"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2113"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="701"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1532"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="651"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2003"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="651"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1983"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="421"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1522"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="311"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1812"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="311"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1953"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="571"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1402"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="411"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="591"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1282"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="601"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="1021"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="540"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1442"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1042"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1662"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="932"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6597"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="401"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2654"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="290"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1362"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1412"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1202"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1242"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="992"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="971"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1112"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="981"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="300"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="381"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="671"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1031"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1642"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="881"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="10164"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="5138"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2013"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1512"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2223"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1022"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="9313"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="411"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3886"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="350"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2203"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1653"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2233"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1651"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2514"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1512"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1983"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1202"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="721"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1372"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1483"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="3124"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="3415"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="2117"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="82778"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="37043"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4507"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1392"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4927"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="841"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="20739"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="441"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4447"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1181"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4326"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1603"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4827"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1532"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5148"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2583"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4536"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2003"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2644"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="6920"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="6659"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="8021"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2604"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3425"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2443"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3876"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6498"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1232"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4577"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4827"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2694"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1452"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2304"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="6409"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1923"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1051"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1963"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="641"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1793"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="440"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1963"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="631"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1853"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="591"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1432"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="641"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1933"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="741"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2083"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="437"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1512"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="411"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1812"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="431"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2033"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="491"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1502"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="321"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="641"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1342"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="641"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="1001"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="510"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1452"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1062"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1662"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="872"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="12017"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="421"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1752"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="341"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1462"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1292"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1011"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1332"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1092"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1181"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1192"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1002"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="270"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="391"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="661"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1002"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1772"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="882"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="10091"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="5247"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1893"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1462"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2373"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="971"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="11086"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="330"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3816"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="320"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2263"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1673"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2243"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1532"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2834"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1623"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2172"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1261"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="661"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1211"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1542"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="3125"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="3465"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="2143"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="85400"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="38275"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4718"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1553"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4837"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="951"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="21242"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="421"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4666"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="351"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5277"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1623"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4516"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1432"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5193"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2614"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4657"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2133"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="3525"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="6900"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="9053"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="7381"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2794"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3625"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2804"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3746"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6435"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1452"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4747"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4467"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2904"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1452"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2404"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5508"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2063"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="951"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1963"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="791"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1963"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="451"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1998"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="631"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1953"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="600"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1422"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="691"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1882"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="701"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2076"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="430"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1412"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="420"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1713"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="390"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1892"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="571"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1603"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="310"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="711"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1161"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="590"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="922"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="571"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1412"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1362"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1662"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="912"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="11917"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="421"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1752"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="311"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1422"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1101"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1032"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1232"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1122"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1192"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1021"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1052"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="210"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="391"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="671"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="921"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1652"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="932"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="9980"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="5097"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1953"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1522"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2514"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1162"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="11016"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="390"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3535"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="350"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2113"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1592"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2424"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1472"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2914"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1452"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2103"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1332"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="671"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1172"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1522"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="3174"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2864"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="2103"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="86353"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="37765"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4577"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1422"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4427"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="981"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="21221"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="420"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4646"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="491"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4416"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1402"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4626"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1482"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4962"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2494"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4727"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1862"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2614"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="6844"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="7221"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="8312"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2764"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3425"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2774"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3635"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6589"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1423"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4406"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4416"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2794"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1241"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2413"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5398"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1893"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1051"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1962"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="742"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2083"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="351"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1943"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="591"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1883"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="761"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1452"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="701"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1853"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="641"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1983"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="430"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1512"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="320"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1843"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="371"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2133"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="541"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1402"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="310"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="571"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1562"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="551"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="1122"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="491"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1482"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1352"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1682"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="891"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="12107"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="331"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1652"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="310"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1442"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1222"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1012"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1161"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="982"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1181"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1081"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="982"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="320"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="401"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="701"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="991"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1593"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="931"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="10481"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="5058"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1972"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1593"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2233"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1082"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="11486"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="411"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3786"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="310"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2113"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1582"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2244"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1422"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2334"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1362"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2041"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1312"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="631"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1191"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1482"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="3255"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2914"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="2083"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="87017"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="38426"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4263"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1612"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4847"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="921"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="21350"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="421"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5648"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="331"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4316"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1492"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4727"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1452"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5273"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2574"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4546"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1913"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2654"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="6900"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="6469"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="7141"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2604"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3415"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2874"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3655"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6783"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1222"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4206"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4527"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2664"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1352"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2403"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5558"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2033"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1052"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2073"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="631"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2072"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="441"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1873"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="621"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2053"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="461"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1442"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="721"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1893"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="650"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1982"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="431"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1382"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="301"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1813"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="400"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2184"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="570"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1392"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="421"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="611"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1292"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="610"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="1032"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="541"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1472"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1051"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1672"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="901"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="12588"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="410"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1753"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="300"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1349"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1151"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1072"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1262"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1211"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1222"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1002"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1041"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="351"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="370"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="671"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="962"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1712"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="901"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="10437"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="5107"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1963"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1512"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2124"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1201"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="11146"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="430"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3786"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="290"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1963"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1592"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2434"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1502"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2393"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1632"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2199"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1292"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="621"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1201"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1492"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="3065"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2884"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="2113"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="86620"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="38155"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4759"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1372"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4887"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="942"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="21531"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="441"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5488"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="360"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4326"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1402"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4527"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1462"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5252"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2564"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4536"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1983"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2494"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="6940"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="8853"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="7301"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2544"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3425"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2514"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3835"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6669"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1282"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4587"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4817"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2744"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1552"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2423"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5608"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1983"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1172"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1843"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="791"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1953"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="430"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1902"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="531"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1913"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="581"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1532"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="751"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1888"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="701"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2083"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="430"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1523"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="330"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1683"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="310"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2083"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="581"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1493"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="320"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="671"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1202"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="631"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="1102"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="531"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1522"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1362"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1672"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="932"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="12918"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="391"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1653"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="330"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1392"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1121"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="992"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1262"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1241"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1192"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1012"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="951"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="311"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="380"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="691"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="961"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1692"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="831"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="10365"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="5097"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1943"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1492"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2233"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="981"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="11677"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="380"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4036"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="321"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1992"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1583"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2233"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1492"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2681"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1722"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1872"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1282"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="651"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1322"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1562"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="3164"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="3755"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="2133"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="84818"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="37264"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4536"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1533"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6048"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1062"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="29856"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="581"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4426"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="371"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4296"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1502"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5418"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2504"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4977"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2574"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4547"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2023"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2814"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="6960"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="6339"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="7117"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2634"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3435"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2634"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3524"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6660"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1352"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4386"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4427"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2854"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1352"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2424"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5257"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1803"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1168"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2063"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="741"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2363"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="531"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2183"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="601"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1873"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="581"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1432"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="741"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1862"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="661"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1963"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="441"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1592"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="431"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1783"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="320"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2274"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="591"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1492"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="310"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="691"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1241"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="611"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="1011"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="501"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1502"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1152"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1662"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="912"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="13379"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="421"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1863"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="360"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1482"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1202"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1001"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1172"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1081"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1242"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1032"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="941"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="301"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="380"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="671"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="971"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1683"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="801"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="10094"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="5208"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1953"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1412"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2123"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1001"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="18246"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="450"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3213"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="301"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2634"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1572"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2153"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1422"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2523"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1312"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2173"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1272"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="841"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1162"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1453"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4146"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="3104"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="2104"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="86283"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="37226"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6048"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1122"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4517"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="931"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="21661"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="441"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5558"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="408"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4277"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1281"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4566"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1532"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4890"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2504"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4526"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1893"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2574"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="6960"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="9884"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="7161"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2643"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3427"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2664"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3475"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6890"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1472"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4386"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4537"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2704"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1252"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2303"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5628"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1973"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="851"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1873"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="751"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1973"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="290"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2223"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="621"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1943"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="661"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1452"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="661"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1883"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="640"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2053"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="470"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1392"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="310"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1813"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="400"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1892"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="581"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1402"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="321"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="651"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1141"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="570"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="1102"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="501"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1482"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1132"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1672"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="801"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="11356"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="381"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2964"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="300"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1422"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1422"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1002"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1202"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1282"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1192"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1212"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1021"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="271"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="360"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="651"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="972"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1662"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="921"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="9784"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="5187"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2063"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1462"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2183"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1031"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="15672"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="431"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2734"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="320"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2183"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1472"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2253"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1542"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2383"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1492"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2103"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1252"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="691"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1192"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1472"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="3135"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="3475"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="2163"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="88852"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="38703"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4557"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1342"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4827"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="961"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="27958"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="451"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4476"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="351"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4377"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1422"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5498"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1462"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5168"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2273"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4757"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1853"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2604"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="7610"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="7040"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="7280"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2434"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3635"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2975"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3645"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6890"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1382"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4416"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4416"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2784"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1512"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2345"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5658"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1943"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="962"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1852"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="751"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1813"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="431"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2063"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="551"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1712"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="761"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1452"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="731"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1913"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="641"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1983"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="440"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1402"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="411"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1803"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="320"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2022"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="561"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1392"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="311"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="641"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1483"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="661"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="1001"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="520"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1462"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1362"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1663"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="881"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="11487"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="390"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2914"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="290"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1412"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1312"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1007"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1332"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1131"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1412"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1011"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1112"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="250"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="411"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="711"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="951"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1692"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="851"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="10104"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="5148"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1942"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1643"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2393"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1032"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="15392"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="361"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2904"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="331"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2033"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1472"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2343"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1492"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2133"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1592"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2003"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1322"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="611"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1192"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1502"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="3114"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2924"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="2033"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="84497"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="38375"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4727"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1402"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4637"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="931"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="27961"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="421"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4447"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="370"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4376"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1512"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5729"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1522"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4988"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2293"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4647"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1892"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2764"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="7090"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="8041"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="8422"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2464"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3625"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2754"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3646"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6889"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1282"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4617"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4620"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2834"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1362"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2503"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5508"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2453"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="957"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1953"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="650"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2003"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="441"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2073"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="661"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1952"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="671"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1433"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="751"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1792"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="651"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1873"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="431"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1502"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="411"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1882"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="311"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1983"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="571"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1402"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="310"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="751"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1212"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="621"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="1121"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="510"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1382"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1252"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1673"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="901"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="11541"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="400"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2955"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="310"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1222"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1311"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1001"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1222"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1061"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1182"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1092"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1021"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="271"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="370"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="711"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1002"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1562"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="932"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="10081"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="5197"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2003"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1502"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2243"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1081"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="15742"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="421"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3035"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="320"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1853"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1572"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2313"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1412"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2504"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1592"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2223"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1252"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="661"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1172"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="2854"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="3035"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2974"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="2023"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="90482"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="37553"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5738"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1472"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5047"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1092"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="27540"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="491"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4476"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="351"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5498"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1731"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="7230"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2574"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5128"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2734"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4627"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1952"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2733"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="6940"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="7681"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="7270"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2464"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3435"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2983"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3505"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6880"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1403"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4287"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4736"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2884"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1462"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2514"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5598"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2013"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="951"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2073"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="731"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1723"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="440"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1963"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="581"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1883"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="771"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1463"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="681"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1922"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="641"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1983"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="431"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1502"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="321"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1692"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="351"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1963"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="581"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1502"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="310"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="561"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1372"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="571"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="1102"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="471"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1513"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1151"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1673"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="791"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="18297"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="360"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1863"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="350"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1963"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1402"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1012"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1422"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1031"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2484"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1011"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1032"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="260"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="391"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="741"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="992"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1592"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="872"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="16704"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="5188"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1912"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1523"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2133"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1081"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="15572"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="420"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3034"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="320"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2123"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1593"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2343"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1542"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2384"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1592"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2013"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3095"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="1542"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1242"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1462"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="3871"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2904"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="2093"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="92536"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="37614"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4446"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1542"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4477"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="951"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="27782"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="441"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4447"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="370"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4526"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1603"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4526"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1683"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5118"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2313"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4901"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1873"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="3084"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="7501"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="7982"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="7140"/>
-        </task>
-      </group>
-    </group>
-  </case>
-</log>
diff --git a/tests/org.eclipse.team.tests.cvs.core/benchmark/team2.0/2002_04_25.integration.commandline.xml b/tests/org.eclipse.team.tests.cvs.core/benchmark/team2.0/2002_04_25.integration.commandline.xml
deleted file mode 100644
index 30732a9..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/benchmark/team2.0/2002_04_25.integration.commandline.xml
+++ /dev/null
@@ -1,1731 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<log timestamp="25/Apr/2002 20:33:05" sdkbuild="20020425">
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.CommandTests" name="testImportAddCommitCheckout">
-    <group name="import/add/commit big project">
-      <group name="command line client">
-        <task name="import empty module">
-          <result elapsed="1503"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="250"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="29011"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="3159"/>
-        </task>
-        <task name="add files (Text)">
-          <result elapsed="25647"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="19908"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="import empty module">
-          <result elapsed="321"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="380"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="12708"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="401"/>
-        </task>
-        <task name="add files (Text)">
-          <result elapsed="3395"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="17435"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="set sharing, pop up sync viewer">
-          <result elapsed="4136"/>
-        </task>
-        <task name="Synchronize with Repository action">
-          <result elapsed="2434"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="86209"/>
-        </task>
-      </group>
-    </group>
-    <group name="checkout big project">
-      <group name="command line client">
-        <task name="checkout module">
-          <result elapsed="62141"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="checkout module">
-          <result elapsed="37433"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="Repository View Checkout action">
-          <result elapsed="37614"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.CommandTests" name="testImportAddCommitCheckout">
-    <group name="import/add/commit big project">
-      <group name="command line client">
-        <task name="import empty module">
-          <result elapsed="1492"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="251"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="28808"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="3124"/>
-        </task>
-        <task name="add files (Text)">
-          <result elapsed="25427"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="19192"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="import empty module">
-          <result elapsed="250"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="691"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="12057"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="1352"/>
-        </task>
-        <task name="add files (Text)">
-          <result elapsed="4076"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="18221"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="set sharing, pop up sync viewer">
-          <result elapsed="4286"/>
-        </task>
-        <task name="Synchronize with Repository action">
-          <result elapsed="2403"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="86083"/>
-        </task>
-      </group>
-    </group>
-    <group name="checkout big project">
-      <group name="command line client">
-        <task name="checkout module">
-          <result elapsed="57382"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="checkout module">
-          <result elapsed="36864"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="Repository View Checkout action">
-          <result elapsed="38094"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.CommandTests" name="testImportAddCommitCheckout">
-    <group name="import/add/commit big project">
-      <group name="command line client">
-        <task name="import empty module">
-          <result elapsed="1422"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="250"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="29182"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="3185"/>
-        </task>
-        <task name="add files (Text)">
-          <result elapsed="25236"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="21721"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="import empty module">
-          <result elapsed="842"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="400"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="12600"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="731"/>
-        </task>
-        <task name="add files (Text)">
-          <result elapsed="3615"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="25166"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="set sharing, pop up sync viewer">
-          <result elapsed="4086"/>
-        </task>
-        <task name="Synchronize with Repository action">
-          <result elapsed="2344"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="87421"/>
-        </task>
-      </group>
-    </group>
-    <group name="checkout big project">
-      <group name="command line client">
-        <task name="checkout module">
-          <result elapsed="60794"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="checkout module">
-          <result elapsed="36242"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="Repository View Checkout action">
-          <result elapsed="37632"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.CommandTests" name="testImportAddCommitCheckout">
-    <group name="import/add/commit big project">
-      <group name="command line client">
-        <task name="import empty module">
-          <result elapsed="1462"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="250"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="28100"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="3094"/>
-        </task>
-        <task name="add files (Text)">
-          <result elapsed="25277"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="19776"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="import empty module">
-          <result elapsed="641"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="451"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="13430"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="560"/>
-        </task>
-        <task name="add files (Text)">
-          <result elapsed="3806"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="17292"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="set sharing, pop up sync viewer">
-          <result elapsed="4216"/>
-        </task>
-        <task name="Synchronize with Repository action">
-          <result elapsed="2593"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="83964"/>
-        </task>
-      </group>
-    </group>
-    <group name="checkout big project">
-      <group name="command line client">
-        <task name="checkout module">
-          <result elapsed="57667"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="checkout module">
-          <result elapsed="36996"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="Repository View Checkout action">
-          <result elapsed="37213"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.CommandTests" name="testImportAddCommitCheckout">
-    <group name="import/add/commit big project">
-      <group name="command line client">
-        <task name="import empty module">
-          <result elapsed="1513"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="240"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="29112"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="3115"/>
-        </task>
-        <task name="add files (Text)">
-          <result elapsed="26306"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="21380"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="import empty module">
-          <result elapsed="200"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="691"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="13094"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="340"/>
-        </task>
-        <task name="add files (Text)">
-          <result elapsed="3585"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="26669"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="set sharing, pop up sync viewer">
-          <result elapsed="4246"/>
-        </task>
-        <task name="Synchronize with Repository action">
-          <result elapsed="2343"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="85953"/>
-        </task>
-      </group>
-    </group>
-    <group name="checkout big project">
-      <group name="command line client">
-        <task name="checkout module">
-          <result elapsed="61323"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="checkout module">
-          <result elapsed="36492"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="Repository View Checkout action">
-          <result elapsed="38175"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.CommandTests" name="testImportAddCommitCheckout">
-    <group name="import/add/commit big project">
-      <group name="command line client">
-        <task name="import empty module">
-          <result elapsed="1362"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="251"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="29763"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="3135"/>
-        </task>
-        <task name="add files (Text)">
-          <result elapsed="26157"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="20744"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="import empty module">
-          <result elapsed="541"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="681"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="11817"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="381"/>
-        </task>
-        <task name="add files (Text)">
-          <result elapsed="3965"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="17216"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="set sharing, pop up sync viewer">
-          <result elapsed="3965"/>
-        </task>
-        <task name="Synchronize with Repository action">
-          <result elapsed="2603"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="87050"/>
-        </task>
-      </group>
-    </group>
-    <group name="checkout big project">
-      <group name="command line client">
-        <task name="checkout module">
-          <result elapsed="56480"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="checkout module">
-          <result elapsed="37263"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="Repository View Checkout action">
-          <result elapsed="37655"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.CommandTests" name="testImportAddCommitCheckout">
-    <group name="import/add/commit big project">
-      <group name="command line client">
-        <task name="import empty module">
-          <result elapsed="1523"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="250"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="29382"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="3184"/>
-        </task>
-        <task name="add files (Text)">
-          <result elapsed="25348"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="18837"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="import empty module">
-          <result elapsed="1292"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="381"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="13809"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="331"/>
-        </task>
-        <task name="add files (Text)">
-          <result elapsed="3905"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="26509"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="set sharing, pop up sync viewer">
-          <result elapsed="4116"/>
-        </task>
-        <task name="Synchronize with Repository action">
-          <result elapsed="2394"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="82816"/>
-        </task>
-      </group>
-    </group>
-    <group name="checkout big project">
-      <group name="command line client">
-        <task name="checkout module">
-          <result elapsed="56078"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="checkout module">
-          <result elapsed="37504"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="Repository View Checkout action">
-          <result elapsed="37912"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.CommandTests" name="testImportAddCommitCheckout">
-    <group name="import/add/commit big project">
-      <group name="command line client">
-        <task name="import empty module">
-          <result elapsed="1412"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="261"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="29293"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="3245"/>
-        </task>
-        <task name="add files (Text)">
-          <result elapsed="25456"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="18880"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="import empty module">
-          <result elapsed="701"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="530"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="11998"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="661"/>
-        </task>
-        <task name="add files (Text)">
-          <result elapsed="3875"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="18697"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="set sharing, pop up sync viewer">
-          <result elapsed="3856"/>
-        </task>
-        <task name="Synchronize with Repository action">
-          <result elapsed="2794"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="87661"/>
-        </task>
-      </group>
-    </group>
-    <group name="checkout big project">
-      <group name="command line client">
-        <task name="checkout module">
-          <result elapsed="62389"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="checkout module">
-          <result elapsed="35718"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="Repository View Checkout action">
-          <result elapsed="37504"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.CommandTests" name="testImportAddCommitCheckout">
-    <group name="import/add/commit big project">
-      <group name="command line client">
-        <task name="import empty module">
-          <result elapsed="1412"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="251"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="28010"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="3155"/>
-        </task>
-        <task name="add files (Text)">
-          <result elapsed="25533"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="20830"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="import empty module">
-          <result elapsed="561"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="691"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="11613"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="1011"/>
-        </task>
-        <task name="add files (Text)">
-          <result elapsed="4166"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="18908"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="set sharing, pop up sync viewer">
-          <result elapsed="3876"/>
-        </task>
-        <task name="Synchronize with Repository action">
-          <result elapsed="2424"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="86023"/>
-        </task>
-      </group>
-    </group>
-    <group name="checkout big project">
-      <group name="command line client">
-        <task name="checkout module">
-          <result elapsed="57220"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="checkout module">
-          <result elapsed="36663"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="Repository View Checkout action">
-          <result elapsed="37844"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.CommandTests" name="testImportAddCommitCheckout">
-    <group name="import/add/commit big project">
-      <group name="command line client">
-        <task name="import empty module">
-          <result elapsed="1412"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="250"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="29696"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="3144"/>
-        </task>
-        <task name="add files (Text)">
-          <result elapsed="25957"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="21113"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="import empty module">
-          <result elapsed="190"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="420"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="12858"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="641"/>
-        </task>
-        <task name="add files (Text)">
-          <result elapsed="3666"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="24375"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="set sharing, pop up sync viewer">
-          <result elapsed="3716"/>
-        </task>
-        <task name="Synchronize with Repository action">
-          <result elapsed="2283"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="86743"/>
-        </task>
-      </group>
-    </group>
-    <group name="checkout big project">
-      <group name="command line client">
-        <task name="checkout module">
-          <result elapsed="56769"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="checkout module">
-          <result elapsed="36062"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="Repository View Checkout action">
-          <result elapsed="38656"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.CommandTests" name="testImportAddCommitCheckout">
-    <group name="import/add/commit big project">
-      <group name="command line client">
-        <task name="import empty module">
-          <result elapsed="1412"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="260"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="28751"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="3335"/>
-        </task>
-        <task name="add files (Text)">
-          <result elapsed="26335"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="23264"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="import empty module">
-          <result elapsed="471"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="480"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="11929"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="561"/>
-        </task>
-        <task name="add files (Text)">
-          <result elapsed="3854"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="19448"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="set sharing, pop up sync viewer">
-          <result elapsed="4086"/>
-        </task>
-        <task name="Synchronize with Repository action">
-          <result elapsed="2493"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="85859"/>
-        </task>
-      </group>
-    </group>
-    <group name="checkout big project">
-      <group name="command line client">
-        <task name="checkout module">
-          <result elapsed="55258"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="checkout module">
-          <result elapsed="37294"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="Repository View Checkout action">
-          <result elapsed="37560"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.CommandTests" name="testImportAddCommitCheckout">
-    <group name="import/add/commit big project">
-      <group name="command line client">
-        <task name="import empty module">
-          <result elapsed="1442"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="260"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="29233"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="3125"/>
-        </task>
-        <task name="add files (Text)">
-          <result elapsed="25356"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="19052"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="import empty module">
-          <result elapsed="551"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="691"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="13169"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="230"/>
-        </task>
-        <task name="add files (Text)">
-          <result elapsed="3685"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="24356"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="set sharing, pop up sync viewer">
-          <result elapsed="4136"/>
-        </task>
-        <task name="Synchronize with Repository action">
-          <result elapsed="2373"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="85132"/>
-        </task>
-      </group>
-    </group>
-    <group name="checkout big project">
-      <group name="command line client">
-        <task name="checkout module">
-          <result elapsed="57800"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="checkout module">
-          <result elapsed="36543"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="Repository View Checkout action">
-          <result elapsed="37964"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.CommandTests" name="testImportAddCommitCheckout">
-    <group name="import/add/commit big project">
-      <group name="command line client">
-        <task name="import empty module">
-          <result elapsed="1482"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="250"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="29012"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="3155"/>
-        </task>
-        <task name="add files (Text)">
-          <result elapsed="25481"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="19498"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="import empty module">
-          <result elapsed="751"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="791"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="11296"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="711"/>
-        </task>
-        <task name="add files (Text)">
-          <result elapsed="3841"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="18166"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="set sharing, pop up sync viewer">
-          <result elapsed="3925"/>
-        </task>
-        <task name="Synchronize with Repository action">
-          <result elapsed="2393"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="87924"/>
-        </task>
-      </group>
-    </group>
-    <group name="checkout big project">
-      <group name="command line client">
-        <task name="checkout module">
-          <result elapsed="58657"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="checkout module">
-          <result elapsed="36144"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="Repository View Checkout action">
-          <result elapsed="38401"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.CommandTests" name="testImportAddCommitCheckout">
-    <group name="import/add/commit big project">
-      <group name="command line client">
-        <task name="import empty module">
-          <result elapsed="1483"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="260"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="29456"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="3615"/>
-        </task>
-        <task name="add files (Text)">
-          <result elapsed="25426"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="19729"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="import empty module">
-          <result elapsed="520"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="761"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="12498"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="381"/>
-        </task>
-        <task name="add files (Text)">
-          <result elapsed="3405"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="17715"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="set sharing, pop up sync viewer">
-          <result elapsed="3850"/>
-        </task>
-        <task name="Synchronize with Repository action">
-          <result elapsed="2423"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="88090"/>
-        </task>
-      </group>
-    </group>
-    <group name="checkout big project">
-      <group name="command line client">
-        <task name="checkout module">
-          <result elapsed="56919"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="checkout module">
-          <result elapsed="36640"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="Repository View Checkout action">
-          <result elapsed="37484"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.CommandTests" name="testImportAddCommitCheckout">
-    <group name="import/add/commit big project">
-      <group name="command line client">
-        <task name="import empty module">
-          <result elapsed="1412"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="241"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="29282"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="3184"/>
-        </task>
-        <task name="add files (Text)">
-          <result elapsed="25812"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="22623"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="import empty module">
-          <result elapsed="380"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="391"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="12468"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="210"/>
-        </task>
-        <task name="add files (Text)">
-          <result elapsed="4367"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="25881"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="set sharing, pop up sync viewer">
-          <result elapsed="4196"/>
-        </task>
-        <task name="Synchronize with Repository action">
-          <result elapsed="2524"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="90149"/>
-        </task>
-      </group>
-    </group>
-    <group name="checkout big project">
-      <group name="command line client">
-        <task name="checkout module">
-          <result elapsed="58906"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="checkout module">
-          <result elapsed="35802"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="Repository View Checkout action">
-          <result elapsed="38389"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.CommandTests" name="testImportAddCommitCheckout">
-    <group name="import/add/commit big project">
-      <group name="command line client">
-        <task name="import empty module">
-          <result elapsed="1472"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="250"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="28564"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="3325"/>
-        </task>
-        <task name="add files (Text)">
-          <result elapsed="25226"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="19796"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="import empty module">
-          <result elapsed="711"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="391"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="11988"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="851"/>
-        </task>
-        <task name="add files (Text)">
-          <result elapsed="3905"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="17906"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="set sharing, pop up sync viewer">
-          <result elapsed="3996"/>
-        </task>
-        <task name="Synchronize with Repository action">
-          <result elapsed="2414"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="84735"/>
-        </task>
-      </group>
-    </group>
-    <group name="checkout big project">
-      <group name="command line client">
-        <task name="checkout module">
-          <result elapsed="57404"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="checkout module">
-          <result elapsed="37424"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="Repository View Checkout action">
-          <result elapsed="37714"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.CommandTests" name="testImportAddCommitCheckout">
-    <group name="import/add/commit big project">
-      <group name="command line client">
-        <task name="import empty module">
-          <result elapsed="1482"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="251"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="29493"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="3134"/>
-        </task>
-        <task name="add files (Text)">
-          <result elapsed="25513"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="19428"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="import empty module">
-          <result elapsed="290"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="391"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="11937"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="921"/>
-        </task>
-        <task name="add files (Text)">
-          <result elapsed="3786"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="24500"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="set sharing, pop up sync viewer">
-          <result elapsed="3956"/>
-        </task>
-        <task name="Synchronize with Repository action">
-          <result elapsed="2173"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="88117"/>
-        </task>
-      </group>
-    </group>
-    <group name="checkout big project">
-      <group name="command line client">
-        <task name="checkout module">
-          <result elapsed="60098"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="checkout module">
-          <result elapsed="36352"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="Repository View Checkout action">
-          <result elapsed="39014"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.CommandTests" name="testImportAddCommitCheckout">
-    <group name="import/add/commit big project">
-      <group name="command line client">
-        <task name="import empty module">
-          <result elapsed="1503"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="250"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="29535"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="3104"/>
-        </task>
-        <task name="add files (Text)">
-          <result elapsed="24655"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="19308"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="import empty module">
-          <result elapsed="501"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="751"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="13549"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="411"/>
-        </task>
-        <task name="add files (Text)">
-          <result elapsed="3395"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="18306"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="set sharing, pop up sync viewer">
-          <result elapsed="3946"/>
-        </task>
-        <task name="Synchronize with Repository action">
-          <result elapsed="2514"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="89268"/>
-        </task>
-      </group>
-    </group>
-    <group name="checkout big project">
-      <group name="command line client">
-        <task name="checkout module">
-          <result elapsed="56708"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="checkout module">
-          <result elapsed="36704"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="Repository View Checkout action">
-          <result elapsed="36943"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.CommandTests" name="testImportAddCommitCheckout">
-    <group name="import/add/commit big project">
-      <group name="command line client">
-        <task name="import empty module">
-          <result elapsed="1472"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="250"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="30504"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="3145"/>
-        </task>
-        <task name="add files (Text)">
-          <result elapsed="25552"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="21220"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="import empty module">
-          <result elapsed="250"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="380"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="12227"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="1332"/>
-        </task>
-        <task name="add files (Text)">
-          <result elapsed="3545"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="24931"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="set sharing, pop up sync viewer">
-          <result elapsed="4256"/>
-        </task>
-        <task name="Synchronize with Repository action">
-          <result elapsed="2314"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="86129"/>
-        </task>
-      </group>
-    </group>
-    <group name="checkout big project">
-      <group name="command line client">
-        <task name="checkout module">
-          <result elapsed="57120"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="checkout module">
-          <result elapsed="36323"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="Repository View Checkout action">
-          <result elapsed="37950"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.CommandTests" name="testImportAddCommitCheckout">
-    <group name="import/add/commit big project">
-      <group name="command line client">
-        <task name="import empty module">
-          <result elapsed="1492"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="251"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="28863"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="3144"/>
-        </task>
-        <task name="add files (Text)">
-          <result elapsed="26088"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="20680"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="import empty module">
-          <result elapsed="715"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="480"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="12929"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="330"/>
-        </task>
-        <task name="add files (Text)">
-          <result elapsed="3866"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="17765"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="set sharing, pop up sync viewer">
-          <result elapsed="3635"/>
-        </task>
-        <task name="Synchronize with Repository action">
-          <result elapsed="2563"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="85332"/>
-        </task>
-      </group>
-    </group>
-    <group name="checkout big project">
-      <group name="command line client">
-        <task name="checkout module">
-          <result elapsed="56362"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="checkout module">
-          <result elapsed="37586"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="Repository View Checkout action">
-          <result elapsed="37634"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.CommandTests" name="testImportAddCommitCheckout">
-    <group name="import/add/commit big project">
-      <group name="command line client">
-        <task name="import empty module">
-          <result elapsed="1132"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="261"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="29312"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="3124"/>
-        </task>
-        <task name="add files (Text)">
-          <result elapsed="25486"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="21034"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="import empty module">
-          <result elapsed="370"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="381"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="13489"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="331"/>
-        </task>
-        <task name="add files (Text)">
-          <result elapsed="4286"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="25614"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="set sharing, pop up sync viewer">
-          <result elapsed="3705"/>
-        </task>
-        <task name="Synchronize with Repository action">
-          <result elapsed="2554"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="84866"/>
-        </task>
-      </group>
-    </group>
-    <group name="checkout big project">
-      <group name="command line client">
-        <task name="checkout module">
-          <result elapsed="59926"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="checkout module">
-          <result elapsed="36064"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="Repository View Checkout action">
-          <result elapsed="38515"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.CommandTests" name="testImportAddCommitCheckout">
-    <group name="import/add/commit big project">
-      <group name="command line client">
-        <task name="import empty module">
-          <result elapsed="1422"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="260"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="29009"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="3115"/>
-        </task>
-        <task name="add files (Text)">
-          <result elapsed="26278"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="20950"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="import empty module">
-          <result elapsed="190"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="391"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="11486"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="521"/>
-        </task>
-        <task name="add files (Text)">
-          <result elapsed="4817"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="17986"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="set sharing, pop up sync viewer">
-          <result elapsed="3825"/>
-        </task>
-        <task name="Synchronize with Repository action">
-          <result elapsed="2604"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="90460"/>
-        </task>
-      </group>
-    </group>
-    <group name="checkout big project">
-      <group name="command line client">
-        <task name="checkout module">
-          <result elapsed="57177"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="checkout module">
-          <result elapsed="36804"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="Repository View Checkout action">
-          <result elapsed="36994"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.CommandTests" name="testImportAddCommitCheckout">
-    <group name="import/add/commit big project">
-      <group name="command line client">
-        <task name="import empty module">
-          <result elapsed="1452"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="250"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="29242"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="3135"/>
-        </task>
-        <task name="add files (Text)">
-          <result elapsed="25231"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="23203"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="import empty module">
-          <result elapsed="210"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="400"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="13409"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="591"/>
-        </task>
-        <task name="add files (Text)">
-          <result elapsed="3989"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="24556"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="set sharing, pop up sync viewer">
-          <result elapsed="3886"/>
-        </task>
-        <task name="Synchronize with Repository action">
-          <result elapsed="2183"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="84166"/>
-        </task>
-      </group>
-    </group>
-    <group name="checkout big project">
-      <group name="command line client">
-        <task name="checkout module">
-          <result elapsed="61291"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="checkout module">
-          <result elapsed="36792"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="Repository View Checkout action">
-          <result elapsed="38382"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.CommandTests" name="testImportAddCommitCheckout">
-    <group name="import/add/commit big project">
-      <group name="command line client">
-        <task name="import empty module">
-          <result elapsed="1483"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="260"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="28448"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="3095"/>
-        </task>
-        <task name="add files (Text)">
-          <result elapsed="25727"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="19569"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="import empty module">
-          <result elapsed="581"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="600"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="11907"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="1072"/>
-        </task>
-        <task name="add files (Text)">
-          <result elapsed="3886"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="17685"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="set sharing, pop up sync viewer">
-          <result elapsed="3855"/>
-        </task>
-        <task name="Synchronize with Repository action">
-          <result elapsed="2404"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="84858"/>
-        </task>
-      </group>
-    </group>
-    <group name="checkout big project">
-      <group name="command line client">
-        <task name="checkout module">
-          <result elapsed="59224"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="checkout module">
-          <result elapsed="36755"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="Repository View Checkout action">
-          <result elapsed="37403"/>
-        </task>
-      </group>
-    </group>
-  </case>
-</log>
diff --git a/tests/org.eclipse.team.tests.cvs.core/benchmark/team2.0/2002_07_10.release2_0.commandline.xml b/tests/org.eclipse.team.tests.cvs.core/benchmark/team2.0/2002_07_10.release2_0.commandline.xml
deleted file mode 100644
index ae9310b..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/benchmark/team2.0/2002_07_10.release2_0.commandline.xml
+++ /dev/null
@@ -1,1731 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<log timestamp="10/Jul/2002 16:06:24" sdkbuild="unknown">
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.CommandTests" name="testImportAddCommitCheckout">
-    <group name="import/add/commit big project">
-      <group name="command line client">
-        <task name="import empty module">
-          <result elapsed="2924"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="1773"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="45245"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="4531"/>
-        </task>
-        <task name="add files (ASCII -ko)">
-          <result elapsed="31646"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="29645"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="import empty module">
-          <result elapsed="231"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="400"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="33318"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="281"/>
-        </task>
-        <task name="add files (ASCII -ko)">
-          <result elapsed="3345"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="27536"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="set sharing, pop up sync viewer">
-          <result elapsed="7411"/>
-        </task>
-        <task name="Synchronize with Repository action">
-          <result elapsed="5258"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="69165"/>
-        </task>
-      </group>
-    </group>
-    <group name="checkout big project">
-      <group name="command line client">
-        <task name="checkout module">
-          <result elapsed="58609"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="checkout module">
-          <result elapsed="38180"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="Repository View Checkout action">
-          <result elapsed="40253"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.CommandTests" name="testImportAddCommitCheckout">
-    <group name="import/add/commit big project">
-      <group name="command line client">
-        <task name="import empty module">
-          <result elapsed="2914"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="1772"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="45458"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="4497"/>
-        </task>
-        <task name="add files (ASCII -ko)">
-          <result elapsed="31425"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="29899"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="import empty module">
-          <result elapsed="230"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="351"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="34316"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="191"/>
-        </task>
-        <task name="add files (ASCII -ko)">
-          <result elapsed="3735"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="30213"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="set sharing, pop up sync viewer">
-          <result elapsed="7361"/>
-        </task>
-        <task name="Synchronize with Repository action">
-          <result elapsed="5217"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="71321"/>
-        </task>
-      </group>
-    </group>
-    <group name="checkout big project">
-      <group name="command line client">
-        <task name="checkout module">
-          <result elapsed="60656"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="checkout module">
-          <result elapsed="36837"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="Repository View Checkout action">
-          <result elapsed="39542"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.CommandTests" name="testImportAddCommitCheckout">
-    <group name="import/add/commit big project">
-      <group name="command line client">
-        <task name="import empty module">
-          <result elapsed="2944"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="1783"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="45585"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="4507"/>
-        </task>
-        <task name="add files (ASCII -ko)">
-          <result elapsed="31580"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="28040"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="import empty module">
-          <result elapsed="231"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="441"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="34900"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="351"/>
-        </task>
-        <task name="add files (ASCII -ko)">
-          <result elapsed="3385"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="25298"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="set sharing, pop up sync viewer">
-          <result elapsed="7030"/>
-        </task>
-        <task name="Synchronize with Repository action">
-          <result elapsed="5277"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="72259"/>
-        </task>
-      </group>
-    </group>
-    <group name="checkout big project">
-      <group name="command line client">
-        <task name="checkout module">
-          <result elapsed="58270"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="checkout module">
-          <result elapsed="37224"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="Repository View Checkout action">
-          <result elapsed="39501"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.CommandTests" name="testImportAddCommitCheckout">
-    <group name="import/add/commit big project">
-      <group name="command line client">
-        <task name="import empty module">
-          <result elapsed="2935"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="1782"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="44749"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="4496"/>
-        </task>
-        <task name="add files (ASCII -ko)">
-          <result elapsed="31536"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="27880"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="import empty module">
-          <result elapsed="220"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="441"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="31986"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="561"/>
-        </task>
-        <task name="add files (ASCII -ko)">
-          <result elapsed="3655"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="32341"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="set sharing, pop up sync viewer">
-          <result elapsed="7171"/>
-        </task>
-        <task name="Synchronize with Repository action">
-          <result elapsed="5177"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="71423"/>
-        </task>
-      </group>
-    </group>
-    <group name="checkout big project">
-      <group name="command line client">
-        <task name="checkout module">
-          <result elapsed="59846"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="checkout module">
-          <result elapsed="37113"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="Repository View Checkout action">
-          <result elapsed="39341"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.CommandTests" name="testImportAddCommitCheckout">
-    <group name="import/add/commit big project">
-      <group name="command line client">
-        <task name="import empty module">
-          <result elapsed="2864"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="1783"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="45160"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="4506"/>
-        </task>
-        <task name="add files (ASCII -ko)">
-          <result elapsed="31426"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="27870"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="import empty module">
-          <result elapsed="240"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="471"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="33449"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="310"/>
-        </task>
-        <task name="add files (ASCII -ko)">
-          <result elapsed="3385"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="27139"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="set sharing, pop up sync viewer">
-          <result elapsed="6966"/>
-        </task>
-        <task name="Synchronize with Repository action">
-          <result elapsed="5337"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="64343"/>
-        </task>
-      </group>
-    </group>
-    <group name="checkout big project">
-      <group name="command line client">
-        <task name="checkout module">
-          <result elapsed="58589"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="checkout module">
-          <result elapsed="37223"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="Repository View Checkout action">
-          <result elapsed="40037"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.CommandTests" name="testImportAddCommitCheckout">
-    <group name="import/add/commit big project">
-      <group name="command line client">
-        <task name="import empty module">
-          <result elapsed="2924"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="1783"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="45751"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="4486"/>
-        </task>
-        <task name="add files (ASCII -ko)">
-          <result elapsed="31746"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="30343"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="import empty module">
-          <result elapsed="151"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="350"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="33008"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="311"/>
-        </task>
-        <task name="add files (ASCII -ko)">
-          <result elapsed="3976"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="31791"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="set sharing, pop up sync viewer">
-          <result elapsed="7241"/>
-        </task>
-        <task name="Synchronize with Repository action">
-          <result elapsed="5157"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="71835"/>
-        </task>
-      </group>
-    </group>
-    <group name="checkout big project">
-      <group name="command line client">
-        <task name="checkout module">
-          <result elapsed="62697"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="checkout module">
-          <result elapsed="36462"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="Repository View Checkout action">
-          <result elapsed="40059"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.CommandTests" name="testImportAddCommitCheckout">
-    <group name="import/add/commit big project">
-      <group name="command line client">
-        <task name="import empty module">
-          <result elapsed="2945"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="1782"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="44371"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="4507"/>
-        </task>
-        <task name="add files (ASCII -ko)">
-          <result elapsed="31650"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="27856"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="import empty module">
-          <result elapsed="141"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="340"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="32787"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="431"/>
-        </task>
-        <task name="add files (ASCII -ko)">
-          <result elapsed="3374"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="26398"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="set sharing, pop up sync viewer">
-          <result elapsed="6950"/>
-        </task>
-        <task name="Synchronize with Repository action">
-          <result elapsed="5208"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="72428"/>
-        </task>
-      </group>
-    </group>
-    <group name="checkout big project">
-      <group name="command line client">
-        <task name="checkout module">
-          <result elapsed="58011"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="checkout module">
-          <result elapsed="37394"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="Repository View Checkout action">
-          <result elapsed="39255"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.CommandTests" name="testImportAddCommitCheckout">
-    <group name="import/add/commit big project">
-      <group name="command line client">
-        <task name="import empty module">
-          <result elapsed="2924"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="1773"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="45074"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="4506"/>
-        </task>
-        <task name="add files (ASCII -ko)">
-          <result elapsed="31375"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="27329"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="import empty module">
-          <result elapsed="441"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="341"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="32922"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="290"/>
-        </task>
-        <task name="add files (ASCII -ko)">
-          <result elapsed="3575"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="32307"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="set sharing, pop up sync viewer">
-          <result elapsed="6930"/>
-        </task>
-        <task name="Synchronize with Repository action">
-          <result elapsed="5238"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="64476"/>
-        </task>
-      </group>
-    </group>
-    <group name="checkout big project">
-      <group name="command line client">
-        <task name="checkout module">
-          <result elapsed="59893"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="checkout module">
-          <result elapsed="36803"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="Repository View Checkout action">
-          <result elapsed="39308"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.CommandTests" name="testImportAddCommitCheckout">
-    <group name="import/add/commit big project">
-      <group name="command line client">
-        <task name="import empty module">
-          <result elapsed="2924"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="1782"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="45325"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="4487"/>
-        </task>
-        <task name="add files (ASCII -ko)">
-          <result elapsed="30427"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="27870"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="import empty module">
-          <result elapsed="430"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="341"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="33739"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="330"/>
-        </task>
-        <task name="add files (ASCII -ko)">
-          <result elapsed="3505"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="26953"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="set sharing, pop up sync viewer">
-          <result elapsed="7120"/>
-        </task>
-        <task name="Synchronize with Repository action">
-          <result elapsed="5127"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="73988"/>
-        </task>
-      </group>
-    </group>
-    <group name="checkout big project">
-      <group name="command line client">
-        <task name="checkout module">
-          <result elapsed="59365"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="checkout module">
-          <result elapsed="37768"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="Repository View Checkout action">
-          <result elapsed="39605"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.CommandTests" name="testImportAddCommitCheckout">
-    <group name="import/add/commit big project">
-      <group name="command line client">
-        <task name="import empty module">
-          <result elapsed="2894"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="1783"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="46246"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="4546"/>
-        </task>
-        <task name="add files (ASCII -ko)">
-          <result elapsed="31466"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="27477"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="import empty module">
-          <result elapsed="150"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="471"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="35110"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="571"/>
-        </task>
-        <task name="add files (ASCII -ko)">
-          <result elapsed="3625"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="30563"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="set sharing, pop up sync viewer">
-          <result elapsed="7080"/>
-        </task>
-        <task name="Synchronize with Repository action">
-          <result elapsed="5338"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="71060"/>
-        </task>
-      </group>
-    </group>
-    <group name="checkout big project">
-      <group name="command line client">
-        <task name="checkout module">
-          <result elapsed="62410"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="checkout module">
-          <result elapsed="36893"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="Repository View Checkout action">
-          <result elapsed="40041"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.CommandTests" name="testImportAddCommitCheckout">
-    <group name="import/add/commit big project">
-      <group name="command line client">
-        <task name="import empty module">
-          <result elapsed="2945"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="1782"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="44953"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="4757"/>
-        </task>
-        <task name="add files (ASCII -ko)">
-          <result elapsed="31519"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="28711"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="import empty module">
-          <result elapsed="241"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="350"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="32420"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="391"/>
-        </task>
-        <task name="add files (ASCII -ko)">
-          <result elapsed="3755"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="25166"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="set sharing, pop up sync viewer">
-          <result elapsed="6980"/>
-        </task>
-        <task name="Synchronize with Repository action">
-          <result elapsed="5187"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="72190"/>
-        </task>
-      </group>
-    </group>
-    <group name="checkout big project">
-      <group name="command line client">
-        <task name="checkout module">
-          <result elapsed="58971"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="checkout module">
-          <result elapsed="37585"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="Repository View Checkout action">
-          <result elapsed="39617"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.CommandTests" name="testImportAddCommitCheckout">
-    <group name="import/add/commit big project">
-      <group name="command line client">
-        <task name="import empty module">
-          <result elapsed="2944"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="1783"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="44373"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="4546"/>
-        </task>
-        <task name="add files (ASCII -ko)">
-          <result elapsed="31417"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="30104"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="import empty module">
-          <result elapsed="160"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="451"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="32637"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="461"/>
-        </task>
-        <task name="add files (ASCII -ko)">
-          <result elapsed="3465"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="33690"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="set sharing, pop up sync viewer">
-          <result elapsed="6239"/>
-        </task>
-        <task name="Synchronize with Repository action">
-          <result elapsed="5218"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="70415"/>
-        </task>
-      </group>
-    </group>
-    <group name="checkout big project">
-      <group name="command line client">
-        <task name="checkout module">
-          <result elapsed="62978"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="checkout module">
-          <result elapsed="36821"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="Repository View Checkout action">
-          <result elapsed="39766"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.CommandTests" name="testImportAddCommitCheckout">
-    <group name="import/add/commit big project">
-      <group name="command line client">
-        <task name="import empty module">
-          <result elapsed="2924"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="1773"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="45492"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="4486"/>
-        </task>
-        <task name="add files (ASCII -ko)">
-          <result elapsed="31604"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="26505"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="import empty module">
-          <result elapsed="230"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="441"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="35755"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="321"/>
-        </task>
-        <task name="add files (ASCII -ko)">
-          <result elapsed="4166"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="26658"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="set sharing, pop up sync viewer">
-          <result elapsed="7028"/>
-        </task>
-        <task name="Synchronize with Repository action">
-          <result elapsed="5267"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="72965"/>
-        </task>
-      </group>
-    </group>
-    <group name="checkout big project">
-      <group name="command line client">
-        <task name="checkout module">
-          <result elapsed="58407"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="checkout module">
-          <result elapsed="37895"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="Repository View Checkout action">
-          <result elapsed="38876"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.CommandTests" name="testImportAddCommitCheckout">
-    <group name="import/add/commit big project">
-      <group name="command line client">
-        <task name="import empty module">
-          <result elapsed="2914"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="1783"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="44645"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="4516"/>
-        </task>
-        <task name="add files (ASCII -ko)">
-          <result elapsed="31803"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="29569"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="import empty module">
-          <result elapsed="241"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="440"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="34871"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="330"/>
-        </task>
-        <task name="add files (ASCII -ko)">
-          <result elapsed="3655"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="32519"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="set sharing, pop up sync viewer">
-          <result elapsed="7090"/>
-        </task>
-        <task name="Synchronize with Repository action">
-          <result elapsed="5268"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="65070"/>
-        </task>
-      </group>
-    </group>
-    <group name="checkout big project">
-      <group name="command line client">
-        <task name="checkout module">
-          <result elapsed="65319"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="checkout module">
-          <result elapsed="36692"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="Repository View Checkout action">
-          <result elapsed="40485"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.CommandTests" name="testImportAddCommitCheckout">
-    <group name="import/add/commit big project">
-      <group name="command line client">
-        <task name="import empty module">
-          <result elapsed="2904"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="1783"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="45514"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="4507"/>
-        </task>
-        <task name="add files (ASCII -ko)">
-          <result elapsed="31545"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="27346"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="import empty module">
-          <result elapsed="550"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="331"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="32423"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="661"/>
-        </task>
-        <task name="add files (ASCII -ko)">
-          <result elapsed="3882"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="26859"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="set sharing, pop up sync viewer">
-          <result elapsed="6970"/>
-        </task>
-        <task name="Synchronize with Repository action">
-          <result elapsed="5108"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="72129"/>
-        </task>
-      </group>
-    </group>
-    <group name="checkout big project">
-      <group name="command line client">
-        <task name="checkout module">
-          <result elapsed="57853"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="checkout module">
-          <result elapsed="37313"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="Repository View Checkout action">
-          <result elapsed="39338"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.CommandTests" name="testImportAddCommitCheckout">
-    <group name="import/add/commit big project">
-      <group name="command line client">
-        <task name="import empty module">
-          <result elapsed="2914"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="1783"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="45171"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="4597"/>
-        </task>
-        <task name="add files (ASCII -ko)">
-          <result elapsed="31444"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="29002"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="import empty module">
-          <result elapsed="210"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="361"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="33998"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="180"/>
-        </task>
-        <task name="add files (ASCII -ko)">
-          <result elapsed="3635"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="29605"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="set sharing, pop up sync viewer">
-          <result elapsed="6780"/>
-        </task>
-        <task name="Synchronize with Repository action">
-          <result elapsed="5177"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="65142"/>
-        </task>
-      </group>
-    </group>
-    <group name="checkout big project">
-      <group name="command line client">
-        <task name="checkout module">
-          <result elapsed="62367"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="checkout module">
-          <result elapsed="36863"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="Repository View Checkout action">
-          <result elapsed="40288"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.CommandTests" name="testImportAddCommitCheckout">
-    <group name="import/add/commit big project">
-      <group name="command line client">
-        <task name="import empty module">
-          <result elapsed="2894"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="1782"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="44063"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="4527"/>
-        </task>
-        <task name="add files (ASCII -ko)">
-          <result elapsed="31605"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="28090"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="import empty module">
-          <result elapsed="261"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="440"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="31555"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="330"/>
-        </task>
-        <task name="add files (ASCII -ko)">
-          <result elapsed="3876"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="27871"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="set sharing, pop up sync viewer">
-          <result elapsed="7230"/>
-        </task>
-        <task name="Synchronize with Repository action">
-          <result elapsed="5137"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="72124"/>
-        </task>
-      </group>
-    </group>
-    <group name="checkout big project">
-      <group name="command line client">
-        <task name="checkout module">
-          <result elapsed="59752"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="checkout module">
-          <result elapsed="37077"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="Repository View Checkout action">
-          <result elapsed="39106"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.CommandTests" name="testImportAddCommitCheckout">
-    <group name="import/add/commit big project">
-      <group name="command line client">
-        <task name="import empty module">
-          <result elapsed="2553"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="1783"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="46538"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="4527"/>
-        </task>
-        <task name="add files (ASCII -ko)">
-          <result elapsed="31595"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="26348"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="import empty module">
-          <result elapsed="210"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="451"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="33408"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="430"/>
-        </task>
-        <task name="add files (ASCII -ko)">
-          <result elapsed="3896"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="29560"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="set sharing, pop up sync viewer">
-          <result elapsed="7110"/>
-        </task>
-        <task name="Synchronize with Repository action">
-          <result elapsed="5157"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="66904"/>
-        </task>
-      </group>
-    </group>
-    <group name="checkout big project">
-      <group name="command line client">
-        <task name="checkout module">
-          <result elapsed="59406"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="checkout module">
-          <result elapsed="36999"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="Repository View Checkout action">
-          <result elapsed="39853"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.CommandTests" name="testImportAddCommitCheckout">
-    <group name="import/add/commit big project">
-      <group name="command line client">
-        <task name="import empty module">
-          <result elapsed="2964"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="1783"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="45902"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="4507"/>
-        </task>
-        <task name="add files (ASCII -ko)">
-          <result elapsed="31819"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="28481"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="import empty module">
-          <result elapsed="220"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="441"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="31768"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="210"/>
-        </task>
-        <task name="add files (ASCII -ko)">
-          <result elapsed="4006"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="25346"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="set sharing, pop up sync viewer">
-          <result elapsed="7132"/>
-        </task>
-        <task name="Synchronize with Repository action">
-          <result elapsed="5117"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="69586"/>
-        </task>
-      </group>
-    </group>
-    <group name="checkout big project">
-      <group name="command line client">
-        <task name="checkout module">
-          <result elapsed="58515"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="checkout module">
-          <result elapsed="37333"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="Repository View Checkout action">
-          <result elapsed="39832"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.CommandTests" name="testImportAddCommitCheckout">
-    <group name="import/add/commit big project">
-      <group name="command line client">
-        <task name="import empty module">
-          <result elapsed="2874"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="1783"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="44616"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="4507"/>
-        </task>
-        <task name="add files (ASCII -ko)">
-          <result elapsed="31522"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="27870"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="import empty module">
-          <result elapsed="240"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="351"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="33109"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="791"/>
-        </task>
-        <task name="add files (ASCII -ko)">
-          <result elapsed="3746"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="29412"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="set sharing, pop up sync viewer">
-          <result elapsed="7070"/>
-        </task>
-        <task name="Synchronize with Repository action">
-          <result elapsed="5238"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="72938"/>
-        </task>
-      </group>
-    </group>
-    <group name="checkout big project">
-      <group name="command line client">
-        <task name="checkout module">
-          <result elapsed="62720"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="checkout module">
-          <result elapsed="37010"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="Repository View Checkout action">
-          <result elapsed="39657"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.CommandTests" name="testImportAddCommitCheckout">
-    <group name="import/add/commit big project">
-      <group name="command line client">
-        <task name="import empty module">
-          <result elapsed="2924"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="1782"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="44519"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="4516"/>
-        </task>
-        <task name="add files (ASCII -ko)">
-          <result elapsed="32056"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="28273"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="import empty module">
-          <result elapsed="160"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="451"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="32670"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="290"/>
-        </task>
-        <task name="add files (ASCII -ko)">
-          <result elapsed="3665"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="25186"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="set sharing, pop up sync viewer">
-          <result elapsed="7000"/>
-        </task>
-        <task name="Synchronize with Repository action">
-          <result elapsed="5227"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="72266"/>
-        </task>
-      </group>
-    </group>
-    <group name="checkout big project">
-      <group name="command line client">
-        <task name="checkout module">
-          <result elapsed="59035"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="checkout module">
-          <result elapsed="37351"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="Repository View Checkout action">
-          <result elapsed="39086"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.CommandTests" name="testImportAddCommitCheckout">
-    <group name="import/add/commit big project">
-      <group name="command line client">
-        <task name="import empty module">
-          <result elapsed="2944"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="1782"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="45943"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="4496"/>
-        </task>
-        <task name="add files (ASCII -ko)">
-          <result elapsed="31722"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="27650"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="import empty module">
-          <result elapsed="140"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="451"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="31870"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="340"/>
-        </task>
-        <task name="add files (ASCII -ko)">
-          <result elapsed="4096"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="32139"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="set sharing, pop up sync viewer">
-          <result elapsed="7020"/>
-        </task>
-        <task name="Synchronize with Repository action">
-          <result elapsed="5068"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="70785"/>
-        </task>
-      </group>
-    </group>
-    <group name="checkout big project">
-      <group name="command line client">
-        <task name="checkout module">
-          <result elapsed="63116"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="checkout module">
-          <result elapsed="36908"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="Repository View Checkout action">
-          <result elapsed="39937"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.CommandTests" name="testImportAddCommitCheckout">
-    <group name="import/add/commit big project">
-      <group name="command line client">
-        <task name="import empty module">
-          <result elapsed="2944"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="1782"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="45796"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="4827"/>
-        </task>
-        <task name="add files (ASCII -ko)">
-          <result elapsed="49358"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="28011"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="import empty module">
-          <result elapsed="220"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="361"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="33609"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="290"/>
-        </task>
-        <task name="add files (ASCII -ko)">
-          <result elapsed="3667"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="25547"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="set sharing, pop up sync viewer">
-          <result elapsed="6731"/>
-        </task>
-        <task name="Synchronize with Repository action">
-          <result elapsed="5187"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="72401"/>
-        </task>
-      </group>
-    </group>
-    <group name="checkout big project">
-      <group name="command line client">
-        <task name="checkout module">
-          <result elapsed="59461"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="checkout module">
-          <result elapsed="37274"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="Repository View Checkout action">
-          <result elapsed="39208"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.CommandTests" name="testImportAddCommitCheckout">
-    <group name="import/add/commit big project">
-      <group name="command line client">
-        <task name="import empty module">
-          <result elapsed="2955"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="1782"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="45546"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="4497"/>
-        </task>
-        <task name="add files (ASCII -ko)">
-          <result elapsed="31394"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="27680"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="import empty module">
-          <result elapsed="240"/>
-        </task>
-        <task name="checkout module">
-          <result elapsed="441"/>
-        </task>
-        <task name="add folders">
-          <result elapsed="33862"/>
-        </task>
-        <task name="add files (Binary)">
-          <result elapsed="351"/>
-        </task>
-        <task name="add files (ASCII -ko)">
-          <result elapsed="3585"/>
-        </task>
-        <task name="commit module">
-          <result elapsed="31515"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="set sharing, pop up sync viewer">
-          <result elapsed="6669"/>
-        </task>
-        <task name="Synchronize with Repository action">
-          <result elapsed="5198"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="70959"/>
-        </task>
-      </group>
-    </group>
-    <group name="checkout big project">
-      <group name="command line client">
-        <task name="checkout module">
-          <result elapsed="63231"/>
-        </task>
-      </group>
-      <group name="eclipse client">
-        <task name="checkout module">
-          <result elapsed="36697"/>
-        </task>
-      </group>
-      <group name="user interface">
-        <task name="Repository View Checkout action">
-          <result elapsed="38996"/>
-        </task>
-      </group>
-    </group>
-  </case>
-</log>
diff --git a/tests/org.eclipse.team.tests.cvs.core/benchmark/team2.0/2002_07_11.release2_0.all.xml b/tests/org.eclipse.team.tests.cvs.core/benchmark/team2.0/2002_07_11.release2_0.all.xml
deleted file mode 100644
index b53f09f..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/benchmark/team2.0/2002_07_11.release2_0.all.xml
+++ /dev/null
@@ -1,12051 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<log timestamp="11/Jul/2002 15:00:30" sdkbuild="unknown">
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1762"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3616"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1852"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4083"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2694"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1562"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2344"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5658"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2053"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1702"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2314"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="6349"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1142"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1062"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1121"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="781"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1252"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="401"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1372"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="731"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1292"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="771"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1101"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="751"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1132"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="651"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1372"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="431"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1112"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="430"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1418"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="311"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1472"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="531"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="972"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="340"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="812"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1282"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="420"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="902"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="531"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="811"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1783"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1121"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="902"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="921"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="391"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="871"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="351"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1182"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1802"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="731"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1422"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1301"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1526"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="771"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1242"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="410"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="381"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="761"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1131"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2023"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1469"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="7781"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="5678"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1341"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1803"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1803"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1001"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1201"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="431"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1432"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="311"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1702"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2203"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1523"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1702"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1892"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1503"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1702"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1362"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="681"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1432"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1803"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="3826"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="6458"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="5047"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="72415"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="40173"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4217"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1712"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4406"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1022"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3966"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="461"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3887"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="371"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4196"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1923"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4196"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1562"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4687"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2523"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4220"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2073"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="3064"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="7942"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="7821"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="10375"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1943"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3726"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1862"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4016"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2594"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1492"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2293"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5458"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1892"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1623"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2343"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5989"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1092"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1021"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1132"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="681"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1402"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="411"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1322"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="711"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1382"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="771"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1202"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="721"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1112"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="651"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1582"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="440"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1191"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="331"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1392"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="321"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1472"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="531"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="971"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="371"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="851"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1191"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="520"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="942"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="531"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="851"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1722"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1221"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1032"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="771"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="331"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="881"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="301"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1202"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1612"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="630"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1372"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1482"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1352"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="852"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1412"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="330"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="341"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="801"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1192"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2283"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1302"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="7761"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="5588"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1382"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1813"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1682"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1132"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1192"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="341"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1271"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="331"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1612"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2043"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1472"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1733"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1632"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1402"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1803"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1282"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="651"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1372"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1792"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="3715"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="7100"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4957"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="74447"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="38926"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4106"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1933"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4326"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1052"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3555"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="441"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3850"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="360"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4447"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1782"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4116"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1923"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4476"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2524"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4927"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2143"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2794"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="8131"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="7862"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="9233"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1652"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3706"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1863"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4176"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2644"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1392"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2474"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5239"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1662"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1783"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1993"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5999"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="981"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1012"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1112"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="771"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1322"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="450"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1272"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="671"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1413"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="681"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1101"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="912"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1177"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="551"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1372"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="451"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1201"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="331"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1442"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="371"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1372"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="531"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1001"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="311"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="811"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1342"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="491"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="1001"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="531"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="761"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1332"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1161"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1052"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="731"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="321"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="891"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="310"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1102"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1633"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="841"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1252"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1211"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1382"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="801"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1322"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="310"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="391"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="802"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1151"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2093"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1542"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="7381"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="5448"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1582"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1763"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1893"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1146"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1122"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="430"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1593"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="360"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1813"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1812"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1372"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2053"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1583"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1502"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1802"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1362"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="671"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1372"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1812"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="3986"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="6189"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="5197"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="73584"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="39664"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4837"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1963"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4176"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1192"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4216"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="451"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3865"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="361"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4236"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1803"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4396"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1542"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4516"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2443"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4737"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2233"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="3105"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="8132"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="7744"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="9423"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1872"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3515"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2183"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3495"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3125"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1392"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2274"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5458"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1613"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1422"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1933"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="6389"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1011"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1322"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1362"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="782"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1221"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="411"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1360"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="641"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1482"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="701"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1061"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="711"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1372"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="641"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1372"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="440"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1091"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="331"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1282"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="330"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1362"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="541"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="952"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="450"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="811"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1312"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="451"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="891"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="580"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="992"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1302"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1091"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="922"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="691"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="381"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="922"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="300"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1002"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1702"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="631"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1322"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1432"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1462"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="651"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1352"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="260"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="391"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="741"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1213"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2023"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1572"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="7541"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="5608"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1472"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1702"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1603"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1091"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1261"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="431"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1382"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="391"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1812"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1893"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1402"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1803"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1772"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1292"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1813"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1392"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="681"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1362"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1993"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="3906"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="6249"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="5087"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="75105"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="38235"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5027"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1733"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4259"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1001"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3726"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="450"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3875"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="371"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4767"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1833"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4186"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1973"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4656"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2404"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4737"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2153"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2884"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="8212"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="7845"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="9204"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1943"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3555"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1803"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4006"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2954"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1262"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2223"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5558"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1763"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1452"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2063"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5989"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1031"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="952"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1422"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="771"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1442"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="401"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1462"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="691"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1202"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="821"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1082"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="751"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1152"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="541"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1382"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="430"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1121"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="331"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1392"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="320"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1361"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="531"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="802"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="330"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="621"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1252"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="501"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="1081"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="581"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="851"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1342"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1152"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="909"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="771"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="431"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="871"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="341"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1372"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1702"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="741"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1342"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1382"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1492"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="801"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1252"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="280"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="381"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="782"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1131"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2093"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1372"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="7421"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="5526"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1242"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1903"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1692"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1002"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1202"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="480"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1322"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="401"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1563"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1912"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1513"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1792"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1783"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1372"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1863"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1452"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="711"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1322"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1783"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="3635"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="6410"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4947"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="71611"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="39636"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4197"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1572"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4767"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="971"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3905"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="451"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3665"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="401"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4136"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2193"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3986"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1557"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4416"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2494"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4166"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2163"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="3014"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="8162"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="8151"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="9479"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1762"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3545"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2564"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3515"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2534"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1362"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2043"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="6009"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1903"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1482"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2184"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="6239"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1022"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1001"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1111"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="781"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1362"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="461"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1342"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="881"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1412"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="802"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1071"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="691"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1122"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="651"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1372"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="430"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1322"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="320"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1482"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="341"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1272"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="541"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="951"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="461"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="911"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1342"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="461"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="901"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="591"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="792"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1362"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1131"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="862"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="731"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="330"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="871"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="320"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1362"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1522"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="621"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1322"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1282"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1282"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="731"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1442"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="281"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="380"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="798"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1442"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2023"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1282"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="7551"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="5807"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1282"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1762"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1603"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1021"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1463"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="540"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1382"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="310"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1722"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2244"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1542"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1554"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1572"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1402"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1813"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1352"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="681"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1221"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1793"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4446"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="5969"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="5024"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="78825"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="39493"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4237"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2673"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4196"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1001"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3906"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="451"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3665"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="641"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4139"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1732"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4196"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1752"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4797"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2313"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4817"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2153"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2922"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="8072"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="8492"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="9253"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1913"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3445"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1953"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4106"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3024"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1332"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2174"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5588"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2023"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1588"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2183"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="6229"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1242"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1161"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1131"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="681"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1282"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="370"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1141"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="761"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1212"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="801"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1051"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="892"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1442"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="651"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1382"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="430"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1212"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="332"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1081"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="331"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1372"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="541"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="811"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="291"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="731"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1272"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="491"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="1091"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="550"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="792"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1382"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1111"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="942"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="771"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="421"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="871"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="321"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1112"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1803"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="731"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1312"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1352"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1382"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="731"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1212"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="310"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="381"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="772"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1141"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1933"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1362"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="7437"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="5718"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1302"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1773"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1833"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1101"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1352"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="471"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1382"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="351"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1662"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1913"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1432"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1523"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1943"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1522"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1792"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1342"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="691"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1382"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="2053"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="3796"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="6640"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="5047"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="70360"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="38723"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3855"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1763"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4507"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1001"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3596"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="851"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3765"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="371"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4456"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1702"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3915"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1853"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4486"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2534"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4536"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2164"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2784"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="8051"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="7962"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="9293"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2013"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3575"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1863"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3926"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2644"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1302"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2153"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5628"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2156"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1693"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1943"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="6359"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1001"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="871"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="991"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="681"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1392"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="511"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1442"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="701"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1592"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="881"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1002"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="681"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1091"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="571"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1352"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="441"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1215"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="330"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1272"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="331"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1162"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="530"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="981"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="320"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="621"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1262"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="461"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="991"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="521"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="751"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1382"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1122"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="941"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="751"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="331"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="871"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="291"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1072"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1612"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1002"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1282"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1572"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1372"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="631"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1162"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="260"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="381"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="751"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1112"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2264"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1302"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="7500"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="5478"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1622"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1592"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1593"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1251"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1262"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="430"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1367"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="341"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1943"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1832"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1352"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1472"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1703"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1402"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1712"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1733"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="601"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1322"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1772"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="3595"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="5888"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="5077"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="75090"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="39047"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4206"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3174"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4085"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1011"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3956"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="441"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3765"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="371"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4336"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1732"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4186"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2053"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4697"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2403"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4579"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2534"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2623"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="7852"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="7601"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="9243"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2003"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3395"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1763"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3915"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2464"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1442"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2453"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5659"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2053"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1592"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1993"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="6459"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1001"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1262"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1212"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="681"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1142"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="460"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1242"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="701"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1292"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="701"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1052"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="781"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1231"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="621"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1542"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="440"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1101"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="331"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1182"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="340"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1362"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="541"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="982"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="430"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="841"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1492"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="490"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="882"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="521"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="831"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1382"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1122"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="911"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="772"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="430"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="862"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="340"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="981"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1873"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="661"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1312"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1342"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1232"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="681"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1231"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="280"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="381"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="811"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1111"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2223"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1252"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="7621"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="5538"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1402"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1742"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1793"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1082"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1312"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="330"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1172"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="341"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1472"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1703"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1502"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1582"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1502"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1412"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1702"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1302"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="638"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1252"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="2093"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4106"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="6089"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4797"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="70171"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="39369"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4136"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1582"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4376"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="991"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4745"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="450"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3665"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="370"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4286"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1723"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4296"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1563"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4817"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2534"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4196"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2553"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2804"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="8191"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="7952"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="10154"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1752"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3615"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1863"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4086"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2834"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1473"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2143"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5878"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1672"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1983"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1983"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="6509"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1311"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="922"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1071"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="741"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1292"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="651"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1162"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="705"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1452"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="701"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1392"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="691"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1522"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="551"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1372"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="431"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1121"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="331"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1182"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="320"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1412"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="511"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1002"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="310"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="611"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1222"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="481"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="891"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="581"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="961"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1503"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1101"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="912"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="821"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="412"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="871"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="331"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1132"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2013"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="611"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1342"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1332"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1582"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="651"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1212"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="281"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="380"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1131"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1112"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2183"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1272"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="7661"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="5829"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1443"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1932"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1693"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1071"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1412"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="430"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1281"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="701"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1663"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1802"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1412"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1832"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1743"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1241"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1682"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1442"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="701"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1683"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1833"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="3745"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="7270"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4827"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="74534"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="39008"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4726"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1653"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4206"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1022"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3736"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="450"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4867"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="350"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4046"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2123"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3882"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1503"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4466"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2404"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4426"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2123"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2674"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="8302"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="7601"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="9255"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2353"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3635"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1883"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3585"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2533"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1773"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2253"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5388"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1622"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1593"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1923"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="6269"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1160"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="961"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1312"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1122"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1182"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="370"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1252"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="661"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1222"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="771"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1032"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="761"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1202"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="541"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1372"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="440"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1522"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="320"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1332"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="371"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1482"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="531"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="881"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="321"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="721"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1241"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="470"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="902"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="541"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="791"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1362"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1142"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="901"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="771"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="371"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="841"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="301"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1182"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1522"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1012"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1282"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1202"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1462"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="642"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1272"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="340"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="381"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="782"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1081"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2183"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1191"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="7826"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="5568"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1703"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1792"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1602"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1091"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1071"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="331"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1472"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="311"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1938"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2003"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1402"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1492"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1912"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1413"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2093"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1352"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="701"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1342"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1812"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="3585"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="6843"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="5198"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="70700"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="38415"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3815"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1682"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3985"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1382"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4035"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="451"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4877"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="391"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4085"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1826"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4397"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1572"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4747"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2433"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4146"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2514"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2916"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="7931"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="7631"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="9283"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1903"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3946"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1772"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3595"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2564"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1422"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2163"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5959"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1972"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1663"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2323"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="6199"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="971"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="971"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1221"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="681"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1192"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="441"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1041"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1052"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1342"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="891"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1071"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="731"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1091"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="641"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1372"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="441"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="992"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="320"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1282"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="331"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1362"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="561"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1302"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="290"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="781"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1322"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="460"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="1002"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="621"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="771"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1372"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1122"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="941"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="751"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="330"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="872"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="300"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1062"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1602"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="641"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1282"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1172"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1472"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="641"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1232"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="291"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="380"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="791"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1482"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2113"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1172"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="7611"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="5548"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1272"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1702"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1703"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1101"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1602"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="431"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1572"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="361"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1492"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1783"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1342"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1602"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1442"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1282"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1523"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1291"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="841"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1372"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1732"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="3525"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="6099"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4857"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="75595"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="39396"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4006"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1672"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4396"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1011"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3685"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="461"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3764"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="381"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4046"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1813"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4306"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2093"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4457"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2303"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4316"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2224"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2724"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="7971"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="7541"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="9474"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1709"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3925"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2023"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3645"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2874"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1342"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2173"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5772"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1983"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1502"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1933"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="6409"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="982"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="971"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1222"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="741"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1302"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="470"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1732"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="611"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1392"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="771"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1011"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="651"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1102"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="540"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1181"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="441"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1002"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="330"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1372"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="321"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1402"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="601"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1362"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="350"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="681"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1222"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="521"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="901"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="601"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="821"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1372"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1132"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="941"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="751"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="330"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="883"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="350"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="951"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1592"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="641"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1281"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1342"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1482"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="631"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1242"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="290"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="381"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="791"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1622"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2124"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1352"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="7571"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="5558"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1167"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1602"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1602"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1482"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1151"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="431"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1372"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="331"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1762"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1893"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1512"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2013"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1713"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1332"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1592"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1350"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="641"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1362"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="2173"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="3615"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="6149"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4877"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="72955"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="37991"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3966"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1682"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4296"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1011"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3635"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="451"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3766"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="340"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4086"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1732"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4397"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1852"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4306"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2314"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5117"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2133"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2784"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="8422"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="7581"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="9464"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1602"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3846"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1782"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3686"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3129"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1432"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2363"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5187"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1863"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1582"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1942"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="6380"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="992"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="881"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1212"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="821"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1312"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="370"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1032"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1112"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1592"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="691"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1072"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="711"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1192"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="541"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1282"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="430"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1111"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="331"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1172"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="330"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1372"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="551"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1332"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="361"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="751"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1252"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="481"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="891"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="580"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="781"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1483"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1131"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="911"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="761"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="431"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="881"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="310"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1002"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1502"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="641"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1312"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1312"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1462"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="641"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1331"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="320"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="351"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="921"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1563"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2243"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1352"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="7590"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="5528"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1412"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1712"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1703"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1061"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1812"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="471"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1242"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="380"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1723"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2003"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1508"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1582"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1863"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1392"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1712"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1402"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="641"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1312"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1752"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="3665"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="6489"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4907"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="71527"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="38557"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4293"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2293"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4076"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1012"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3685"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="451"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4176"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="340"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4206"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3225"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3695"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1603"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4957"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2344"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4386"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2183"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2764"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="8254"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="8212"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="9063"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1733"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3545"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1973"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4116"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2603"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1472"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2924"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5468"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2013"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1973"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1967"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5838"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1041"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1122"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1132"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="671"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1301"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="471"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1442"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="721"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1482"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="701"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="951"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="681"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1142"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="541"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1172"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="470"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1171"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="331"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1172"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="330"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1272"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="521"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="981"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="371"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1232"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1221"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="480"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="882"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="531"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="781"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1372"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1132"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="911"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="721"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="341"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="871"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="281"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1032"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1702"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="630"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1282"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1392"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1903"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="611"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1202"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="310"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="501"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="781"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1132"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2073"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1379"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="7821"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="5418"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1372"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1813"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1592"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1052"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1092"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="430"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1192"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="331"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2223"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1903"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1372"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1492"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2093"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1302"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1612"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1382"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="641"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1793"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1812"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="3565"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="6396"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4917"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="72707"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="39256"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3906"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1902"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4326"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1492"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3706"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="470"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3773"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="350"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4226"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1733"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4386"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1602"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4927"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2524"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4306"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2033"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2724"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="8482"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="8062"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="9764"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1722"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3946"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1883"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3695"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3044"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1222"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2194"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5337"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2033"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1482"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1953"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="6530"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1001"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1112"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1142"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="671"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1352"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="480"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1042"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="631"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1382"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1202"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1042"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="701"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1182"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="541"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1272"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="440"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1171"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="341"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1272"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="330"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1382"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="521"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="791"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="321"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="681"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1312"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="460"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="892"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="561"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="781"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1362"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1142"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="931"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="741"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="321"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="881"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="321"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1231"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1502"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="641"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1281"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1372"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1462"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="711"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1172"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="291"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="380"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="791"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1132"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2033"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1182"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="7962"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="5438"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1442"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1753"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1592"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1011"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1101"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1703"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1923"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="370"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1562"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1903"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1513"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1472"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2003"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1312"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1713"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1352"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="781"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1372"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1762"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="3715"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="6219"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4947"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="72469"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="38966"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4516"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1453"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4472"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1011"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4296"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="441"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3756"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="350"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4076"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2333"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3986"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1651"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6529"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2554"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4576"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2104"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2864"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="8332"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="7561"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="9583"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1662"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3556"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1993"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4085"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2473"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1453"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2874"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5297"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2043"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1902"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1952"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="6069"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1052"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1071"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1012"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="681"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1262"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="500"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1322"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="731"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1352"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="881"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1102"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="641"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1212"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="531"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1372"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="430"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1121"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="431"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1172"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="380"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1464"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="591"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="761"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="341"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1102"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1151"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="481"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="1092"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="541"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1101"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1392"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1112"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="931"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="761"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="330"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="972"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="310"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1212"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1502"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="711"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1342"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1222"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1861"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="681"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1262"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="320"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="381"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="801"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1132"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2133"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1152"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="7761"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="5467"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1392"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1703"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1702"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1072"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1212"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="541"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1382"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="320"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2073"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1802"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1412"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1463"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1543"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1312"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1702"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1382"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="641"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1863"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1732"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4216"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="6638"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4977"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="77380"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="38910"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4006"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2544"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4126"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="961"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3835"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="451"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4166"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="350"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4196"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1723"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4296"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2103"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4556"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2474"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4276"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2614"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2824"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="8072"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="8282"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="9203"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1792"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3661"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1963"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3595"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2454"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1332"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2083"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="6035"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1793"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1512"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1943"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="6299"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="961"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="962"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1332"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="671"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1482"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="391"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1282"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="691"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1522"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="871"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="972"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="691"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1212"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="641"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1382"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="430"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1011"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="331"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1372"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="330"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1272"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="551"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="961"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="340"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="821"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1251"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="530"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="882"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="591"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="761"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1362"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1042"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="891"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="771"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="381"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="831"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="321"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1041"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1642"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="601"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1271"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1152"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1362"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="651"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1803"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="210"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="391"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="802"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1042"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2073"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1292"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="7391"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="5968"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1312"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1902"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1702"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1072"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1031"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="341"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1352"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="300"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1643"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2483"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1503"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1582"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1926"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1302"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1703"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1301"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="661"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1301"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1783"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="3635"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="6730"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4947"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="71250"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="39107"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3855"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1693"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4366"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1001"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4306"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="451"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3665"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="350"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4005"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1753"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4777"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1462"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4586"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2414"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4316"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2794"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2885"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="7944"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="8212"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="9524"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1773"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3345"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1963"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3775"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3055"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1442"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2273"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5638"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1732"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1682"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2473"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="6770"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1021"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1152"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1733"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="681"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1191"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="371"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1092"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="691"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1192"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="811"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1041"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="702"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1242"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="641"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1272"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="881"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1171"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="331"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1172"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="330"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1162"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="531"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="891"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="340"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="821"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1472"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="471"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="901"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="540"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1012"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1472"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1031"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="892"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="801"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="331"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="871"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="320"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1182"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1582"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="631"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1362"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1142"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1572"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="631"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1332"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="301"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="380"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="741"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1151"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2083"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1199"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="7611"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="5638"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1813"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1872"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1582"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1071"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1312"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="330"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1573"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="340"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1502"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1783"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1412"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1662"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1562"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1513"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2193"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1512"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="741"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1372"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1813"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="3665"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="5438"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="5018"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="75128"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="38906"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4096"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1762"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4306"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1012"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4206"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="451"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3757"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="371"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4256"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2343"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3986"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1683"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4426"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2534"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3986"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2143"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="3425"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="7961"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="8232"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="9714"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1642"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3565"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1973"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3705"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2603"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1443"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2363"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5582"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1762"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1502"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1932"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="6049"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1672"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="981"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1221"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="681"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1132"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="471"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1332"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="661"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1442"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="801"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="842"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="721"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1562"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="641"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1272"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="440"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1191"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="321"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1282"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="330"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1362"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="581"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="942"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="320"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="610"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1202"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="450"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="902"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="551"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="841"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1362"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1131"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="911"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="881"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="421"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="881"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="321"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1162"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1502"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="641"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1272"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1142"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1492"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="641"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1182"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="320"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="381"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="791"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1122"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2023"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1181"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="7211"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="6166"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1392"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1802"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1702"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1102"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1392"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="441"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1382"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="511"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1703"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2013"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1402"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1682"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1773"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1512"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1592"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1523"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="721"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1332"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1752"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4286"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="6700"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4526"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="75452"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="39752"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3905"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1823"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4076"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="991"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3715"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="450"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3745"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="361"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4797"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1704"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3965"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1713"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4436"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2414"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4006"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2684"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2894"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="7940"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="8232"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="8922"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1712"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3556"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1892"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3611"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2593"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1312"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2254"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="6038"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1842"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1502"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1942"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="6470"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1061"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1062"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1122"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="781"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1191"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="561"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1152"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="661"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1332"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="791"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1082"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="671"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1402"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="651"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1272"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="480"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1142"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="331"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1312"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="310"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1362"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="531"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="901"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="311"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="631"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1201"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="530"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="992"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="501"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="941"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1312"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1092"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="941"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="762"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="450"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="842"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="330"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1101"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1603"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="631"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1202"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1121"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1472"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="651"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1221"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="270"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="961"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="761"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1111"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2233"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1162"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="7230"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="6079"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1362"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1662"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1703"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="991"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1101"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="481"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1462"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="321"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1612"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2133"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1973"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1562"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1823"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1412"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1492"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1332"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="701"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1322"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1762"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="3605"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="6179"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="5077"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="74384"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="39200"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3895"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1713"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4146"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1041"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4366"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="451"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3765"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="441"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4226"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2143"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3966"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1702"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4565"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2604"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5127"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2134"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2664"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="8011"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="7641"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="8953"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2314"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3415"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1692"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3786"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2614"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2068"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2373"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5298"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1773"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1652"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1942"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="6410"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1052"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1011"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1132"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="721"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1301"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="411"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1542"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="661"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1522"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="881"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1082"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="721"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1142"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="631"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1282"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="441"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1712"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="331"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1192"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="430"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1372"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="531"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="972"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="370"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="631"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1162"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="461"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="911"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="500"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="831"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1402"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1191"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="932"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="791"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="401"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="881"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="351"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1222"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1693"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="641"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1322"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1322"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1592"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="851"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1302"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="301"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="380"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="811"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1201"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2153"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1392"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="7401"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="5558"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1322"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2413"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1773"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1061"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1071"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="391"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1182"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="300"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1643"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1872"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1512"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1532"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1893"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1301"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1732"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1282"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="1232"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1332"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1812"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="3555"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="5563"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="5108"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="74438"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="38343"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4877"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1612"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4246"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="942"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3765"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="451"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4376"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="411"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4266"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1692"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4627"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2063"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4466"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2413"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4827"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4161"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="3385"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="7811"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="8221"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="9523"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1722"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3505"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1932"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3545"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3264"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1332"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2554"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5248"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1722"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2183"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1972"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5699"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1041"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1783"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1212"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="681"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1141"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="421"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1502"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="681"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1422"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="801"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1086"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="711"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1242"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="611"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1983"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="430"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1011"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="331"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1372"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="330"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1292"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="551"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="942"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="350"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="792"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1302"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="460"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="902"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="561"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="761"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1362"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1132"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="911"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="741"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="331"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="881"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="341"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1111"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1492"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="641"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1352"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1132"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1261"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="650"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1262"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="251"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="380"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="801"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1176"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2133"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1312"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="7521"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="5458"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2003"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1622"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1582"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1101"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1302"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="330"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1482"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="341"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1662"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1903"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1512"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1533"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1763"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2013"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1702"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1402"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="741"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1372"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1803"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="3576"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="5618"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="5137"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="75846"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="39095"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4046"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2454"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4207"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1021"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3696"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="450"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4367"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="370"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3986"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1822"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4006"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1683"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4306"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2564"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5228"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2223"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2844"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="8108"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="11306"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="10495"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1773"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3515"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1793"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3535"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2674"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1403"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2163"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5278"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1762"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1693"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1943"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5778"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1052"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1051"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1342"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="761"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1072"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="581"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1322"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="681"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1432"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="721"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1042"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="671"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1101"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="641"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1072"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="440"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="911"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="330"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1291"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="331"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1372"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="541"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="951"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="351"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="791"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1222"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="461"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="881"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="511"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1001"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1442"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1121"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="911"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="771"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="461"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="851"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="340"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1062"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1612"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="631"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1302"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1092"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1382"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="641"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1292"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="320"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="381"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1442"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1161"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2033"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1152"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="7180"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="6169"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1262"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1602"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1603"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1071"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1121"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="331"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1182"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="340"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1653"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1890"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1533"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2313"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1562"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1402"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1703"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1372"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="671"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1352"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1802"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="3725"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="6373"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4456"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="74153"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="39056"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3966"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1702"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4206"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1132"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3565"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="451"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4377"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="360"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4046"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1832"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4287"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1492"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4507"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2413"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4126"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2184"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2764"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="8732"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="7531"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="9253"/>
-        </task>
-      </group>
-    </group>
-  </case>
-</log>
diff --git a/tests/org.eclipse.team.tests.cvs.core/benchmark/team2.1/I20021127.all.xml b/tests/org.eclipse.team.tests.cvs.core/benchmark/team2.1/I20021127.all.xml
deleted file mode 100644
index f34ca51..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/benchmark/team2.1/I20021127.all.xml
+++ /dev/null
@@ -1,12069 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<log timestamp="27/Nov/2002 15:20:14" sdkbuild="unknown">
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2123"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="8522"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1613"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4326"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3355"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="4417"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1912"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5849"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2063"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1603"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2223"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="6800"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1422"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2412"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1272"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="861"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1803"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="551"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1212"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="691"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1162"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="921"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="952"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="791"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1021"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1663"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1292"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="731"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1032"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="330"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1212"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="400"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1261"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="531"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="982"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="400"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="721"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1202"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="501"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="881"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="530"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="611"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1633"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="851"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="961"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="570"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1272"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="711"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="381"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1072"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2293"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="821"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1823"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1613"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2513"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="801"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1482"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="300"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="371"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="891"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1452"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2564"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1242"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="6750"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="5638"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1272"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2503"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1312"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1402"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1211"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1292"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1322"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="351"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1452"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3052"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1883"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1983"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1712"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1653"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1572"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1572"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="752"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1512"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="2143"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="5368"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="8483"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4056"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="60052"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="38876"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4297"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1952"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4217"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1231"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4116"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="791"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3986"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="390"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4607"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2183"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4437"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2022"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5938"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3215"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4466"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3055"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="3535"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="9794"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="10976"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="11937"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2113"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="7501"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1462"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4497"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6189"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="4176"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2464"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5558"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1773"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1612"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2524"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="6639"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1292"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1843"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1232"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="761"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1893"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="721"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1282"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="671"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1292"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="551"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1071"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="792"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="971"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1252"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1302"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="601"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1152"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="390"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1012"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="310"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1172"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="561"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1162"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="320"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="731"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1142"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="471"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="881"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="531"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="561"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1752"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1172"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1052"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="681"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1242"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="721"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="380"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="831"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2313"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="822"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1572"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1623"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2344"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="551"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1913"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="240"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="361"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="951"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1312"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2634"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1342"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="6199"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="6008"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1602"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2804"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1282"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1652"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1372"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="460"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1292"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="341"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1322"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2524"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1422"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2033"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5108"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1712"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1262"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1813"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="861"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1512"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="2173"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4546"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="9003"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4687"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="56873"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="40067"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4156"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2345"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4196"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1332"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4026"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="481"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5868"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="361"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5939"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2143"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4536"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1903"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5809"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2473"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4716"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2975"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2994"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="9524"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="8822"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="11597"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2183"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="7331"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1462"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4276"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5157"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="4216"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2344"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5317"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5758"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1522"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2224"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="6639"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1091"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2384"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1071"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1112"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="992"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="560"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1291"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="772"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1282"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="841"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1262"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="741"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1002"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1272"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1402"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="711"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1122"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="320"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1192"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="310"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1171"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="531"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1172"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="340"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="671"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1162"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="501"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="891"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="550"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="631"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1432"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="751"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1102"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1623"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="571"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="801"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="330"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="951"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2313"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="882"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1412"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1502"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2344"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="721"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1452"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="301"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="370"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1051"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1662"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="3214"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1291"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="6189"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="6089"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1252"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1612"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1452"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1462"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1493"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="421"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1292"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="330"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1583"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2503"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2233"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2273"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1713"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1231"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1231"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1633"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="761"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1642"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="2384"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4537"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="8833"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4196"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="59355"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="41540"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4487"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1872"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4196"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1112"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4297"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="530"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4026"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="381"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4767"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1772"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4206"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1922"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5648"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2724"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4246"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3411"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="3885"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="9694"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="9684"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="12117"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2193"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="8142"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1332"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4606"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3985"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2955"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2113"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5408"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2103"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1632"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2304"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="6529"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1042"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2684"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1212"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="791"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1242"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1752"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1132"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="681"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1412"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="781"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1071"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="731"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="831"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1232"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1202"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="731"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1021"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="321"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1192"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="310"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1392"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="511"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="972"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="340"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="821"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1171"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="480"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="902"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="521"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="641"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2234"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="781"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1101"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1131"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="441"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="711"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="351"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="821"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2384"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="691"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1660"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1592"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2463"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="540"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1492"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="350"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="361"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="832"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1342"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2503"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1372"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="6639"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="5979"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1302"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1932"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1552"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1101"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1333"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="460"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1482"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="621"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1322"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3114"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1623"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1642"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1633"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2042"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1362"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1682"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="791"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1673"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="2353"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="5027"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="9805"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4066"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="59005"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="40263"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4647"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2834"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4086"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1091"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3775"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="481"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4136"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="391"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4406"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2273"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3995"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2063"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5758"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2393"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4416"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3825"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2954"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="9524"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="9153"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="11526"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1992"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="8413"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1742"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3872"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3285"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3395"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2083"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5077"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1822"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1703"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2163"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="6730"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1061"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2945"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1091"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="912"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1051"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1262"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1262"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1111"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1232"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="490"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1072"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="771"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="972"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1442"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1192"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="941"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1002"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="340"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="982"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="370"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1221"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="721"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="971"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="340"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="781"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1132"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="521"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="871"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="481"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="561"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1432"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="741"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1302"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1162"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1252"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="711"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="330"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1192"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2319"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="782"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1492"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1212"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2543"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="540"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1633"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="320"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="371"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="821"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1342"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2754"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1122"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="6439"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="6249"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1412"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2824"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1353"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1652"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1432"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="380"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1201"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="311"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1582"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2614"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1592"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1833"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1562"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1953"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1262"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1542"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="771"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="2043"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="2594"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4917"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="8672"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4146"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="57580"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="40498"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4216"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1902"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4666"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1152"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3955"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="481"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4146"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="381"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4407"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2253"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4006"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3375"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5268"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3295"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4346"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2934"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="3235"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="9534"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="9323"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="12097"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2454"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="8733"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1722"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3856"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4667"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2914"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1993"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5799"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1722"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2313"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2002"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="6670"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1152"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3124"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1151"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="741"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1072"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="410"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1311"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="742"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1132"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="520"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1433"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="761"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1002"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1351"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1172"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="711"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1352"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="380"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1121"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="381"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1081"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="521"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="962"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="350"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="942"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1322"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="491"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="871"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="521"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="541"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1632"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="891"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1082"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="892"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="470"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="811"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="350"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1052"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1933"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="721"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1592"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2063"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2244"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="540"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1673"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="280"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="371"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="881"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1512"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2614"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1201"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="7071"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="5868"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1142"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2904"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1462"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1282"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1241"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1322"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1331"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="581"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1342"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2052"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1972"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1773"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2033"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1733"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1442"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1853"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="921"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1532"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="2254"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4887"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="8652"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4346"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="55158"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="40345"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3946"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2894"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4286"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1182"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4116"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="451"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3735"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="381"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4477"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2724"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4026"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2263"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5237"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2864"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4217"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3384"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="3374"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="9334"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="9013"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="11647"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2313"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="8332"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2023"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4326"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4256"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3395"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2694"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5147"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1672"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1542"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2133"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="7141"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1022"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2754"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1262"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="761"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1983"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="751"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1061"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="681"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1171"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="762"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1081"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="711"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="981"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1248"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1182"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="511"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1022"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="530"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1041"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="310"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1281"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="521"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="972"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="340"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="852"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1182"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="491"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="871"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="481"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="571"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2063"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="891"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="981"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1151"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="451"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="721"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="361"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="981"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2303"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="701"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1632"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1613"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2653"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="530"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1563"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="280"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="371"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="892"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1372"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2624"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1162"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="7010"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="6369"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1462"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2826"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1462"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1232"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1321"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1222"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1192"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="321"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1892"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2454"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1733"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2023"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2043"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1642"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1613"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1542"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="701"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1552"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="2103"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="5397"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="8993"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4146"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="57322"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="40568"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4436"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2203"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4106"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1643"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4967"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="531"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3735"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="681"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4146"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2493"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4466"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1773"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6104"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2744"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4496"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2864"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="3105"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="9564"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="9824"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="11637"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2073"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="9332"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1622"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4356"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6429"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2544"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1882"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5579"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1662"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1833"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2133"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="6459"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1101"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2604"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1062"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="811"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1191"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="391"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1152"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="701"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1593"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="550"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1082"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="781"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1011"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1502"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1192"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="431"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="991"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="341"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1112"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="310"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1182"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="531"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1352"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="350"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1172"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1312"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="440"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="802"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="511"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="631"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2724"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="751"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="921"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1422"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1271"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="801"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="611"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="761"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2374"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1112"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1572"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1723"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1883"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="531"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1622"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="311"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="370"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="841"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1282"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2494"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1412"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="6489"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="6181"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1202"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2313"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1462"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1482"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1442"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1232"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1192"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="350"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1432"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1883"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2023"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1843"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1653"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1912"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1152"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2263"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="811"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1682"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="2043"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4723"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="8702"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4056"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="54668"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="40449"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4196"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1753"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3955"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1423"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4016"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="581"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4737"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="360"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4857"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2012"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4266"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2153"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5634"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2584"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4076"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4026"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="3405"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="9613"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="9444"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="12457"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2273"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="8714"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1572"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3986"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6900"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2855"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1832"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5328"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1633"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1532"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2994"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="6390"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1011"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2774"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1252"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="982"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1132"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1642"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1342"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="661"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1102"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="511"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1061"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="712"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="992"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1472"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1162"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="751"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1382"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="341"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1201"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="301"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1292"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="511"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="971"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="331"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="852"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1152"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="491"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="881"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="490"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="531"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2083"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="751"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1132"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="491"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1342"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="721"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="370"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="901"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2313"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="671"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1643"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1622"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1663"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="521"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1792"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="261"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="380"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="891"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1361"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2844"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1101"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="7301"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="6715"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2053"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2714"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1523"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1291"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1432"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="410"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1191"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="611"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1472"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1923"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1732"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1733"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1983"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1452"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1182"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1522"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="972"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1622"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="2163"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4807"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="9244"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4316"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="57091"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="42338"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3876"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2504"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4236"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1402"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4166"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="491"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4196"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="360"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4236"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3395"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4065"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1883"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5318"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2283"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5087"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3305"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="3085"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="9664"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="9143"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="12027"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2070"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="8062"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1602"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4146"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4757"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3505"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2393"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5558"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2183"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1513"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2013"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="7831"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <abort type="warning" message="Encountered error dialog with title: Problem Occurred">
-    </abort>
-    <abort type="warning" message="Encountered error dialog with title: Unable to Synchronize">
-    </abort>
-    <abort type="warning" message="Encountered error dialog with title: Problems encountered performing checkout">
-    </abort>
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <abort type="warning" message="Encountered error dialog with title: Unable to Synchronize">
-          </abort>
-          <result elapsed="8342"/>
-        </task>
-        <task name="Nothing to Commit">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <abort type="warning" message="Encountered error dialog with title: Unable to Synchronize">
-          </abort>
-          <result elapsed="8512"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <abort type="warning" message="Encountered error dialog with title: Unable to Synchronize">
-          </abort>
-          <result elapsed="8019"/>
-        </task>
-        <task name="Nothing to Commit">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <abort type="warning" message="Encountered error dialog with title: Unable to Synchronize">
-          </abort>
-          <result elapsed="8502"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <abort type="warning" message="Encountered error dialog with title: Unable to Synchronize">
-          </abort>
-          <result elapsed="8473"/>
-        </task>
-        <task name="Nothing to Commit">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <abort type="warning" message="Encountered error dialog with title: Unable to Synchronize">
-          </abort>
-          <result elapsed="8512"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1032"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1432"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1181"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="722"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1011"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="321"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1171"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="331"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1062"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="540"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1362"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="330"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="821"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1292"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="501"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="851"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="471"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="571"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1682"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="862"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1071"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="591"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1262"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="821"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="341"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="992"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2754"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="881"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1472"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1432"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2123"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="571"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1412"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="300"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="371"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="791"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1292"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2724"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1492"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="6870"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="5929"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1422"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2533"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1469"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1161"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="951"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="711"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1111"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="321"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1512"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1923"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1843"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1742"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2293"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1212"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1262"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1592"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="1012"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1392"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="2144"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4606"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="8923"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4206"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="54848"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="41225"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3996"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2193"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4366"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1432"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4096"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="520"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4136"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="381"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4096"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3575"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4096"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1773"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5658"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3044"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4557"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3245"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2994"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="9694"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="9173"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="13339"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1973"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="7511"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1863"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4035"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4186"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2694"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2314"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5387"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1823"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1942"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2113"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="6279"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1071"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3375"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1423"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="781"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1161"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="541"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1292"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="721"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1191"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="691"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1162"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="731"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1061"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1252"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1532"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="770"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="971"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="340"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="991"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="321"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1071"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="521"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="972"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="340"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="691"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1152"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="501"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="761"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="501"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="631"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1862"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="892"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1131"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="550"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1252"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="812"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="350"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1002"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2173"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="721"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1522"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1853"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2063"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="531"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1822"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="331"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="370"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="831"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1322"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2434"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1512"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="6990"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="5879"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1812"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2724"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1663"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1322"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1212"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="511"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1312"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="310"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1452"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2804"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1802"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1693"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2223"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1763"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1572"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1602"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="731"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1722"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="2393"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4817"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="9063"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="3936"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="55066"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="40418"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3866"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2473"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4436"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1372"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4887"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="481"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4126"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="351"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4536"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3385"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4086"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2073"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5478"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2514"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4205"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3505"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="3415"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="9444"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="9323"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="12135"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2574"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="8183"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1462"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4406"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4917"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3164"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1993"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5197"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1552"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1742"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2003"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="6790"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1071"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2664"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1272"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="791"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1513"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="550"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1141"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="671"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1361"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="551"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1032"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="801"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="991"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1242"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1212"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="400"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1071"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="371"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1592"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="341"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1242"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="520"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="971"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="340"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="791"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1352"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="501"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="871"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="611"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="551"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1602"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="922"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="881"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="531"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1252"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="711"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="360"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="992"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2313"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="862"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1432"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1943"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1722"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="761"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1412"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="290"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="371"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="932"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1542"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2343"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1141"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="7651"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="6139"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1362"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1723"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1862"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1302"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1542"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1232"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1292"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="320"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1332"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2414"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1722"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2444"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1472"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1432"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1652"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1552"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="892"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1532"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="2213"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4807"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="8552"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4096"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="57823"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="41065"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3965"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1913"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4096"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1773"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4306"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="481"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3946"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="360"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4046"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2273"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5027"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1762"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5209"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3114"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4317"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2744"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="3174"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="9704"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="9374"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="11276"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2523"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="8819"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1903"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4356"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4997"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2874"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1893"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5888"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1783"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1532"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2093"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="6770"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="992"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2383"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1442"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="862"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1282"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1642"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1102"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="711"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1342"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="541"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1132"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="751"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1211"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1282"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1603"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="400"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="851"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="290"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1192"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="300"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1091"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="511"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="972"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="340"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="671"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1142"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="501"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="901"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="521"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="601"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1268"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="841"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="901"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="601"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1251"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="731"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="310"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="942"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1552"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="791"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1562"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1322"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2584"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="541"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1492"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="251"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="380"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="791"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1212"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2313"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1522"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="6029"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="6960"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1622"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2925"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1462"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1482"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1392"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="401"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1202"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="340"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1862"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2344"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1782"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2083"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1842"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1863"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1232"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1712"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="691"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1822"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="2153"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="5188"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="9174"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="3976"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="56681"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="39756"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4126"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1943"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4707"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1412"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3846"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="481"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4356"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="401"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4236"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2153"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5625"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1863"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6429"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2644"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4206"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3214"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="3465"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="9233"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="9313"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="12228"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2434"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="7621"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1552"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4437"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4857"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="4697"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2354"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5898"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1642"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1582"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2513"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="6406"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1122"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2553"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1251"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1062"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1011"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="461"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1272"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="671"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1292"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="571"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1061"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="731"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1042"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1232"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1191"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="511"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1112"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="761"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1072"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="320"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1172"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="521"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="971"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="351"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="661"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1192"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="471"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="801"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="561"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="551"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1952"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="891"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1071"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1342"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="380"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="791"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="310"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="762"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2062"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="891"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1582"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1241"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2554"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="531"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1532"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="321"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="370"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="891"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1452"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2343"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1202"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="6970"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="5958"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1262"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2263"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1532"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1081"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2183"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1202"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1312"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="340"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1412"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2303"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1552"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2274"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1963"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1612"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1152"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1682"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="701"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1643"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="2144"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4657"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="8622"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4126"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="59372"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="39345"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4036"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2664"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4296"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1322"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3926"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="471"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4356"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="371"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4166"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3945"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4426"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2003"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6149"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2784"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4086"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2994"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="3015"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="9784"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="9984"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="11567"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2223"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="8612"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1802"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4276"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5618"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2984"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2283"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5348"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1842"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1562"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2012"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="6470"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1071"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2684"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1252"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="751"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1262"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1682"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1111"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="691"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1132"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="511"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1157"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="772"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1041"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1452"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1291"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="421"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1012"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="330"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1192"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="311"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1292"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="500"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1443"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="360"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="771"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1091"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="470"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="811"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="480"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="561"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1793"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="841"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="881"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="561"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1271"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="792"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="320"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="801"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1983"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="892"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1462"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1222"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2724"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1752"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1833"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="421"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="370"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="831"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1262"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2433"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1112"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="6679"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="5959"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1813"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2113"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1452"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1352"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2614"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="431"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1111"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="371"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1452"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2464"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1812"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1833"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1532"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1593"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1562"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1633"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="811"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1522"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="2053"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="5007"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="8833"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4165"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="57983"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="39957"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4477"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2143"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4106"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1202"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3986"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1242"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4356"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="651"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4096"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2113"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5137"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1702"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6009"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2593"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6099"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2914"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2974"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="10225"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="9193"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="11887"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2013"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="8933"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1622"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4537"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4847"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2824"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2424"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5648"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2003"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1492"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2042"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="6630"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1081"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2664"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1132"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="771"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1159"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="551"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1282"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="811"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1242"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="560"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1121"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1052"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="951"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1262"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1292"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="731"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1022"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="320"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1191"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="321"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1182"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="510"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="971"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="340"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="842"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1292"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="491"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="791"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="491"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="561"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1862"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="711"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1062"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="611"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1262"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="801"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="311"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="811"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2363"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="701"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1493"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1502"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2434"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="841"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1302"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="260"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="371"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1332"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1442"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2263"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1192"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="6619"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="6380"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1291"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2604"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1462"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1362"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1442"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1262"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1202"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="340"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1933"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2442"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1522"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1682"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2624"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1813"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1162"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1602"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="972"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1582"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="2133"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4576"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="8112"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="3936"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="54738"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="38325"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4467"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2073"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4637"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1129"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4526"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="481"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3735"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="351"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4045"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1703"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4016"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3665"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4977"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3265"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4006"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3976"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2994"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="9374"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="9363"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="11607"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2053"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="8142"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2173"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3816"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4825"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2543"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2233"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="6129"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1792"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1512"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2003"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="6960"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1014"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2834"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1102"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="791"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1011"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="541"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1122"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="691"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1272"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="651"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1102"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="731"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1011"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1172"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1182"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="430"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1031"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="301"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1201"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="311"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1299"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="521"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="821"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="290"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="831"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1192"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="491"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="891"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="521"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="621"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1582"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="701"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="981"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="641"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1171"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="801"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="310"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="942"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2273"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="871"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1573"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1702"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2474"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="511"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1462"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="321"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="360"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1352"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1342"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2644"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1182"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="7721"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="6139"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1372"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2373"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1512"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1453"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1312"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1292"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1302"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="340"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1893"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2143"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1412"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1743"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1952"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1913"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1623"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1672"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="741"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1512"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="2514"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4647"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="8161"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4015"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="55781"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="41079"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4085"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2384"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4767"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1291"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4266"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="471"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3935"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="381"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4206"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2524"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4026"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1952"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5668"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3045"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4106"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3211"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="3616"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="9473"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="9444"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="11657"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2073"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="9213"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1432"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3908"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4907"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3665"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2514"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5418"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1673"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1582"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2053"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="6249"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1051"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2584"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1072"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="801"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1302"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1242"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1272"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="671"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1232"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="721"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1001"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="721"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1031"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1272"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1272"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="421"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1011"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="331"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1182"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="320"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1182"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="521"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="971"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1212"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="701"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1422"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="501"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="891"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="491"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="561"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1442"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="751"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1022"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="521"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="460"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="711"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="330"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="921"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2314"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="831"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1462"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1593"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2173"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="511"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1312"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="270"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="371"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="942"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1232"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2383"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1182"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="6990"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="6259"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1863"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2403"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1532"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1322"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1251"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1252"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1102"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="351"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1252"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1952"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1532"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2493"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1702"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1943"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1172"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1632"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="741"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1512"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="2103"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4577"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="8342"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4066"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="53193"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="39777"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4717"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2013"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4266"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1272"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4026"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="451"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4496"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="381"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4186"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2253"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4116"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2174"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5678"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2613"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4176"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3154"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="4777"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="9284"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="8872"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="12335"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1963"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="8824"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1642"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3706"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5658"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3375"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1943"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5458"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1602"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1543"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1993"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="6489"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1142"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2764"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1041"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="771"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2043"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1953"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="912"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="771"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1242"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="591"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1071"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="761"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1002"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1472"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1302"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="410"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1001"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="340"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1181"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="311"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1162"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="631"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="961"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="321"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1402"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1192"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="470"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="691"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="520"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="641"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1763"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="741"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="951"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="560"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1282"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="812"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="360"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="701"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2314"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="791"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1472"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1873"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2494"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="721"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1482"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="260"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="371"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="891"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1322"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2484"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1142"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="6256"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="6209"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1232"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2724"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1492"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1342"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1292"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1211"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1212"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="351"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1552"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1823"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1813"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2503"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1603"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1482"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1081"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1603"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="661"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1522"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="2093"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="5368"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="8242"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4076"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="58604"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="38400"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4016"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1943"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4727"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1182"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3785"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="471"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3956"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="360"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4998"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2653"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4247"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1802"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5909"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3855"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3945"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3205"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="3385"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="11196"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="8803"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="12428"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1822"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="8963"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1402"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3785"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4577"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="4466"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2294"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5207"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1653"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1572"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2584"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="6379"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1072"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2634"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1242"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1061"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1693"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1762"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1272"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="681"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1272"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="751"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1131"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="721"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1001"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1463"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1211"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="501"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="992"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="350"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1071"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="331"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1161"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="531"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1062"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="360"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="841"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1171"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="491"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="881"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="530"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="591"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1562"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="731"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="941"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1122"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1262"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="861"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="321"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="871"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1412"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="711"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1613"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1052"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2273"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="801"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1452"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="241"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="370"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="911"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1572"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2303"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1161"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="7131"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="6719"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1182"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2123"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1492"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1182"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1112"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1582"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1272"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="391"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1332"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1833"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1382"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2143"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2183"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1953"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1182"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1752"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="701"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1662"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="2213"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4716"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="8392"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4166"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="54458"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="40568"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4276"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1892"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4176"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1402"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4747"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="480"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3945"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="411"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4496"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2794"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4606"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2003"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5447"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2764"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4266"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3755"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="4296"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="9444"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="9783"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="14371"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2153"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="8212"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1652"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4216"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6098"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2764"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2494"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5207"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2114"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1512"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2654"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="6419"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1062"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2774"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1041"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4086"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1207"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1732"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1141"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="661"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1121"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="491"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="911"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="741"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="961"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1182"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1182"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="721"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="921"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="311"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1072"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="340"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1162"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="531"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="961"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="351"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="851"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1112"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="491"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="891"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="501"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="611"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1753"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="751"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="911"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="671"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="401"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="701"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="361"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="911"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2323"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="821"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1592"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1081"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2474"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="531"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1442"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="310"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="371"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="858"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1392"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2293"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1091"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="7140"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="6820"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1813"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2103"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1442"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1712"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1522"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1232"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1202"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="330"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1272"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1853"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1723"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1892"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1622"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1682"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1552"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1572"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="591"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1502"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="2354"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4467"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="9033"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="3495"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="59013"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="37874"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4717"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1803"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4196"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1221"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4657"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2794"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4586"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="361"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4647"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2553"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4015"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1833"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6570"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3174"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4116"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2965"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="3024"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="10195"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="9333"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="11366"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2083"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="9213"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1362"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4637"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5368"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="4316"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1973"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5027"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1462"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1542"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2123"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="7000"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1712"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2564"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1262"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="831"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1983"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1733"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1121"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="671"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1111"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="511"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1062"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="711"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1622"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1272"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1202"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="421"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="971"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="341"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1192"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="310"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1172"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="531"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="961"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="351"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="691"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1162"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="451"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="881"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="521"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="581"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1953"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="761"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1452"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="631"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="461"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="821"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="331"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="811"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1793"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="651"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1533"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1392"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2193"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="550"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1312"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="331"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="370"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="882"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1902"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2463"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1122"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="7341"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="6419"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1151"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1583"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1522"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1351"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1392"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1232"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1092"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="350"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1231"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2344"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1803"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1882"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1702"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2043"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1582"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2204"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="741"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1432"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="2113"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4576"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="7771"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4156"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="56621"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="40515"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4547"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1983"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4727"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1242"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4046"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="520"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4015"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="381"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4947"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2263"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4016"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2013"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5218"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3084"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5000"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3024"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="3375"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="9283"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="8873"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="11606"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1853"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="8852"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1479"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3885"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4637"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3275"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2403"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5909"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2073"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1482"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2113"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="6319"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1102"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2383"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1071"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1773"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1792"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="741"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="891"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="681"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1152"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="671"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1061"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="732"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="941"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1262"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1192"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="421"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1532"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="310"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1171"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="331"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1162"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="530"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="971"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="340"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="871"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1142"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="501"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="781"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="521"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="581"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1592"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="891"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="872"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="651"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1242"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="701"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="300"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="932"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2303"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="841"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1553"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="941"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2454"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="531"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1352"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="300"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="381"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1762"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1342"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2734"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1162"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="6729"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="5689"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2023"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2594"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1302"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1633"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1142"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="410"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1132"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="310"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1512"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2553"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1682"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1823"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1542"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1993"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1262"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1602"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="782"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1612"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="2844"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4574"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="7831"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4145"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="59145"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="41660"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4106"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1933"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4797"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1172"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4356"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="521"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3936"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="370"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5087"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1903"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4657"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1872"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6086"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2243"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5297"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3115"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="3174"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="9354"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="9644"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="12146"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2063"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="7241"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1993"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3845"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6159"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3906"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1983"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5268"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2123"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1533"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2113"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="6979"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1812"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2374"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1071"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="812"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1352"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="530"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1382"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="690"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1232"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="691"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="971"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="721"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1763"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1272"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1182"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="520"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1001"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="351"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1091"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="301"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1182"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="530"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="961"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="341"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="841"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1181"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="471"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="881"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="500"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="581"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1843"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="721"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="931"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="641"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1442"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="721"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="330"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="861"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2254"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="701"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1502"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1512"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2243"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="751"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1402"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="221"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="400"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="921"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1231"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2654"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1152"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="6719"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="5839"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1582"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2624"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1452"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1432"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1653"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="390"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1122"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="341"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1532"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2243"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1793"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1832"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1963"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1872"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1232"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2434"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="771"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1552"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="2141"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4447"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="8172"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4256"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="58001"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="38616"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4086"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2013"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4797"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1141"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4236"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="490"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3825"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="351"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4266"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2463"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4737"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2093"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5889"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2493"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4115"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2935"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="3355"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="10194"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="9023"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="12008"/>
-        </task>
-      </group>
-    </group>
-  </case>
-</log>
diff --git a/tests/org.eclipse.team.tests.cvs.core/benchmark/team2.1/I20030129.all.xml b/tests/org.eclipse.team.tests.cvs.core/benchmark/team2.1/I20030129.all.xml
deleted file mode 100644
index d289b4e..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/benchmark/team2.1/I20030129.all.xml
+++ /dev/null
@@ -1,12195 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<log timestamp="29/Jan/2003 17:16:34" sdkbuild="unknown">
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2032"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="9815"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1892"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4657"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4937"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="461"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="921"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1563"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="190"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="871"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="812"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3064"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1032"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="951"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1803"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="130"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="551"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2133"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="120"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="661"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="801"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1562"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1072"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="420"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="791"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="170"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="671"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="862"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="110"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="711"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="821"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1212"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="471"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="821"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="581"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="611"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2113"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="701"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1412"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="611"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="101"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="360"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="942"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1872"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="821"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1923"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1983"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2543"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="781"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1923"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="321"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="320"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="992"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1513"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2834"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1142"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="7290"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="6460"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1522"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2654"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1452"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1521"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1171"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="110"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="691"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1352"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2323"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1792"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1953"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1262"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2373"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1162"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1993"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="771"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="651"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1773"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4666"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="7871"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="3985"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="49942"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="40318"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2952"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2123"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3345"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1382"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3044"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="151"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2634"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3285"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2213"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3295"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2493"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4857"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2934"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3275"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4066"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2534"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="5738"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="7811"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="12257"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1762"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="11627"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1382"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5238"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5037"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="461"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="811"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2023"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="180"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="852"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2604"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2574"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="911"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="791"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="821"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="130"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="741"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1742"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="120"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="501"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="811"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1412"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1021"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="491"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="751"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="772"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="941"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="641"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="761"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1252"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="401"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="731"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="611"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="621"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2373"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="701"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="992"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="551"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="371"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="641"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2293"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="921"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1983"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2013"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1853"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="681"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1782"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="440"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="331"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="931"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1592"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2543"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1282"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="7291"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="6049"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="992"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1742"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1312"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1402"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="901"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="110"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="731"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1432"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2063"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1562"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2334"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2513"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1953"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="932"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1902"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="711"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="461"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1593"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4256"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="8402"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="3735"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="55519"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="43473"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3525"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2233"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3294"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1412"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6199"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="220"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2664"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3605"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2574"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3305"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2864"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4817"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3405"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3505"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4516"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2824"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="8001"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="7772"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="10626"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1923"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="11076"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1602"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4968"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5868"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="511"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="861"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1630"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="170"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="811"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="971"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2644"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1142"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1242"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1752"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="150"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="671"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2223"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="121"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="611"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="952"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1422"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1011"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="391"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="641"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="640"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="941"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="110"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="501"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="641"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1122"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="470"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="802"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="661"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="561"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1993"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="721"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1071"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="590"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="101"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="300"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="801"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1702"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="881"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1792"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1121"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1463"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="681"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1762"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="271"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="330"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1082"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1762"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2443"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1262"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="6630"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="6105"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="941"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2514"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1012"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1412"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="751"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="150"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="530"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1112"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2203"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1182"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2393"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1252"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1342"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1713"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1812"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="601"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="701"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1873"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4596"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="8111"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="3876"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="53996"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="42730"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3034"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2193"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3896"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1322"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3185"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="140"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2744"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3134"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2394"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3185"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2473"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3976"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3293"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3365"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4246"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2713"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="11597"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="7792"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="10873"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1833"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="8592"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1602"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4937"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5237"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="461"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="731"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1452"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="191"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="841"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="892"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2914"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1262"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="971"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1071"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="131"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="510"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2083"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="120"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1392"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="892"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1412"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1021"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="381"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="801"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="141"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="821"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="861"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="641"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="711"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1301"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="470"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="832"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="641"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="601"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1472"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="691"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1011"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="510"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="101"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="360"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="621"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1682"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="832"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1782"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1692"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2043"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="711"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1733"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="300"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="321"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1081"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1593"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2574"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1242"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="5738"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="6329"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1002"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2323"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1272"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1482"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="912"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="110"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="631"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1280"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2624"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1172"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2363"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1533"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1422"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1212"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2483"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="601"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="661"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1673"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4346"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="8079"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4056"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="55180"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="43723"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2964"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2484"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3856"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1652"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3065"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="170"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2954"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3394"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1583"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3395"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2764"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4527"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="4015"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3405"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4196"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2714"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="10421"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="7701"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="11476"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1802"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="10525"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1152"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4867"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5878"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="481"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="921"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1573"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="170"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="901"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="881"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3154"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1251"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="852"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1652"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="130"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="640"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2173"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="120"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="651"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1022"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1232"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1031"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="381"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="791"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="120"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="651"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="961"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="511"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="911"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1282"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="461"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="851"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="631"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="661"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2003"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="841"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="942"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="511"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="361"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1151"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2194"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="691"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1852"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1662"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2854"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1032"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1732"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="241"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="320"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1012"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1629"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2664"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1152"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="6309"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="6750"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="941"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2133"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1452"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1653"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1231"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="120"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="651"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1072"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1782"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1452"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2274"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1152"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1482"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1402"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2254"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="721"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="641"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1682"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4697"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="8031"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4025"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="54616"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="39937"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2924"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1732"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3294"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1513"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2814"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="140"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2694"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3024"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2033"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3385"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2634"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4787"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2593"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3145"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3926"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2774"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="9834"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="7761"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="14110"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1883"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="10325"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1532"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4787"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5428"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1142"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="931"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1713"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="170"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="931"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="831"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3275"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="751"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="962"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1682"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="121"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="671"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2283"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="121"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="661"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="661"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1241"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1022"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="380"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="661"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="591"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="861"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="101"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="641"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="661"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1262"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="471"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="831"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="621"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="501"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1873"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="871"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="941"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="581"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="380"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="711"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2003"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="781"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1813"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1653"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1412"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="891"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1632"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="310"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="330"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="992"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1412"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2514"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1112"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="7210"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="6316"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1602"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2033"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1252"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1572"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1712"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="110"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="681"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1062"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2032"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1602"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2223"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1252"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1822"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1332"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2032"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="651"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="650"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1542"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4256"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="8072"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4156"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="56868"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="38535"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2964"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1663"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3164"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2033"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3685"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="150"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2404"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3775"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2123"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3105"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2684"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4113"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2784"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3886"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4366"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2594"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="9353"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="7792"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="11056"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1873"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="10765"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1482"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4707"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5628"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="460"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="741"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1502"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="170"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="861"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="931"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3465"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1261"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="852"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1082"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="120"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="681"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1593"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="120"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="491"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="892"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1262"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="871"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="401"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="881"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="110"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="671"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="842"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="641"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="641"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1101"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="541"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="791"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="590"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="641"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1653"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="751"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="971"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="631"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="120"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="350"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="861"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2013"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="791"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2093"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1763"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2293"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="701"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1713"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="320"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="321"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1081"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1702"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2654"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1082"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="6469"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="6289"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="951"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3065"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1202"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1542"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="822"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="120"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="841"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1091"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2524"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2113"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3655"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1292"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1503"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="931"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1993"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="761"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="631"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1833"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="5288"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="8031"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="3846"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="53947"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="43621"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3004"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1813"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3415"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1693"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3014"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="150"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2633"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3084"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2293"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3095"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3495"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4376"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2784"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3676"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4375"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2574"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="11557"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="7351"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="12438"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2043"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="9554"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1492"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4513"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6029"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="460"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="711"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1582"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="170"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="901"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="851"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2604"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1132"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1192"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="821"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="130"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="691"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1963"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="120"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="671"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="791"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1222"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1372"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="751"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="781"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="101"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="691"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1122"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="531"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="641"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1272"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="480"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="922"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="651"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="531"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2413"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2824"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="962"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="631"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="361"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="961"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2144"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="831"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2183"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1902"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1422"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="731"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1992"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="310"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="341"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1052"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1733"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2294"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1312"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="7200"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="6179"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1692"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2133"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1282"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1983"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1412"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="111"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="631"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1292"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2743"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1042"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2043"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1322"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1472"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1051"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2273"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="571"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="651"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1713"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4307"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="8167"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="3806"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="54852"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="42882"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2834"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1502"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3174"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1382"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3765"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="141"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2453"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3455"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2303"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3174"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2514"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4977"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3064"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3175"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4486"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2513"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="11566"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="7731"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="11076"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2053"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="10065"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1813"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4246"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5378"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="741"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="871"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1482"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="160"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="901"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="941"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2554"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="921"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1092"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1813"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="130"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="701"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2123"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="137"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="711"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="831"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1442"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1012"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="500"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="801"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="120"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="521"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1182"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="110"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="521"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="991"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1252"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="491"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="811"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="701"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="601"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1612"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="792"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1281"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="571"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="361"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="801"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1793"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="821"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2003"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1693"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1642"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="751"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1683"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="240"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="331"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1091"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1362"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2433"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1352"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="7441"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="6259"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1342"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2143"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1032"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1291"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="891"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="140"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="551"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1312"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2033"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1392"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2594"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1572"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1852"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1061"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1893"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="591"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="481"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1793"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4596"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="8011"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="3986"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="52786"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="43349"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3124"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1943"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3134"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1443"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3115"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="150"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2484"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3305"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2143"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3165"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2523"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4667"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3675"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3495"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4226"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2534"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="10575"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="7802"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="11577"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1883"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="10785"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1252"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4417"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6188"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="451"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="711"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1442"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="170"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="811"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="841"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2524"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="961"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="842"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2013"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="130"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="561"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2214"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="120"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="671"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="831"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1412"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1032"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="841"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="842"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="741"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1142"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="531"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="500"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1382"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="411"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="811"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="641"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="621"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1704"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="731"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="971"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1352"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="360"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="671"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1792"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="811"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1903"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1783"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1612"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="691"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2314"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="220"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="321"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1041"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1633"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2254"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1412"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="6525"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="6409"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1232"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2914"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1302"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1612"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="921"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="110"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="541"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="951"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2434"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1071"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2654"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1482"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1923"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1032"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2073"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="751"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="511"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="2133"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="5197"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="7972"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="3955"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="55893"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="42099"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2954"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2253"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3195"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1562"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3475"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="150"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2644"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3074"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2013"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3124"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2774"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4457"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="4096"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3114"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3996"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2794"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="11767"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="7731"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="10315"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2134"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="10885"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1422"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4807"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4707"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="461"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="851"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1533"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="180"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="871"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="951"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2834"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="902"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="821"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1733"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="120"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="941"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1622"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="120"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="671"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="822"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1442"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1031"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="701"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="691"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="110"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="631"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1051"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="101"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="961"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="561"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1152"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="501"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="821"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="611"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="521"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1723"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="691"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1021"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1261"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="101"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="340"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="801"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1963"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="811"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1903"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1563"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1462"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="781"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1713"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="220"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="331"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1111"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1482"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2394"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1432"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="7481"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="6505"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1072"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2834"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1272"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1562"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="771"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="111"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="671"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1062"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2333"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1432"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2324"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1392"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2303"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1211"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2023"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="661"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="501"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1783"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4516"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="7951"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="3665"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="53427"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="41241"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3215"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1682"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3525"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1633"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3195"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="150"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2504"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3054"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1863"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3395"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2894"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4290"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2945"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3485"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4336"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2604"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="2594"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="7751"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="12037"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1792"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="9444"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2153"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5788"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5748"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="451"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="841"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1422"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="200"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="891"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="811"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2704"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1052"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="821"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1492"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="180"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="731"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1882"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="120"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="510"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="812"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1231"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1001"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="411"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="881"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="511"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1032"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="641"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="521"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1212"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="461"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="861"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="711"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="731"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2364"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="701"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="991"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="721"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="371"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="691"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2273"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="671"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1983"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1562"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2573"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1021"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1723"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="250"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="321"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="991"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1562"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2313"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1482"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="7531"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="6900"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="932"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1943"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1261"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1252"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="801"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="110"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="649"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1262"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1942"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1102"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2804"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1212"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1863"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1222"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1973"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="611"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="480"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1733"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4837"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="7561"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4106"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="58220"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="41581"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2824"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2513"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3155"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1282"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3125"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="150"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2844"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3295"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1602"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3465"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2233"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4106"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3375"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4216"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3645"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2489"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="3746"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="7711"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="12157"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1893"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="8622"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1783"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4577"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="7270"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="461"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="901"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1542"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="161"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="911"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="982"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2764"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="881"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1312"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1262"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="120"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="671"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1682"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="270"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="500"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="872"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1442"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="891"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="401"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="671"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="711"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="992"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="110"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="621"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="771"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1332"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="481"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="831"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="581"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="511"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1793"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="851"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="971"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="601"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="340"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="911"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1773"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="881"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1893"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1783"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2053"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="801"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1743"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="280"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="341"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1071"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="2043"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2394"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1462"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="7260"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="6159"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1462"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2724"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1252"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1292"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1292"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="110"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="661"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1512"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2223"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1171"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2384"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1352"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1672"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1162"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2033"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="641"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="641"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1683"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="5168"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="8442"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="3725"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="55540"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="44734"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2835"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2733"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3525"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1472"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3185"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="140"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2464"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3175"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1422"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3184"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2514"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5639"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3665"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3465"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4086"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2514"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="10741"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="7791"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="12118"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2333"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="9644"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1593"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4586"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4847"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="470"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="741"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1332"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="161"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="851"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="831"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2263"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="901"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="902"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1322"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="130"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="741"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1852"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="151"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="658"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="751"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1232"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="911"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="401"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="691"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="911"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1041"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="651"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="661"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1311"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="490"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="912"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="651"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="551"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1973"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="831"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1041"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1192"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="360"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="851"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1913"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="811"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1973"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1863"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2624"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="721"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1783"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="240"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="321"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1112"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1678"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2343"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1071"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="7221"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="6299"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1022"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3044"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1242"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1772"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1452"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="541"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1141"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2544"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1382"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2334"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1522"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2013"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1682"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2053"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="631"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="641"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1883"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="5709"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="7771"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="3856"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="52256"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="41820"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2945"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2493"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3245"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1362"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3195"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="150"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2875"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3365"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1923"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3175"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2704"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4206"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="4337"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3304"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4126"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2543"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="10555"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="7778"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="12057"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1843"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="11997"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1282"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4687"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5489"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="480"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="922"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2033"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="181"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="801"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="881"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2214"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="931"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="781"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="981"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="130"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="541"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1962"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="111"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="490"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="781"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1252"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1012"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="691"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="651"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1042"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1051"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="641"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="691"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1252"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="481"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="821"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="650"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="500"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1703"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="721"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1021"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="621"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2153"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="540"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2083"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="841"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2013"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1202"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1612"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="711"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1783"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="351"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="320"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1121"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1603"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2354"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1042"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="7380"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="6820"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1512"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3245"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1202"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1442"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1072"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="110"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="681"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1062"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2743"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1392"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2183"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1102"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1652"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1332"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2172"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="1022"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="490"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1882"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="5969"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="7931"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="3806"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="61515"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="45085"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2914"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2804"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3325"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1713"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2924"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="150"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3975"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3305"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2133"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4286"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2284"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4937"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3535"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3394"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4036"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="3025"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="8157"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="7721"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="10846"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2253"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="9153"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1392"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5007"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5077"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="461"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="881"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2113"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="170"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="881"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="911"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3014"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="951"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="981"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1702"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="120"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="751"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2102"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="130"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="681"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="891"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1452"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1002"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="701"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="781"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="671"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="942"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="651"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="691"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1342"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="471"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="731"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="601"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="671"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2274"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="841"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1152"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1322"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="190"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="361"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="741"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2214"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="791"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1923"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1312"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1412"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="701"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1823"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="230"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="331"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1001"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1952"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2324"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1111"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="6600"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="6039"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1041"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3045"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1372"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1542"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1412"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="110"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="521"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1222"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2774"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1232"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2384"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1312"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2012"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1071"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2073"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="561"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="531"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1782"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4677"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="7721"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4304"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="55459"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="41289"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2984"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1442"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3175"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1472"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2915"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="150"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2663"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3214"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1512"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4706"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2504"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4326"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="4066"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3576"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4736"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2624"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="3816"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="7761"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="12177"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1993"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="9463"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1422"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4526"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6229"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="481"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1382"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1372"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="170"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="841"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="942"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2503"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="902"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="961"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1773"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="120"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="681"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1812"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="130"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="711"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="842"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1412"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1011"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="491"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="801"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="101"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="510"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="881"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="661"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="711"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1211"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="401"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="851"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="620"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="530"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2384"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="831"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1152"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="641"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="351"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="962"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1893"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="821"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1963"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1552"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1402"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="721"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1883"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="241"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="320"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1122"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1803"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2300"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1122"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="6980"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="6449"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1062"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2544"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1292"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1602"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="761"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="101"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="611"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1152"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2433"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1172"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2243"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1201"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1913"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="912"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1972"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="831"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="651"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1521"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="5198"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="7631"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="3715"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="56860"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="39708"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2924"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2684"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3185"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1372"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2854"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="151"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2553"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3505"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1869"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3154"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2194"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4377"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3064"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3465"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4907"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2484"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="8773"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="7771"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="11376"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1833"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="10495"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1392"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5378"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4416"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="461"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="821"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1983"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="170"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1352"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="891"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3255"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="931"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="781"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="851"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="120"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="711"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1712"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="120"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="711"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="791"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1522"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="821"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="722"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="791"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="531"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1202"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="731"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="521"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1171"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="481"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="831"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="640"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="631"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1533"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="841"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1472"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="611"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="121"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="340"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="911"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1662"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="822"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1892"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1882"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1693"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="741"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1863"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="290"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="321"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1061"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1532"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2504"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1132"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="6656"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="6209"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1151"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2614"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1292"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1622"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1402"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="611"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1231"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2744"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1883"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2664"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1362"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2063"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1062"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2143"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="681"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="641"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1893"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4877"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="7841"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="3745"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="54878"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="38867"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2794"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1502"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3185"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1762"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2814"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="140"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2874"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3165"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1442"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3275"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2440"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4036"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3775"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3775"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4066"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="3034"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="8382"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="7291"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="11527"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1743"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="10264"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1291"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5508"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4687"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="451"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="711"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2183"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="170"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="861"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="882"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3174"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1282"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1242"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1062"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="120"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="681"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2173"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="110"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="651"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="861"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1422"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1032"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="480"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="761"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="120"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="511"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="981"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="111"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="500"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="550"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1302"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="460"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="832"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="681"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="541"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1892"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="701"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="991"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="611"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="151"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="380"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="761"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2143"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="861"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1883"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1822"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2544"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="701"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1923"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="320"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="321"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1031"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="2053"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2353"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1052"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="6909"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="6399"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1042"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2523"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1161"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1633"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="761"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="531"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1172"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2694"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1802"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2464"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1112"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1822"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1052"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2043"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="611"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="641"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1582"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4827"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="8032"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="3775"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="54206"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="41460"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2714"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1912"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3155"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1442"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3145"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="150"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2454"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3074"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1703"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3194"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2714"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4386"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3375"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3756"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4777"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2814"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="10996"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="7761"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="12197"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1863"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="10865"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1412"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="5317"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5117"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="491"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1001"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1953"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="340"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="842"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="852"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2824"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="921"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1192"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2524"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="120"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="601"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1963"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="120"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="671"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="781"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1553"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1011"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="411"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="661"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="521"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1022"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="641"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="621"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1191"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="460"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="841"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="641"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="631"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2404"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="701"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="992"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="601"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="411"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="691"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2213"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="901"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1883"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1422"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1382"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="691"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1723"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="280"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="331"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1102"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1763"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2404"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1061"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="6865"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="6269"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1812"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2023"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1272"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1312"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1473"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="130"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="621"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1112"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1743"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1642"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2293"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1342"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2614"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1232"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2273"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="822"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="631"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1592"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4947"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="7771"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="3775"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="56222"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="40003"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3545"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1792"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3365"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1563"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3135"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="150"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2654"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3025"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1802"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3716"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2183"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4457"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2703"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3344"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3886"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2504"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="10174"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="6049"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="13469"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1763"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="10275"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1242"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4416"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5478"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="490"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="831"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1542"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="160"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1082"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="901"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2564"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1262"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="891"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="982"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="130"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="691"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1683"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="120"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="651"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="891"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1202"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="991"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="411"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="901"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="101"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="531"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="981"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="110"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="511"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="791"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1242"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="571"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="851"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="611"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="471"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2233"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1762"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1290"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="571"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="110"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="330"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="931"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1793"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="811"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1913"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1712"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2484"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="701"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2003"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="231"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="330"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1082"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1752"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2333"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1131"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="7418"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="6159"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1192"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3014"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1272"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1572"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="831"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="831"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1032"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2163"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1212"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2263"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1111"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2033"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1082"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1953"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="601"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="520"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="2013"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4827"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="8181"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="3945"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="53207"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="40697"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3025"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1482"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3205"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1562"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3094"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="361"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2694"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3055"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1432"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3175"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2173"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4557"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="4456"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3395"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4126"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2454"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="8011"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="7821"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="13620"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1853"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="9564"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1412"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4937"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4376"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="481"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="902"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1683"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="160"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="831"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1152"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3044"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="902"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="801"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1582"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="120"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="771"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1763"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="130"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="681"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="822"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1211"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1001"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="601"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="781"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="130"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="641"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1051"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="500"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="681"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1222"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="500"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="822"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="601"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="501"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2694"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="841"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="961"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="571"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="350"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="971"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2003"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="681"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1913"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1923"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2273"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="671"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1873"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="370"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="331"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1302"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1632"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2283"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1031"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="6760"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="6339"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1382"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2303"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1272"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1462"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="871"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="701"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1232"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2564"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1051"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2324"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1242"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2563"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1182"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2203"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="581"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="651"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1663"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4797"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="7881"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="3285"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="55820"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="39285"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2915"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1442"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3174"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1442"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2954"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="160"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2444"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3415"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1702"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4366"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2744"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4256"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3325"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3395"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3966"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2423"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="9724"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="7131"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="11356"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1943"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="10745"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1893"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4577"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="7791"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="461"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="741"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1342"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="170"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="831"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="851"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3455"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1262"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="921"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="882"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="120"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1041"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1672"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="120"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="490"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="832"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1312"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1031"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="461"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="641"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="110"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="721"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1041"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="651"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="501"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1202"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="390"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="731"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="610"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="510"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1573"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="871"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1162"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="551"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="371"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="801"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2093"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="821"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1882"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1692"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2404"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="701"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1843"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="290"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="321"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1011"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="2304"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2413"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1102"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="6679"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="6450"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1162"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2944"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1282"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1312"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="871"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="651"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1252"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1963"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1402"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2333"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1533"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2844"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1212"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2223"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="761"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1242"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1773"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="5203"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="7781"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="3926"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="49374"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="39443"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2914"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1632"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3135"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1422"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3405"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="150"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2533"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3285"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2423"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3255"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2433"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4256"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2674"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3996"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3926"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2554"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="9744"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="7200"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="10144"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2083"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="9490"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1422"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4546"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4156"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="451"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="911"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1452"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="170"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="942"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="832"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2763"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="741"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1231"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1883"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="120"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="701"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2073"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="120"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="530"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="801"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1652"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1002"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="811"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="882"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="110"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="671"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1042"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="641"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="550"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1172"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="430"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="812"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="711"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="541"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2003"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="761"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1021"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="550"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="101"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="360"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1011"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2003"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="902"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1889"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1542"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1432"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="701"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1863"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="270"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="431"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1272"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1823"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2173"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1101"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="6860"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="6339"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1052"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2434"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1121"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1472"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="901"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="110"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="731"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1212"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3434"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1061"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2464"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1302"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1692"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="901"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2754"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="661"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="650"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1602"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4817"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="8072"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="3805"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="57503"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="40229"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3004"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2474"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3004"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1453"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3445"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="150"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2564"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3054"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1893"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3194"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2334"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4316"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2244"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4433"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3816"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2463"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="9824"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="7150"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="10435"/>
-        </task>
-      </group>
-    </group>
-  </case>
-</log>
diff --git a/tests/org.eclipse.team.tests.cvs.core/benchmark/team2.1/RC1.all.xml b/tests/org.eclipse.team.tests.cvs.core/benchmark/team2.1/RC1.all.xml
deleted file mode 100644
index 13c0e27..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/benchmark/team2.1/RC1.all.xml
+++ /dev/null
@@ -1,12195 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<log timestamp="25/Feb/2003 16:40:59" sdkbuild="unknown">
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2124"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3765"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1582"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4637"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2984"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="531"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="911"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1492"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="180"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1002"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1112"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="781"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1282"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="831"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1041"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="120"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="711"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1202"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="140"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="781"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1051"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="621"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1112"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="491"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="961"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="120"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="721"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1141"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="111"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1402"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="620"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1231"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="460"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="822"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="541"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="610"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1392"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="721"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1171"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="611"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="110"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="370"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="721"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1251"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="931"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1762"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="941"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1252"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="551"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1712"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="340"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="441"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1001"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1563"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2904"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1462"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="4507"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="6088"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1221"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1670"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1272"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1281"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1031"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="111"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="741"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1222"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1732"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1412"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2243"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1532"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1042"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1252"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1732"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="851"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="771"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1672"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4676"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="8773"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4326"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="33548"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="36891"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3796"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1372"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4757"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1321"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3164"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="151"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3074"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3455"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1552"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3385"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2363"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3716"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1983"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3565"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3535"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2974"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="11337"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="7631"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="4797"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2023"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3776"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1272"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="7540"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2704"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="461"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1061"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1552"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="170"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="992"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1161"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="922"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1001"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="801"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1001"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="120"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="731"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1022"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="130"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="921"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1002"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="731"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="991"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="571"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="721"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="101"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="711"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1152"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="130"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="711"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="681"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1452"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="481"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="821"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="541"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="591"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1262"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="731"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="991"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="570"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="101"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="671"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="631"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1182"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="701"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1893"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="841"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1282"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="671"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1813"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="311"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="320"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1031"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1582"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2754"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1342"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="4827"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="6159"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1182"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1482"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1603"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1392"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1041"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="161"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="841"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1251"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1362"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1412"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2143"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1232"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1041"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1372"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1853"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="651"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="861"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1493"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4456"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="9233"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4417"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="33227"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="35958"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3886"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1282"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4146"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1682"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3224"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="150"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3044"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3265"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1472"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3575"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2884"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3926"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1783"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3957"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3575"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2634"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="11186"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="7601"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="13529"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2103"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3876"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1642"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4557"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3134"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="501"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="841"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1893"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="160"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="881"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1011"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1021"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1201"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="822"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="941"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="130"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="711"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1162"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="110"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="671"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="812"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="550"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1311"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="481"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="832"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="771"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="932"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="110"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="841"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="661"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1272"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="470"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="822"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="551"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="560"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1202"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="811"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="922"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="561"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="341"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="811"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1342"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="822"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1882"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="911"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1272"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="661"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1652"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="280"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="320"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="891"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1462"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2734"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1322"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="4686"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="6049"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1152"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1522"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1582"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1242"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="882"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="110"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="871"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="891"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1662"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1563"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2123"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1332"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1232"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1242"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2002"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="610"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="541"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1482"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4595"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="10095"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4416"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="32207"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="35291"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3876"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1432"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3775"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1202"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3292"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="151"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3174"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3274"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1733"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3415"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2013"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3825"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1843"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4026"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3185"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2533"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="2834"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="7641"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="5088"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1973"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3876"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1652"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4337"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2824"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="681"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="891"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1552"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="170"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1062"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="981"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="911"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1022"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="991"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="951"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="160"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="601"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1021"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="140"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="742"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1132"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="631"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1112"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="490"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="812"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="110"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="841"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1062"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="110"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="551"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="802"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1062"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="491"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="911"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="551"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="631"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1192"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="721"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="961"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="540"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="131"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="430"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="611"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1312"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="751"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1823"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="892"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1271"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="590"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1553"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="260"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="321"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1241"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1542"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2594"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1352"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="4656"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="6079"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1132"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1332"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1602"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1262"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="932"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="110"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="731"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1071"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1623"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1592"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2093"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1402"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1061"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1152"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2093"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="621"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="671"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1713"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4586"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="9393"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4256"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="33527"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="35598"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3906"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1242"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4076"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1642"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3405"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="161"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2974"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3645"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1433"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3475"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3004"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4016"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1852"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3716"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3204"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2543"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="11727"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="7571"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="4867"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2233"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3695"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1743"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4586"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3465"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="451"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="971"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1742"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="160"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1903"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="992"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="831"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1052"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="751"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1082"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="130"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="681"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="912"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="110"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="731"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="902"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="620"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1141"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="491"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="801"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="120"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="941"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1032"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="761"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="751"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1262"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="480"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="822"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="511"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="630"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1162"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="721"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1072"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="511"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="371"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="721"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1071"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="831"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1853"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="761"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1502"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="671"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1682"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="261"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="330"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="911"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1762"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2794"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1352"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="4617"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="6310"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1091"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1522"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1662"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1222"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="761"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="140"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="701"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1022"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1552"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1472"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2233"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1402"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1402"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1131"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1803"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="631"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="751"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1512"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4246"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="8842"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4346"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="32236"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="35691"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3946"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1332"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5187"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1232"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3595"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="170"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2945"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3723"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1803"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3425"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2133"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3816"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1792"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4467"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3335"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2503"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="11247"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="7791"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="5588"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2221"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3686"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1552"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4717"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2794"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="661"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="912"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1472"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="160"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="881"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1182"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="922"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1061"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="751"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1091"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="120"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="922"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="902"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="120"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="721"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1192"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="611"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1142"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="460"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="831"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="551"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1252"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="110"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="751"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="621"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1212"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="481"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="911"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="541"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="601"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1262"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2754"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3064"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="511"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="110"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="330"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="801"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1632"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="762"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1752"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="932"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1271"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="821"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1612"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="371"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="300"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="901"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1642"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="3004"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1392"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="4846"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="6149"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1242"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1572"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1302"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1202"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="921"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="721"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1442"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1572"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1402"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2033"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1212"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1252"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1172"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2163"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="631"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="661"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1512"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4406"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="8903"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4376"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="30511"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="36229"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3935"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1322"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4036"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1813"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3285"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="150"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3135"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3806"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1382"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3405"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2253"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3876"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1842"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3956"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3245"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2584"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="11907"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="7831"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="5338"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2103"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3665"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1842"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4717"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2583"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="511"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1142"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1792"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="181"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="861"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="951"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="922"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1031"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="861"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1131"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="151"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="971"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="862"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="140"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="751"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="932"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="520"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1122"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="391"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="851"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="751"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1141"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="560"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="882"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1572"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="531"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="771"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="581"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="651"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1472"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="832"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="951"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="611"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="110"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="350"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="671"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1281"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="831"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1953"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="691"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1342"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="771"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1693"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="330"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="321"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1241"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1723"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2884"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="3165"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="4686"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="5987"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1001"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1432"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1402"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1572"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1022"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="110"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="591"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1132"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1722"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1402"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2153"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1682"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1262"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1001"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1873"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="681"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="531"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1833"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4386"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="9113"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4206"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="31005"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="36102"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4026"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1342"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3996"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1582"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3385"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="141"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3164"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3536"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1291"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3455"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2563"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4025"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1963"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3856"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3215"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2804"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="11466"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="9443"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="5227"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2083"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3775"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1972"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4827"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2594"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="441"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="971"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1523"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="160"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1773"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1032"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1021"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1182"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="821"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="981"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="130"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="771"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="992"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="120"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="701"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="911"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="601"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1212"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="490"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="701"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="561"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1082"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="110"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="821"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="881"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1432"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="511"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="891"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="531"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="591"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1272"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="731"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1021"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="500"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="101"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="340"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="610"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1342"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="731"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2163"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="911"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1092"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="721"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1833"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="310"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="301"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1042"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1442"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2904"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1182"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="4827"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="6219"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1121"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1493"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1442"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1312"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1162"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="721"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1171"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1502"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1782"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2123"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1140"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1151"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1261"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1963"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="651"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="661"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1523"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4736"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="8953"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4526"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="31475"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="35549"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3705"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1503"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4056"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1352"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3064"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="161"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3054"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3526"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1351"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3645"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2133"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3595"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2003"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3384"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4005"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2614"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="2393"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="7781"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="5248"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2384"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3715"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1312"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4547"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3015"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="450"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="931"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1672"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="170"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="872"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1052"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="931"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1012"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1091"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="941"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="120"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="631"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1031"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="120"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="711"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1021"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="611"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1251"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="451"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="982"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="701"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1052"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="110"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="741"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="781"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1232"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="451"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="921"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="521"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="581"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1072"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="731"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="951"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="540"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="470"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="701"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1281"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="691"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1792"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="681"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1352"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="591"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1883"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="320"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="331"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1001"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1543"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2674"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1162"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="4637"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="5889"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1502"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1469"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1282"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1222"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1002"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="711"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1392"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1472"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1322"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2143"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1282"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1642"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1062"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1892"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="721"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="550"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1482"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4867"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="8893"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4246"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="32166"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="36060"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3966"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1232"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3956"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2533"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3014"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="150"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3254"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4576"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1372"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3676"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2093"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4156"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1742"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3666"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3945"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2874"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="10695"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="7841"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="5588"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2253"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3775"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1542"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4556"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3645"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="461"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="912"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1732"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="160"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="901"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1011"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="912"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1041"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="761"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="901"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="120"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="922"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="921"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="120"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="721"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="941"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="601"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1112"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="490"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="831"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="922"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="981"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="541"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="661"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1281"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="470"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="892"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="490"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="551"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1312"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="932"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="911"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="571"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="351"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="781"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1262"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="822"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1772"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="771"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1312"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="591"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1642"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="261"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="330"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1051"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1632"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2454"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1482"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="4637"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="5838"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1172"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1492"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1502"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1282"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="911"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="130"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="581"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1071"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1412"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1593"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2133"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1382"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1241"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1141"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1843"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="971"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="511"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1623"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4507"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="8913"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4306"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="32476"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="34658"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4086"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1262"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5047"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1192"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3395"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="150"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3065"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3155"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1342"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3735"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2163"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3565"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1733"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3945"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3726"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2904"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="12137"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="7881"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="5859"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2083"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3786"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1732"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4757"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2964"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="440"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="901"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1672"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="180"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="892"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1051"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="861"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1052"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="871"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1142"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="130"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="701"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1352"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="120"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="781"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="972"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="671"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1121"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="511"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="811"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="101"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="661"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="941"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="931"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1152"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1121"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="501"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="811"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="520"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="601"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1152"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="711"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1059"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="501"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="361"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="811"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1262"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="721"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2033"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1062"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1182"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="591"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1572"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="270"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="321"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="961"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1502"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2694"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1462"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="4457"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="5569"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1132"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1331"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1322"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1211"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1071"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1051"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1262"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1372"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1402"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2103"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1232"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1141"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1172"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1953"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="651"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="551"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1542"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4827"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="10255"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4296"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="32046"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="36172"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4176"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1262"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3806"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2593"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2984"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="160"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3245"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3646"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1332"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3345"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2834"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3616"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2113"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3885"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3495"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2934"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="11336"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="7742"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="5798"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1883"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3635"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1422"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4717"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2774"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="831"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="921"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1402"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="161"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1272"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1121"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="952"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1011"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="842"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1021"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="191"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="751"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1022"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="120"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1051"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1002"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="480"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1131"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="541"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="881"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="101"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="741"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="951"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="121"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="701"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="651"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1211"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="461"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="901"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="571"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="600"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1372"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="731"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1051"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="490"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="360"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="802"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1191"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="701"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1793"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="721"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1342"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="701"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1663"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="270"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="321"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1021"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1943"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2414"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1512"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="4367"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="6159"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1222"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1422"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1493"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1341"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="771"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="120"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="741"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="892"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1512"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1402"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2163"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1198"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1652"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1052"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1863"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="701"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="581"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1562"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4897"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="8793"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4027"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="33538"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="35208"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3825"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1142"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4727"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1201"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4196"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="150"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2824"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3315"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1352"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4437"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2123"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4266"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1622"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3795"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3385"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2854"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="11417"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="7821"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="5518"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2023"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3665"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1522"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4457"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2854"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="511"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="791"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1623"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="160"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="962"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1432"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="892"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1041"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="862"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="841"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="120"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="741"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="991"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="120"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="721"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1392"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="511"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1132"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="470"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="862"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="731"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1042"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="110"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="541"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="661"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1102"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="480"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="912"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="521"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="701"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1272"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="741"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="931"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="600"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="101"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="320"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="731"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1322"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="761"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1792"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="751"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1252"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="931"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1632"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="340"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="391"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1061"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1593"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2404"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1502"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="4563"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="5859"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1142"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1572"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1272"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1262"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="841"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="631"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1111"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1933"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1392"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2193"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1142"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1102"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1151"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1833"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="661"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1062"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1632"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4856"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="9163"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4006"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="33086"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="36342"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3705"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1192"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4136"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1531"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3014"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="150"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3114"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3325"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1352"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3636"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2243"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4126"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1782"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4536"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3385"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2514"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="10685"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="7421"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="5538"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2414"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3855"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1442"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4676"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2854"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="490"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="951"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1663"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="180"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="891"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1032"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="961"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1583"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="911"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="921"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="131"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="711"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1022"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="120"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="731"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="962"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="500"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1622"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="491"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="811"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="681"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1032"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="751"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="791"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1182"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="461"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="811"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="491"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="661"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1261"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="761"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="981"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="560"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="121"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="350"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="671"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1372"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="841"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1953"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="911"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1242"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="581"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2193"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="321"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="320"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="932"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1582"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2723"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1582"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="4597"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="5949"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1642"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1442"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1322"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1221"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="931"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="110"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="711"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1172"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1522"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1893"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2093"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1281"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1242"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1062"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1863"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="751"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="651"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="2033"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4757"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="8813"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4576"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="31706"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="36412"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4036"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1402"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3836"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1402"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3475"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="150"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2845"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4486"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1332"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3773"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2383"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3505"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2123"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3766"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3355"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2584"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="11746"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="7871"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="5353"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2524"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3806"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1682"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4396"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2554"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="531"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="901"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2083"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="180"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="981"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1042"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1131"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1021"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1262"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="912"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="120"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="781"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="872"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="130"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="741"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="962"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="711"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1111"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="491"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1212"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="761"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1041"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="651"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="801"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1262"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="490"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="902"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="541"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="671"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1272"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="881"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1011"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="561"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="330"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="621"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1342"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="831"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1963"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="831"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1272"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="571"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1633"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="320"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="731"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1032"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1597"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2514"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1092"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="4877"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="5909"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1142"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1782"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1382"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1322"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="891"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="110"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="741"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1011"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1553"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1472"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2103"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1151"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1252"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1052"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2023"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="591"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="530"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1512"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="5218"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="8923"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4637"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="30557"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="35410"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3696"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1271"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4176"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1762"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3094"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="140"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4236"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3315"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1231"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3745"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2203"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4236"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1753"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3775"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3525"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2974"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="11236"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="7671"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="5027"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2363"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3746"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1452"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4447"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3155"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="500"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="921"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1532"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="200"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="881"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1021"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="981"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1211"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="832"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1011"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="571"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="721"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="841"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="120"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="701"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="992"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="610"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1131"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="471"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="821"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="101"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1101"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1112"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="230"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="530"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="661"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1352"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="531"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="791"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="551"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="611"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1342"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="729"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1011"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="571"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="110"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="361"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="661"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1282"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="831"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1853"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="741"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1302"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="571"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1682"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="331"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="330"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1402"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1603"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2474"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1112"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="4897"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="5698"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1212"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1472"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1472"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1803"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="811"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="110"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="681"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1001"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1603"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1462"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2233"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1723"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1262"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1151"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2013"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="610"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="661"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1633"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4576"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="8672"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4286"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="32598"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="35591"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3706"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1322"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4316"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1402"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2985"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="150"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4286"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3895"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1543"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3234"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2073"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4176"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1812"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3866"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3755"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2593"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="11096"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="7808"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="5669"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1893"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="4436"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1613"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4827"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2794"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="891"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="941"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1592"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="160"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="881"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="981"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1032"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1041"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="872"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1102"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="130"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="691"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="981"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="121"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="731"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="922"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="691"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1122"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="510"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="811"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="671"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1492"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="691"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="781"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1583"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="481"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="701"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="541"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="611"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1271"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="841"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1051"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="540"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="101"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="340"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="741"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1271"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="721"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1772"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="962"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1292"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="581"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1632"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="260"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="331"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="961"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1582"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2503"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1131"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="6840"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="5838"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1252"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1392"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1493"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1341"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1472"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="110"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="862"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1122"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1522"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1392"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2223"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1212"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1182"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1662"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2013"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="691"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="661"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1662"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="6109"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="8922"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4226"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="32286"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="36243"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3595"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1272"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4456"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1242"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3114"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="150"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3254"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5538"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1447"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3215"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2403"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4357"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1792"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4467"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3685"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="3095"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="5768"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="7731"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="14021"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1842"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3846"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1913"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4366"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3105"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="510"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1822"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1552"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="170"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="911"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="991"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="972"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1071"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="872"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1152"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="130"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="751"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1031"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="581"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="541"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="941"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="611"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1122"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="500"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="811"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="651"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="942"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="651"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="661"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1312"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="480"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="812"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="531"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="600"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1242"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="741"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1052"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="541"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="120"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="440"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="741"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1292"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="821"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1963"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="681"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1352"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="681"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1632"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="300"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="330"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1072"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1622"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2473"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1101"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="4717"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="5898"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1162"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1482"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1503"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1332"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1011"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="111"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1081"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1172"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1522"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1412"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2139"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1422"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1012"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1162"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1993"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="911"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1011"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1622"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4616"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="9074"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4947"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="31786"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="36790"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3725"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1222"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4296"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1312"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3055"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="160"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4507"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3285"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1582"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4046"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2173"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3614"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2163"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3254"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3425"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2534"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="12208"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="7721"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="4987"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2053"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3636"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1402"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4877"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2674"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="521"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="951"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1742"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="160"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="891"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1032"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="911"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1222"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="791"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="972"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="120"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="741"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1042"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="120"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="701"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="972"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="701"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1142"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="460"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="872"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="741"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1052"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="741"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="791"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1252"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="551"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="811"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="531"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="541"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1252"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="711"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1091"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="480"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="161"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="290"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="801"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1212"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="771"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1813"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="731"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1352"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="691"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1682"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="320"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="320"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="932"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1572"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2584"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1132"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="5037"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="5788"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1122"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1452"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1432"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1232"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="892"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="110"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="741"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1112"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1512"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1502"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2244"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1292"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1252"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1051"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2063"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="852"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="520"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="2165"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4697"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="8352"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4817"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="32934"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="35741"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3726"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1352"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4336"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1162"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3054"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="161"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3244"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3345"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1382"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5217"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2233"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3895"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1883"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="6049"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3405"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2534"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="2614"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="7712"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="5678"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1913"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3815"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1562"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4516"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2714"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="441"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="871"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1642"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="160"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="891"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1082"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1021"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1071"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="861"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1031"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="120"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="701"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1001"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="111"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="731"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="991"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="661"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1182"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="481"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="911"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="111"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="661"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="941"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="540"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="851"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1432"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="481"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="801"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="541"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="621"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1191"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="741"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="941"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="521"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="350"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="681"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1282"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="711"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1773"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="741"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1322"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="681"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1802"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="321"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="330"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1022"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1592"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2724"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1131"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="5007"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="5728"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1171"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1452"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1282"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1262"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1142"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="671"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1592"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1513"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1272"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2123"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1412"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1021"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1172"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2193"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="701"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="651"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1563"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4647"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="8332"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4176"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="32506"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="35832"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3685"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1242"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4526"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1232"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2994"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="140"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2754"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3345"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1462"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5357"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2364"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3475"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1733"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3996"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4106"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2573"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="11206"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="7771"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="5678"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1933"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3855"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1602"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4436"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2784"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="511"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="951"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2203"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="180"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="891"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1052"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="891"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1162"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="821"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1172"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="120"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="761"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="851"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="130"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="771"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="881"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="611"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1062"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="440"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="801"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="771"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1041"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="180"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="681"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="611"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1192"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="481"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="811"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="541"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="531"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1221"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="801"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="921"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="530"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="120"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="350"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="701"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1111"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="762"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1902"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="952"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1252"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="581"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1772"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="341"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="320"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1102"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1472"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2373"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1201"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="5178"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="5889"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1102"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1252"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1151"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1412"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="921"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="110"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="752"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1122"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="2113"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1422"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2033"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1382"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1072"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1111"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2203"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="801"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="661"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1662"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4757"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="8961"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4116"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="31656"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="36549"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3816"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1181"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4246"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1842"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3034"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="150"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3055"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3355"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1342"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3996"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2173"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3595"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1722"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4005"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3355"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2844"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="11637"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="7802"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="5257"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2013"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3686"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1472"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4596"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2764"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="450"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="922"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1392"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="180"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="921"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="971"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1022"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1071"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="851"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="891"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="321"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="721"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1062"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="130"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="691"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="971"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="611"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1252"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="481"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="831"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="751"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1031"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="161"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="531"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="861"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1102"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="481"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="901"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="531"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="571"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1332"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="741"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="921"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="601"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="390"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="691"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1272"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="691"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1882"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="721"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1251"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="811"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1602"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="301"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="320"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="891"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1422"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2534"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1192"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="5027"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="5828"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1392"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1482"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1272"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1292"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="852"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="110"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="591"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1212"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1612"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1502"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2764"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1402"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1322"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="951"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1963"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="641"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="521"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1683"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="4757"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="8643"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4166"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="32653"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="35401"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3865"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1212"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4847"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1232"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3075"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="150"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3335"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3305"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1342"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5327"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2254"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3585"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1732"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4066"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3354"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2885"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="11766"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="7791"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="5408"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2103"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3685"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1452"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4476"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2724"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="450"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="922"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1532"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="160"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="881"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1022"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="891"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1202"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="821"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="932"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="130"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="801"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1072"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="120"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="811"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="992"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="741"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1091"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="481"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="822"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="671"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1052"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="741"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1272"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1092"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="491"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="811"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="531"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="621"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1131"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="762"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1041"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="611"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="420"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="741"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1321"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="771"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1812"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="761"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1352"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="591"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1572"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="331"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="350"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1082"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1432"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2573"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1101"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="5118"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="5919"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1072"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1272"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1392"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1272"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="801"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="110"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="872"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1082"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1542"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1292"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2133"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1262"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1061"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1122"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2123"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="701"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="661"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1492"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="5328"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="10004"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4186"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="31435"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="36283"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4456"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1232"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3806"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1271"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3565"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="170"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2955"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3936"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1342"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3144"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2203"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5768"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1652"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3495"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3576"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2543"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="10435"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="7811"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="5438"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2033"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="3555"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1462"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="4437"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="2764"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="441"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="921"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1282"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="160"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="881"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="992"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1021"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1202"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="851"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="921"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="120"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="681"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1051"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="120"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="691"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="921"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="691"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1232"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="491"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="902"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="701"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1007"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="111"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="761"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1352"/>
-      </task>
-      <task name="Nothing to Commit">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="1172"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="491"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="811"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="541"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="581"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1272"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="741"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="951"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="571"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="100"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="410"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="751"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1202"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="681"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2023"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="691"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1362"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="761"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1693"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="260"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="321"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1101"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1492"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="2463"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="1141"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="4417"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="5879"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1202"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1502"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1342"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1302"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="891"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="151"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="711"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1042"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1580"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1322"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2093"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1332"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1252"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="1152"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2113"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="691"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="661"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="1682"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <result elapsed="5178"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="set sharing, pop up sync viewer">
-        <result elapsed="9445"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Repository action">
-        <result elapsed="4176"/>
-      </task>
-      <task name="Sync View Commit action">
-        <result elapsed="31505"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="35479"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="4466"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1302"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3825"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="1342"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3676"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="150"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3185"/>
-        </task>
-        <task name="Nothing to Update">
-          <result elapsed="0"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3275"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1422"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3956"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="2583"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="3785"/>
-        </task>
-        <task name="Sync View Commit action">
-          <result elapsed="1773"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Repository action">
-          <result elapsed="5868"/>
-        </task>
-        <task name="Sync View Update action">
-          <result elapsed="3706"/>
-        </task>
-      </group>
-    </group>
-    <group name="tag project">
-      <task name="CVS Tag action">
-        <result elapsed="2533"/>
-      </task>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="9404"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="7791"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Remote action">
-          <abort type="warning" message="Encountered error dialog with title: Error Replacing With Latest From Repository">
-          </abort>
-          <result elapsed="5728"/>
-        </task>
-      </group>
-    </group>
-  </case>
-</log>
diff --git a/tests/org.eclipse.team.tests.cvs.core/benchmark/teamui_benchmark.bat b/tests/org.eclipse.team.tests.cvs.core/benchmark/teamui_benchmark.bat
deleted file mode 100644
index a2c69b9..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/benchmark/teamui_benchmark.bat
+++ /dev/null
@@ -1,38 +0,0 @@
-@echo off
-rem Team UI benchmark script
-rem Expects the following plugins to be installed:
-rem   org.eclipse.core.tests.harness
-rem   org.eclipse.team.core
-rem   org.eclipse.team.cvs.core
-rem   org.eclipse.team.cvs.ui
-rem   org.eclipse.team.tests.core
-rem   org.eclipse.team.tests.cvs.core
-rem   org.eclipse.team.ui
-rem   org.junit
-
-set ROOT=D:\PerformanceTesting
-
-set ECLIPSE=%ROOT%\eclipse
-set REPOSITORY_PROPERTIES=%ROOT%\repository.properties
-set TEST=cvsui.benchmark.all
-set LOG=%ROOT%\%TEST%.xml
-set REPEAT=6
-set IGNOREFIRST=-ignorefirst
-
-set PLUGINS=%ECLIPSE%\plugins
-set WORKSPACE=%ECLIPSE%\workspace
-set JRE=%ROOT%\jre
-set JAVA=%JRE%\bin\java.exe
-set HARNESS=org.eclipse.team.tests.cvs.core.harness
-
-set VMARGS=-Declipse.cvs.properties=%REPOSITORY_PROPERTIES%
-set PROGARGS=-dev bin -application %HARNESS% -test %TEST% -log %LOG% -purge -repeat %REPEAT% %IGNOREFIRST%
-
-pushd %ECLIPSE%
-echo Purging the workspace: %WORKSPACE%
-del /S /F /Q %WORKSPACE% >NUL:
-@echo on
-@echo Running Team UI benchmark test
-%JAVA% -cp startup.jar %VMARGS% org.eclipse.core.launcher.UIMain %PROGARGS%
-@echo off
-popd
diff --git a/tests/org.eclipse.team.tests.cvs.core/benchmark/vcm1.0/2002_02_26.integration.all.xml b/tests/org.eclipse.team.tests.cvs.core/benchmark/vcm1.0/2002_02_26.integration.all.xml
deleted file mode 100644
index 922e0ef..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/benchmark/vcm1.0/2002_02_26.integration.all.xml
+++ /dev/null
@@ -1,10960 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<log timestamp="01/Mar/2002 19:54:44" sdkbuild="20020226">
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1873"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1873"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1802"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="1512"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1963"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1021"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1792"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="1012"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2083"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1081"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1612"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="631"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1162"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="701"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1592"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="381"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2694"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="550"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2253"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="351"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1962"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="661"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1530"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="281"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1041"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="561"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1092"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="350"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1121"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="591"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1632"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="471"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1452"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="591"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1161"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="291"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Stream action">
-        <result elapsed="611"/>
-      </task>
-      <task name="Nothing to Release">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="Synchronize with Stream action (share project)">
-        <result elapsed="841"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Stream action">
-        <result elapsed="691"/>
-      </task>
-      <task name="Sync View Release action">
-        <result elapsed="601"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="471"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="871"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="862"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="822"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="601"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1593"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="571"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1262"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="491"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1012"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1081"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="921"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="561"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="691"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="751"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1290"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="611"/>
-        </task>
-      </group>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="160"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="571"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="721"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="Synchronize with Stream action (share project)">
-        <result elapsed="1221"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Stream action">
-        <result elapsed="892"/>
-      </task>
-      <task name="Sync View Release action">
-        <result elapsed="2543"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="2133"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3726"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1161"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="4356"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="621"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1432"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="611"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3284"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="431"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2274"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1151"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2113"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="661"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1942"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="661"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1592"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="661"/>
-        </task>
-      </group>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="721"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="1162"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="1863"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1512"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1812"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1592"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="1422"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2063"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1072"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2103"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="901"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2042"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1042"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1483"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="520"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1182"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="771"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1442"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="390"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2173"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="531"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2443"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="341"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1983"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="551"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1251"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="291"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1041"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="541"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1122"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="371"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1162"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="600"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1502"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="481"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1402"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="501"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1067"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="281"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Stream action">
-        <result elapsed="711"/>
-      </task>
-      <task name="Nothing to Release">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="Synchronize with Stream action (share project)">
-        <result elapsed="822"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Stream action">
-        <result elapsed="711"/>
-      </task>
-      <task name="Sync View Release action">
-        <result elapsed="570"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="481"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="921"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="881"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1062"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="531"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1312"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="641"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1082"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="731"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="721"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1172"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1001"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="541"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="681"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="701"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="921"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="611"/>
-        </task>
-      </group>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="170"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="731"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="731"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="Synchronize with Stream action (share project)">
-        <result elapsed="1111"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Stream action">
-        <result elapsed="801"/>
-      </task>
-      <task name="Sync View Release action">
-        <result elapsed="2534"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="2203"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3785"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="952"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3706"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="630"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1352"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="621"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3134"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="401"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2043"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1152"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2173"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="631"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1623"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="821"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1422"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="701"/>
-        </task>
-      </group>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="791"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="981"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="2033"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1553"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1912"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1953"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="1482"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1683"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1041"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1893"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="931"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2273"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1022"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1553"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="540"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1011"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1032"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1483"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="410"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2734"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="581"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2073"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="371"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1792"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="541"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1432"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="300"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="962"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="681"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1202"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="330"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1111"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="531"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1593"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="500"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1202"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="510"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1231"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="291"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Stream action">
-        <result elapsed="570"/>
-      </task>
-      <task name="Nothing to Release">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="Synchronize with Stream action (share project)">
-        <result elapsed="861"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Stream action">
-        <result elapsed="661"/>
-      </task>
-      <task name="Sync View Release action">
-        <result elapsed="631"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="450"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1342"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="962"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="842"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="630"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1693"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="591"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1132"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="471"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="861"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1032"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="922"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="571"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="861"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="792"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="852"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="530"/>
-        </task>
-      </group>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="321"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="611"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="681"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="Synchronize with Stream action (share project)">
-        <result elapsed="1111"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Stream action">
-        <result elapsed="751"/>
-      </task>
-      <task name="Sync View Release action">
-        <result elapsed="2364"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="2114"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3495"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1101"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3545"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="601"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1462"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="621"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3205"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="410"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1983"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1191"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2504"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="621"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1703"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="811"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1432"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="621"/>
-        </task>
-      </group>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="651"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="1052"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="2113"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1422"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1793"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1643"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="1512"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1992"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1052"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2003"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="881"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2273"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1092"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1563"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="530"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1149"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="571"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1252"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="400"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2273"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="561"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1902"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="381"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1843"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="601"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1422"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="301"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1362"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="561"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1202"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="350"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1161"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="531"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1612"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="471"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1402"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="491"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1122"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="330"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Stream action">
-        <result elapsed="651"/>
-      </task>
-      <task name="Nothing to Release">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="Synchronize with Stream action (share project)">
-        <result elapsed="851"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Stream action">
-        <result elapsed="691"/>
-      </task>
-      <task name="Sync View Release action">
-        <result elapsed="538"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="430"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="922"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1011"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="891"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="531"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1442"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="531"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1161"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="481"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="982"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1061"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="821"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="561"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="651"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="801"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1001"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="591"/>
-        </task>
-      </group>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="190"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="671"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="701"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="Synchronize with Stream action (share project)">
-        <result elapsed="1151"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Stream action">
-        <result elapsed="801"/>
-      </task>
-      <task name="Sync View Release action">
-        <result elapsed="2414"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="2108"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3345"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1011"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3765"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="681"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1312"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="511"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2944"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="400"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2376"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1142"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2314"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="701"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1963"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="932"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1312"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="721"/>
-        </task>
-      </group>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="781"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="1141"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="1712"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1792"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1382"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1782"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="1472"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1953"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1011"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1753"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="1001"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2093"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1122"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1623"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="540"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1072"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="591"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1472"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="421"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2163"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="681"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2133"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="371"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1952"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="681"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1292"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="300"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1041"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="501"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1012"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="360"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1146"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="621"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1472"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="441"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1302"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="601"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1272"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="381"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Stream action">
-        <result elapsed="671"/>
-      </task>
-      <task name="Nothing to Release">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="Synchronize with Stream action (share project)">
-        <result elapsed="941"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Stream action">
-        <result elapsed="651"/>
-      </task>
-      <task name="Sync View Release action">
-        <result elapsed="601"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="440"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="912"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1021"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="771"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="831"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1613"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="600"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1492"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="451"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="812"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1021"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1001"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="581"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="691"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="751"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1032"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="631"/>
-        </task>
-      </group>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="350"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="631"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="641"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="Synchronize with Stream action (share project)">
-        <result elapsed="1272"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Stream action">
-        <result elapsed="921"/>
-      </task>
-      <task name="Sync View Release action">
-        <result elapsed="2564"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="2003"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="4084"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1031"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3505"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="661"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1342"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="591"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2974"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="441"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2193"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1232"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1978"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="601"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1863"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="671"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1412"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="661"/>
-        </task>
-      </group>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="791"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="1071"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="1843"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="Synchronize with Stream action (share project)">
-        <result elapsed="2854"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Stream action">
-        <result elapsed="1041"/>
-      </task>
-      <task name="Sync View Release action">
-        <result elapsed="12558"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="17485"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3875"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="801"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3696"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="611"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="4367"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="671"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3976"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="511"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3705"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1192"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3965"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="751"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3545"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1181"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3435"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="1191"/>
-        </task>
-      </group>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="2704"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="3094"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="4186"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1583"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1882"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1322"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="1472"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2123"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1031"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1752"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="932"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2003"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="972"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1422"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="531"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1172"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="651"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1422"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="381"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2263"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="561"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2113"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="341"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1823"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="671"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1342"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="291"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1352"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="550"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1071"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="331"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1142"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="540"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1282"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="450"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1191"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="521"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1252"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="300"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Stream action">
-        <result elapsed="691"/>
-      </task>
-      <task name="Nothing to Release">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="Synchronize with Stream action (share project)">
-        <result elapsed="951"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Stream action">
-        <result elapsed="591"/>
-      </task>
-      <task name="Sync View Release action">
-        <result elapsed="641"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="471"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1001"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="751"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="891"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="531"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1623"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="640"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1112"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="421"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="825"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1002"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1212"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="581"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="811"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="811"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="991"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="571"/>
-        </task>
-      </group>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="340"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="621"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="551"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="Synchronize with Stream action (share project)">
-        <result elapsed="1161"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Stream action">
-        <result elapsed="812"/>
-      </task>
-      <task name="Sync View Release action">
-        <result elapsed="2283"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="1993"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3315"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1131"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3355"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="570"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1572"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="571"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3154"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="441"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2173"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1092"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2153"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="581"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1972"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="872"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1285"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="661"/>
-        </task>
-      </group>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="741"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="951"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="1853"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="Synchronize with Stream action (share project)">
-        <result elapsed="3075"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Stream action">
-        <result elapsed="1101"/>
-      </task>
-      <task name="Sync View Release action">
-        <result elapsed="20199"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="16639"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3696"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="891"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3725"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="691"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="4316"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="673"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3926"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="470"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3635"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1222"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3905"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="701"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3585"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1073"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3365"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="1192"/>
-        </task>
-      </group>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="2734"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="3194"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="4036"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1552"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1863"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1953"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="1572"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1773"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1061"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1963"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="915"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2224"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1131"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1652"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="541"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1101"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="892"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1412"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="421"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1973"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="551"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2123"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="390"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1883"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="551"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1412"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="451"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="981"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="541"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1132"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="350"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1131"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="561"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1402"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="451"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1282"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="491"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1242"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="290"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Stream action">
-        <result elapsed="691"/>
-      </task>
-      <task name="Nothing to Release">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="Synchronize with Stream action (share project)">
-        <result elapsed="841"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Stream action">
-        <result elapsed="641"/>
-      </task>
-      <task name="Sync View Release action">
-        <result elapsed="601"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="471"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1041"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="912"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="751"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="551"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1623"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="531"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1182"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="471"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="921"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="992"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="941"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="521"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="832"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="711"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1042"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="581"/>
-        </task>
-      </group>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="310"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="601"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="611"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="Synchronize with Stream action (share project)">
-        <result elapsed="1122"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Stream action">
-        <result elapsed="911"/>
-      </task>
-      <task name="Sync View Release action">
-        <result elapsed="2584"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="1923"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="4446"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1011"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3615"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="591"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1301"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="611"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3234"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="421"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2454"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1121"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2223"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="671"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1843"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="631"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1542"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="641"/>
-        </task>
-      </group>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="761"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="1151"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="1922"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1703"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1832"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1602"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="1532"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1863"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1031"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1722"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="911"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2083"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1122"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1562"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="531"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1261"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="581"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1512"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="491"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2633"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="531"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2233"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="411"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2032"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="561"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1332"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="290"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1032"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="541"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1223"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="351"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1001"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="541"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1572"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="440"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1472"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="531"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="871"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="271"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Stream action">
-        <result elapsed="621"/>
-      </task>
-      <task name="Nothing to Release">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="Synchronize with Stream action (share project)">
-        <result elapsed="892"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Stream action">
-        <result elapsed="711"/>
-      </task>
-      <task name="Sync View Release action">
-        <result elapsed="590"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="421"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="981"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="911"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="701"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="571"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1722"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="601"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1232"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="490"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="751"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1001"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1012"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="560"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="627"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="831"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="982"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="581"/>
-        </task>
-      </group>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="161"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="671"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="801"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="Synchronize with Stream action (share project)">
-        <result elapsed="1111"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Stream action">
-        <result elapsed="901"/>
-      </task>
-      <task name="Sync View Release action">
-        <result elapsed="2474"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="2063"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="4036"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1072"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3435"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="571"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1241"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="641"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2804"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="440"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2383"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1282"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2464"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="661"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2213"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="852"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1392"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="661"/>
-        </task>
-      </group>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="861"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="1001"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="1873"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="Synchronize with Stream action (share project)">
-        <result elapsed="2925"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Stream action">
-        <result elapsed="981"/>
-      </task>
-      <task name="Sync View Release action">
-        <result elapsed="12949"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="17124"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3755"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1012"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3425"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="671"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="4036"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="591"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3936"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="491"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3695"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1182"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="4036"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="731"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3575"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1102"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3395"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="1051"/>
-        </task>
-      </group>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="2714"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="2974"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="4186"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1492"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1923"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1592"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="1432"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1953"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1031"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1742"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="901"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2083"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1142"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1545"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="500"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1051"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="511"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1452"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="411"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2304"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="580"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2163"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="391"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1603"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="430"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1272"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="280"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1052"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="581"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1282"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="330"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1242"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="551"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1562"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="481"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1462"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="501"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1095"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="270"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Stream action">
-        <result elapsed="520"/>
-      </task>
-      <task name="Nothing to Release">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="Synchronize with Stream action (share project)">
-        <result elapsed="902"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Stream action">
-        <result elapsed="701"/>
-      </task>
-      <task name="Sync View Release action">
-        <result elapsed="561"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="441"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1062"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="871"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="761"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="580"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1553"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="530"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1172"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="571"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="928"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1011"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="821"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="561"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="782"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="721"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1061"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="611"/>
-        </task>
-      </group>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="440"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="531"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="681"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="Synchronize with Stream action (share project)">
-        <result elapsed="1221"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Stream action">
-        <result elapsed="1042"/>
-      </task>
-      <task name="Sync View Release action">
-        <result elapsed="1843"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="1963"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3935"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="982"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3485"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="621"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1382"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="550"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2844"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="400"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2093"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1172"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2073"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="651"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1812"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="621"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1482"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="611"/>
-        </task>
-      </group>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="641"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="1232"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="1432"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="Synchronize with Stream action (share project)">
-        <result elapsed="2334"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Stream action">
-        <result elapsed="1081"/>
-      </task>
-      <task name="Sync View Release action">
-        <result elapsed="8315"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="15482"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="4016"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1001"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3435"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="651"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3695"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="591"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3705"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="501"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3736"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1202"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3885"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="711"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3556"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1071"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3201"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="1032"/>
-        </task>
-      </group>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="2875"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="3095"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="3765"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1392"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1282"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1782"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="1372"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2184"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="991"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1853"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="1001"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2233"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1012"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1562"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="501"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1412"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="580"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1522"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="381"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2043"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="581"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2263"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="370"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1913"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="410"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1422"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="310"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1043"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="531"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1021"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="341"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1132"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="671"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1442"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="471"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1352"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="511"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1192"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="270"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Stream action">
-        <result elapsed="551"/>
-      </task>
-      <task name="Nothing to Release">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="Synchronize with Stream action (share project)">
-        <result elapsed="821"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Stream action">
-        <result elapsed="571"/>
-      </task>
-      <task name="Sync View Release action">
-        <result elapsed="851"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="431"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="901"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="871"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1312"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="531"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1753"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="540"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1162"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="491"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1201"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1002"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="921"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="551"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="641"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="741"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1112"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="500"/>
-        </task>
-      </group>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="201"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="670"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="580"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="Synchronize with Stream action (share project)">
-        <result elapsed="1112"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Stream action">
-        <result elapsed="801"/>
-      </task>
-      <task name="Sync View Release action">
-        <result elapsed="1723"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="2051"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3665"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1001"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3195"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="731"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1262"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="521"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2804"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="401"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2403"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1152"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2384"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="621"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1873"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="661"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1552"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="581"/>
-        </task>
-      </group>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="671"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="1131"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="1542"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="Synchronize with Stream action (share project)">
-        <result elapsed="3364"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Stream action">
-        <result elapsed="1262"/>
-      </task>
-      <task name="Sync View Release action">
-        <result elapsed="17385"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="16744"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3615"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1042"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3274"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="691"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3945"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="852"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3765"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="701"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3807"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1211"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3776"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="681"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3345"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1062"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3435"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="881"/>
-        </task>
-      </group>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="2611"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="3295"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="3606"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1633"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1141"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1812"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="1462"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2063"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1031"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1933"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="912"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2053"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1152"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1492"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="521"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1162"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="581"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1512"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="411"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2784"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="600"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2093"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="370"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1793"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="551"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1392"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="280"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1082"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="520"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1392"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="340"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1132"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="511"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1402"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="441"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1382"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="501"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1142"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="290"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="Synchronize with Stream action (share project)">
-        <result elapsed="1131"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Stream action">
-        <result elapsed="821"/>
-      </task>
-      <task name="Sync View Release action">
-        <result elapsed="2694"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="1983"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3525"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="931"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3526"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="560"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1682"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="631"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2884"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="400"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2032"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1182"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2154"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="691"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1993"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="841"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1643"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="551"/>
-        </task>
-      </group>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="741"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="981"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="1232"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="Synchronize with Stream action (share project)">
-        <result elapsed="2494"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Stream action">
-        <result elapsed="1152"/>
-      </task>
-      <task name="Sync View Release action">
-        <result elapsed="8101"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="19878"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3335"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1001"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3545"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="881"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="4006"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="701"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3625"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="491"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3756"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1231"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3946"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="671"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3395"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="971"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3315"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="931"/>
-        </task>
-      </group>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="2784"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="2954"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="3675"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1532"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1762"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1692"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="1382"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1893"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1031"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2020"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="891"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2153"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1042"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1462"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="521"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1071"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1072"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1456"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="380"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2043"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="481"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2103"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="361"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1892"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="501"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1152"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="291"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="991"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="581"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1332"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="340"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="912"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="590"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1492"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="451"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1452"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="571"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1132"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="280"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Stream action">
-        <result elapsed="802"/>
-      </task>
-      <task name="Nothing to Release">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="Synchronize with Stream action (share project)">
-        <result elapsed="821"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Stream action">
-        <result elapsed="711"/>
-      </task>
-      <task name="Sync View Release action">
-        <result elapsed="561"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="451"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1012"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="721"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="791"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="591"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1422"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="531"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="971"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="421"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="851"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1002"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1041"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="531"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="752"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="741"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1022"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="521"/>
-        </task>
-      </group>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="321"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="811"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="521"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="Synchronize with Stream action (share project)">
-        <result elapsed="1131"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Stream action">
-        <result elapsed="811"/>
-      </task>
-      <task name="Sync View Release action">
-        <result elapsed="1843"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="1982"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3962"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="951"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3485"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="560"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1362"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="561"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2965"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="480"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2264"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1051"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2293"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="611"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1833"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="651"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1392"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="561"/>
-        </task>
-      </group>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="741"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="1172"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="1432"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="Synchronize with Stream action (share project)">
-        <result elapsed="2573"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Stream action">
-        <result elapsed="1152"/>
-      </task>
-      <task name="Sync View Release action">
-        <result elapsed="8402"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="17324"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="4537"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="961"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3655"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="601"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="4076"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="651"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3916"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="470"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3535"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1212"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3766"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="630"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3515"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1102"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3214"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="742"/>
-        </task>
-      </group>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="2673"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="3265"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="3725"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1452"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1292"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1692"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="1452"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1983"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1032"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1642"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="881"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2093"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1222"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1482"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="491"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1122"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="531"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1222"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="380"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2223"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="561"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2053"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="340"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1783"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="560"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1277"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="290"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1252"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="671"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1151"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="351"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1112"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="541"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1792"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="471"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1322"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="511"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1152"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="290"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Stream action">
-        <result elapsed="701"/>
-      </task>
-      <task name="Nothing to Release">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="Synchronize with Stream action (share project)">
-        <result elapsed="911"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Stream action">
-        <result elapsed="651"/>
-      </task>
-      <task name="Sync View Release action">
-        <result elapsed="621"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="440"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="841"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="741"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="911"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="501"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1752"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="541"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="982"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="410"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1012"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="961"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="882"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="510"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="641"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="691"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="921"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="551"/>
-        </task>
-      </group>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="181"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="520"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="741"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="Synchronize with Stream action (share project)">
-        <result elapsed="1111"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Stream action">
-        <result elapsed="812"/>
-      </task>
-      <task name="Sync View Release action">
-        <result elapsed="1582"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="2023"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3946"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1001"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3315"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="590"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1292"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="541"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2975"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="420"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2303"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1162"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2143"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="600"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1853"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="731"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1492"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="591"/>
-        </task>
-      </group>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="661"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="1101"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="1372"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="Synchronize with Stream action (share project)">
-        <result elapsed="2704"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Stream action">
-        <result elapsed="1031"/>
-      </task>
-      <task name="Sync View Release action">
-        <result elapsed="17055"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="17114"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3736"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="941"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3655"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="641"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="4176"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="681"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3905"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="451"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3605"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1322"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3825"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="661"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3385"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1072"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3415"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="761"/>
-        </task>
-      </group>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="2704"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="3245"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="3605"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1572"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1322"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1762"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="1372"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1553"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1001"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1703"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="911"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2133"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1151"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1412"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="490"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="951"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="571"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1272"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="411"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2313"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="561"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1863"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="491"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1703"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="480"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1342"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="280"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="972"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="701"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1122"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="330"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1092"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="521"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1512"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="461"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1312"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="501"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="981"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="291"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Stream action">
-        <result elapsed="701"/>
-      </task>
-      <task name="Nothing to Release">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="Synchronize with Stream action (share project)">
-        <result elapsed="841"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Stream action">
-        <result elapsed="591"/>
-      </task>
-      <task name="Sync View Release action">
-        <result elapsed="674"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="441"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="891"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="901"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="862"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="520"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1713"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="541"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1032"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="390"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="811"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1162"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="841"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="551"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="671"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="791"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="851"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="551"/>
-        </task>
-      </group>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="180"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="741"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="591"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="Synchronize with Stream action (share project)">
-        <result elapsed="1171"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Stream action">
-        <result elapsed="751"/>
-      </task>
-      <task name="Sync View Release action">
-        <result elapsed="1803"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="1943"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3735"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1001"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3214"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="601"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1342"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="771"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2714"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="431"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2043"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1141"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2233"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="631"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1792"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="641"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1412"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="561"/>
-        </task>
-      </group>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="1132"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="1021"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="1963"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="Synchronize with Stream action (share project)">
-        <result elapsed="2564"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Stream action">
-        <result elapsed="1101"/>
-      </task>
-      <task name="Sync View Release action">
-        <result elapsed="12568"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="15813"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3936"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="961"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3635"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="631"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="4204"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="671"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="4156"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="641"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3665"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1212"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3916"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="711"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3401"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1212"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3295"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="931"/>
-        </task>
-      </group>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="2694"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="2875"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="3675"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1842"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1082"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1732"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="1442"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1983"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1042"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1722"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="921"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2083"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1022"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1332"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="841"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1062"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="510"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1262"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="410"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2123"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="581"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1942"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="341"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1903"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="571"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1473"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="280"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="881"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="631"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1382"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="321"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1172"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="511"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1492"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="471"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1342"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="501"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1212"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="280"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Stream action">
-        <result elapsed="631"/>
-      </task>
-      <task name="Nothing to Release">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="Synchronize with Stream action (share project)">
-        <result elapsed="842"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Stream action">
-        <result elapsed="721"/>
-      </task>
-      <task name="Sync View Release action">
-        <result elapsed="570"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="401"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="961"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="892"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="882"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="550"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1643"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="560"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="982"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="570"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="891"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1041"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="922"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="570"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="621"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="550"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1122"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="511"/>
-        </task>
-      </group>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="391"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="651"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="561"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="Synchronize with Stream action (share project)">
-        <result elapsed="1091"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Stream action">
-        <result elapsed="811"/>
-      </task>
-      <task name="Sync View Release action">
-        <result elapsed="1743"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="1962"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3135"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="971"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3618"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="560"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1172"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="731"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2734"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="451"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1863"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1191"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1922"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="591"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1852"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="802"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1372"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="601"/>
-        </task>
-      </group>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="751"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="1051"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="1562"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="Synchronize with Stream action (share project)">
-        <result elapsed="2444"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Stream action">
-        <result elapsed="1072"/>
-      </task>
-      <task name="Sync View Release action">
-        <result elapsed="16163"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="17325"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3615"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1032"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3485"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="641"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="4216"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="671"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3896"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="460"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3675"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1252"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3605"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="661"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3605"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1062"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3305"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="1032"/>
-        </task>
-      </group>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="2653"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="3095"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="3705"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1702"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1342"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1852"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="1392"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1642"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1022"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1853"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="901"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1912"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1142"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1312"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="491"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1122"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="610"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1512"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="401"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2424"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="561"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2103"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="351"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1883"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="601"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1341"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="271"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1021"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="551"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1562"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="351"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1151"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="581"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1402"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="441"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1432"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="651"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1112"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="300"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Stream action">
-        <result elapsed="791"/>
-      </task>
-      <task name="Nothing to Release">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="Synchronize with Stream action (share project)">
-        <result elapsed="811"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Stream action">
-        <result elapsed="681"/>
-      </task>
-      <task name="Sync View Release action">
-        <result elapsed="531"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="391"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="881"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="902"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="731"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="561"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1332"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="541"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1272"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="510"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="981"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1222"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="781"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="541"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="801"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="671"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1052"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="520"/>
-        </task>
-      </group>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="431"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="611"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="731"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="Synchronize with Stream action (share project)">
-        <result elapsed="1121"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Stream action">
-        <result elapsed="832"/>
-      </task>
-      <task name="Sync View Release action">
-        <result elapsed="1602"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="1923"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3876"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="921"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3455"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="581"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1372"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="511"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2904"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="431"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2153"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1122"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2083"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="571"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2053"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="781"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1362"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="951"/>
-        </task>
-      </group>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="761"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="1041"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="1712"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="Synchronize with Stream action (share project)">
-        <result elapsed="2614"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Stream action">
-        <result elapsed="1071"/>
-      </task>
-      <task name="Sync View Release action">
-        <result elapsed="8005"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="15863"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3826"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="951"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3895"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="651"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3966"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="771"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3665"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="451"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3575"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1122"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3826"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="621"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3475"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1112"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3365"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="851"/>
-        </task>
-      </group>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="2714"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="2984"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="3835"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1512"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1692"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1482"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="1422"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1822"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1012"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2239"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="891"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1983"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1101"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1402"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="511"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1171"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="591"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1322"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="390"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2273"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="631"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2243"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="340"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1863"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="580"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1402"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="300"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1152"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="511"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1202"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="340"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1021"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="561"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1412"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="471"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1442"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="571"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1151"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="281"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Stream action">
-        <result elapsed="701"/>
-      </task>
-      <task name="Nothing to Release">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="Synchronize with Stream action (share project)">
-        <result elapsed="871"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Stream action">
-        <result elapsed="661"/>
-      </task>
-      <task name="Sync View Release action">
-        <result elapsed="701"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="421"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="931"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="871"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="911"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="491"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1442"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="561"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1412"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="551"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="791"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="982"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="751"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="651"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="751"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="701"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="941"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="541"/>
-        </task>
-      </group>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="290"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="501"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="570"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="Synchronize with Stream action (share project)">
-        <result elapsed="1222"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Stream action">
-        <result elapsed="811"/>
-      </task>
-      <task name="Sync View Release action">
-        <result elapsed="1963"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="1912"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="4086"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="981"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3535"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="561"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1382"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="551"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2984"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="431"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2363"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1152"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2253"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="709"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2033"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="621"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1322"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="570"/>
-        </task>
-      </group>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="671"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="1352"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="1392"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="Synchronize with Stream action (share project)">
-        <result elapsed="2274"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Stream action">
-        <result elapsed="1071"/>
-      </task>
-      <task name="Sync View Release action">
-        <result elapsed="8182"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="16790"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3665"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="912"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3525"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="822"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="4045"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="621"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="4086"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="511"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3876"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1222"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3805"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="651"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3615"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1072"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3404"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="782"/>
-        </task>
-      </group>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="2574"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="3175"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="4056"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1463"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1372"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1732"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="1483"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2093"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1031"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2173"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="892"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2213"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1182"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1563"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="490"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1282"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="551"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1242"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="401"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2764"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="581"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1962"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="491"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1883"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="600"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1232"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="280"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="931"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="551"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1222"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="320"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1262"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="571"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1462"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="481"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1362"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="495"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1142"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="270"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Stream action">
-        <result elapsed="711"/>
-      </task>
-      <task name="Nothing to Release">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="Synchronize with Stream action (share project)">
-        <result elapsed="871"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Stream action">
-        <result elapsed="721"/>
-      </task>
-      <task name="Sync View Release action">
-        <result elapsed="561"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="621"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="962"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="891"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="951"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="521"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1673"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="540"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1292"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="381"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="781"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="951"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1362"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="511"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="681"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="691"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1142"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="510"/>
-        </task>
-      </group>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="271"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="480"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="852"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="Synchronize with Stream action (share project)">
-        <result elapsed="1051"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Stream action">
-        <result elapsed="801"/>
-      </task>
-      <task name="Sync View Release action">
-        <result elapsed="1733"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="2093"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="4356"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="982"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3425"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="591"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1272"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="540"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3164"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="441"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2093"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1052"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2243"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="601"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1612"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="741"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1342"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="561"/>
-        </task>
-      </group>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="721"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="1022"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="1562"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="Synchronize with Stream action (share project)">
-        <result elapsed="2283"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Stream action">
-        <result elapsed="1092"/>
-      </task>
-      <task name="Sync View Release action">
-        <result elapsed="8455"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="16544"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3665"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="932"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3575"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="651"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3986"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="631"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3875"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="451"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3976"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1202"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="4106"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="641"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3636"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1091"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3625"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="821"/>
-        </task>
-      </group>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="3255"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="3144"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="3515"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1872"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1182"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1752"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="1442"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1901"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="992"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1853"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="901"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2003"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1031"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1412"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="631"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1052"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="611"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1302"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="400"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1993"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="571"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2183"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="370"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1602"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="551"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1312"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="270"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="981"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="561"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1092"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="310"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1132"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="531"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1662"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="451"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1332"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="490"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1121"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="261"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Stream action">
-        <result elapsed="661"/>
-      </task>
-      <task name="Nothing to Release">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="Synchronize with Stream action (share project)">
-        <result elapsed="811"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Stream action">
-        <result elapsed="681"/>
-      </task>
-      <task name="Sync View Release action">
-        <result elapsed="591"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="390"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="901"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1148"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="971"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="521"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1532"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="551"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1182"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="430"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="731"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1181"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1122"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="530"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="951"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="671"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="851"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="501"/>
-        </task>
-      </group>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="230"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="691"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="511"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="Synchronize with Stream action (share project)">
-        <result elapsed="1091"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Stream action">
-        <result elapsed="871"/>
-      </task>
-      <task name="Sync View Release action">
-        <result elapsed="1930"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="1883"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3515"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="872"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3195"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="721"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1572"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="521"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3275"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="390"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2284"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1051"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2134"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="620"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2013"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="801"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1923"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="571"/>
-        </task>
-      </group>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="791"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="1042"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="1342"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="Synchronize with Stream action (share project)">
-        <result elapsed="3215"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Stream action">
-        <result elapsed="1031"/>
-      </task>
-      <task name="Sync View Release action">
-        <result elapsed="17966"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="17415"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3725"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="972"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3716"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="620"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3995"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="651"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3946"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="481"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3706"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1231"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="4186"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="661"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3625"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1082"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3255"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="771"/>
-        </task>
-      </group>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="2414"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="2914"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="4176"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1672"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1242"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1592"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="1562"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2013"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1042"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1852"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="902"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2053"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1002"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1362"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="511"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1102"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1071"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1321"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="411"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2744"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="570"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2153"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="330"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1833"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="541"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1452"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="351"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="921"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="571"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1282"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="340"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1001"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="511"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1302"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="451"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1192"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="511"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1212"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="270"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Stream action">
-        <result elapsed="661"/>
-      </task>
-      <task name="Nothing to Release">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="Synchronize with Stream action (share project)">
-        <result elapsed="832"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Stream action">
-        <result elapsed="611"/>
-      </task>
-      <task name="Sync View Release action">
-        <result elapsed="711"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="401"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="981"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="887"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="992"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="531"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1652"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="681"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1101"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="411"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="841"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1513"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="952"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="511"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="641"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="781"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="861"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="561"/>
-        </task>
-      </group>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="290"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="491"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="571"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="Synchronize with Stream action (share project)">
-        <result elapsed="1091"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Stream action">
-        <result elapsed="741"/>
-      </task>
-      <task name="Sync View Release action">
-        <result elapsed="1883"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="1893"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3635"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="961"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3395"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="571"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1142"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="561"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3115"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="450"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1983"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1152"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1983"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="571"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2083"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="812"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1272"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="551"/>
-        </task>
-      </group>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="861"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="972"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="1442"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="Synchronize with Stream action (share project)">
-        <result elapsed="2484"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Stream action">
-        <result elapsed="1152"/>
-      </task>
-      <task name="Sync View Release action">
-        <result elapsed="8021"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="16192"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3595"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1031"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3656"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="651"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3975"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="641"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="4376"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="471"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3606"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1191"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3945"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="661"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3646"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="961"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3295"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="791"/>
-        </task>
-      </group>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="2674"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="2866"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="3445"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1502"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1292"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1883"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="1382"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1823"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1061"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1662"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="841"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2053"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1232"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1431"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="481"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="972"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="460"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1722"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="421"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2103"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="561"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2203"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="351"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2003"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="421"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1442"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="281"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="961"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="561"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1002"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="330"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1142"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="591"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1462"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="451"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1322"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="501"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1343"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="270"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Stream action">
-        <result elapsed="530"/>
-      </task>
-      <task name="Nothing to Release">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="Synchronize with Stream action (share project)">
-        <result elapsed="992"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Stream action">
-        <result elapsed="621"/>
-      </task>
-      <task name="Sync View Release action">
-        <result elapsed="741"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="401"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1062"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="761"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="852"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="500"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2023"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="561"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1582"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="421"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="801"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1021"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="871"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="702"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="761"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="681"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1041"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="581"/>
-        </task>
-      </group>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="200"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="811"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="762"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="Synchronize with Stream action (share project)">
-        <result elapsed="1152"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Stream action">
-        <result elapsed="811"/>
-      </task>
-      <task name="Sync View Release action">
-        <result elapsed="1703"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="2404"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="4026"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="971"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3655"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="581"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1568"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="551"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2754"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="401"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2313"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1152"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1863"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="621"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2093"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="631"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1392"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="570"/>
-        </task>
-      </group>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="681"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="1302"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="1652"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="Synchronize with Stream action (share project)">
-        <result elapsed="2503"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Stream action">
-        <result elapsed="1172"/>
-      </task>
-      <task name="Sync View Release action">
-        <result elapsed="8103"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="16524"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3635"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="942"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3875"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="671"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="4186"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="641"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3675"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="471"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3615"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1122"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3886"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="661"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3375"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="961"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3716"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="791"/>
-        </task>
-      </group>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="2844"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="3314"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="4056"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1683"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1782"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1862"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="1352"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1870"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1032"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2604"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="881"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2134"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1412"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1752"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="501"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1031"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="621"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1342"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="401"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2073"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="580"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1983"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="330"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1813"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="410"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1272"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="300"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1061"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="541"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1122"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="310"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1151"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="581"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1522"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="471"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1262"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="500"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1211"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="431"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Stream action">
-        <result elapsed="801"/>
-      </task>
-      <task name="Nothing to Release">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="Synchronize with Stream action (share project)">
-        <result elapsed="881"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Stream action">
-        <result elapsed="621"/>
-      </task>
-      <task name="Sync View Release action">
-        <result elapsed="561"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="410"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1101"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="942"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="872"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="490"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1172"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="581"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1632"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="431"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="841"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="972"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="881"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="531"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="781"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="691"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1012"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="520"/>
-        </task>
-      </group>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="331"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="610"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="581"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="Synchronize with Stream action (share project)">
-        <result elapsed="1151"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Stream action">
-        <result elapsed="811"/>
-      </task>
-      <task name="Sync View Release action">
-        <result elapsed="1878"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="1962"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3565"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="991"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3175"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="561"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1592"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="561"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2854"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="400"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2234"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1151"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2313"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="711"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1983"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="811"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1382"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="571"/>
-        </task>
-      </group>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="721"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="1242"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="1612"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="Synchronize with Stream action (share project)">
-        <result elapsed="2764"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Stream action">
-        <result elapsed="1032"/>
-      </task>
-      <task name="Sync View Release action">
-        <result elapsed="8262"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="17798"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3726"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="911"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3556"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="671"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="4086"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="711"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3826"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="451"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3605"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1202"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3816"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="621"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3485"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1051"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3385"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="881"/>
-        </task>
-      </group>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="2724"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="3205"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="3565"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1723"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1252"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1702"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="1463"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2083"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1031"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1682"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="882"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2123"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1132"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1482"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="511"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1803"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="701"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1392"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="421"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2123"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="550"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2018"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="361"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1833"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="601"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1402"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="271"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="881"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="561"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1252"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="331"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1092"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="530"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1522"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="470"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1672"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="511"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1132"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="280"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Stream action">
-        <result elapsed="801"/>
-      </task>
-      <task name="Nothing to Release">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="Synchronize with Stream action (share project)">
-        <result elapsed="871"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Stream action">
-        <result elapsed="721"/>
-      </task>
-      <task name="Sync View Release action">
-        <result elapsed="571"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="431"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="891"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="942"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1192"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="531"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1102"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="510"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1152"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="461"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="851"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="991"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="989"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="550"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="631"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="721"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="961"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="521"/>
-        </task>
-      </group>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="281"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="531"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="671"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="Synchronize with Stream action (share project)">
-        <result elapsed="1232"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Stream action">
-        <result elapsed="721"/>
-      </task>
-      <task name="Sync View Release action">
-        <result elapsed="1873"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="1903"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3545"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="961"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3365"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="560"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1152"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="651"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3405"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="400"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2133"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1152"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2193"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="591"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1853"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="811"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1493"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="570"/>
-        </task>
-      </group>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="777"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="1102"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="1442"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync100">
-    <group name="synchronize 100 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1623"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1251"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1872"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="1332"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2384"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1041"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1783"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="941"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 100 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2163"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="941"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1392"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="501"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync10">
-    <group name="synchronize 10 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1142"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="661"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1622"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="391"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2143"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="590"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2353"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="371"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 10 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1672"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="431"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1422"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="281"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync1">
-    <group name="synchronize 1 added file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1001"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="531"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1322"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="321"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 modified file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1082"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="510"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1402"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="470"/>
-        </task>
-      </group>
-    </group>
-    <group name="synchronize 1 removed file(s)">
-      <group name="as outgoing changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1392"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="601"/>
-        </task>
-      </group>
-      <group name="as incoming changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1132"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="280"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.SyncTests" name="testSync0">
-    <group name="test sync with no changes">
-      <task name="Synchronize with Stream action">
-        <result elapsed="691"/>
-      </task>
-      <task name="Nothing to Release">
-        <result elapsed="0"/>
-      </task>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.WorkflowTests" name="testTinyWorkflow">
-    <group name="test project sharing">
-      <task name="Synchronize with Stream action (share project)">
-        <result elapsed="801"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Stream action">
-        <result elapsed="871"/>
-      </task>
-      <task name="Sync View Release action">
-        <result elapsed="701"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="381"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="971"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="851"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="761"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="571"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1878"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="641"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1382"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="411"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="962"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="991"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="951"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="531"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="661"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="711"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="952"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="490"/>
-        </task>
-      </group>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="361"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="540"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="631"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.WorkflowTests" name="testSmallWorkflow">
-    <group name="test project sharing">
-      <task name="Synchronize with Stream action (share project)">
-        <result elapsed="1142"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Stream action">
-        <result elapsed="821"/>
-      </task>
-      <task name="Sync View Release action">
-        <result elapsed="2383"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="1862"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3505"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1142"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3375"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="551"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1632"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="601"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3155"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="460"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2404"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1081"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="2123"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="591"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1909"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="671"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="1653"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="571"/>
-        </task>
-      </group>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="721"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="1142"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="1522"/>
-        </task>
-      </group>
-    </group>
-  </case>
-  <case class="org.eclipse.vcm.tests.ui.benchmark.WorkflowTests" name="testBigWorkflow">
-    <group name="test project sharing">
-      <task name="Synchronize with Stream action (share project)">
-        <result elapsed="2965"/>
-      </task>
-    </group>
-    <group name="test initial project commit">
-      <task name="Synchronize with Stream action">
-        <result elapsed="1041"/>
-      </task>
-      <task name="Sync View Release action">
-        <result elapsed="16794"/>
-      </task>
-    </group>
-    <group name="test initial project checkout">
-      <task name="Repository View Checkout action">
-        <result elapsed="16263"/>
-      </task>
-    </group>
-    <group name="test incoming and outgoing change scenarios">
-      <group name="adding a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3595"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1091"/>
-        </task>
-      </group>
-      <group name="catching up to a new component - localized additions and some changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3715"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="631"/>
-        </task>
-      </group>
-      <group name="fixing a bug - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="4400"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="671"/>
-        </task>
-      </group>
-      <group name="catching up to a bug fix - localized changes">
-        <task name="Synchronize with Stream action">
-          <result elapsed="4196"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="501"/>
-        </task>
-      </group>
-      <group name="moving a package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3715"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1252"/>
-        </task>
-      </group>
-      <group name="catching up to a moved package - scattered changes, files moved">
-        <task name="Synchronize with Stream action">
-          <result elapsed="4186"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="802"/>
-        </task>
-      </group>
-      <group name="big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3545"/>
-        </task>
-        <task name="Sync View Release action">
-          <result elapsed="1091"/>
-        </task>
-      </group>
-      <group name="catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions">
-        <task name="Synchronize with Stream action">
-          <result elapsed="3335"/>
-        </task>
-        <task name="Sync View Catchup action">
-          <result elapsed="961"/>
-        </task>
-      </group>
-    </group>
-    <group name="test replace with remote contents scenarios">
-      <group name="no local dirty files, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="2754"/>
-        </task>
-      </group>
-      <group name="abandoning some local work, no remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="3064"/>
-        </task>
-      </group>
-      <group name="no local dirty files, many remote changes">
-        <task name="Replace with Team Stream action">
-          <result elapsed="3645"/>
-        </task>
-      </group>
-    </group>
-  </case>
-</log>
diff --git a/tests/org.eclipse.team.tests.cvs.core/benchmark/vcmui_benchmark.bat b/tests/org.eclipse.team.tests.cvs.core/benchmark/vcmui_benchmark.bat
deleted file mode 100644
index c92dab1..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/benchmark/vcmui_benchmark.bat
+++ /dev/null
@@ -1,43 +0,0 @@
-@echo off
-rem VCM UI benchmark script
-rem Expects the following plugins to be installed:
-rem   org.eclipse.core.tests.harness
-rem   org.eclipse.team.core
-rem   org.eclipse.team.cvs.core
-rem   org.eclipse.team.cvs.ui
-rem   org.eclipse.team.tests.cvs.core
-rem   org.eclipse.team.ui
-rem   org.eclipse.vcm.core
-rem   org.eclipse.vcm.core.cvs
-rem   org.eclipse.vcm.tests.core
-rem   org.eclipse.vcm.tests.ui
-rem   org.eclipse.vcm.ui
-rem   org.eclipse.vcm.ui.cvs
-rem   org.junit
-
-set ROOT=D:\PerformanceTesting
-
-set ECLIPSE=%ROOT%\eclipse
-set REPOSITORY_PROPERTIES=%ROOT%\repository.properties
-set TEST=vcmui.benchmark.all
-set LOG=%ROOT%\%TEST%.xml
-set REPEAT=21
-set IGNOREFIRST=
-
-set PLUGINS=%ECLIPSE%\plugins
-set WORKSPACE=%ECLIPSE%\workspace
-set JRE=%ROOT%\jre
-set JAVA=%JRE%\bin\java.exe
-set HARNESS=org.eclipse.team.tests.cvs.core.harness
-
-set VMARGS=-Declipse.tests.vcm.properties=%REPOSITORY_PROPERTIES%
-set PROGARGS=-dev bin -application %HARNESS% -test %TEST% -log %LOG% -purge -repeat %REPEAT% %IGNOREFIRST%
-
-pushd %ECLIPSE%
-echo Purging the workspace: %WORKSPACE%
-del /S /F /Q %WORKSPACE% >NUL:
-@echo on
-@echo Running VCM UI benchmark test
-%JAVA% -cp startup.jar %VMARGS% org.eclipse.core.launcher.UIMain %PROGARGS%
-@echo off
-popd
diff --git a/tests/org.eclipse.team.tests.cvs.core/build-tests.xml b/tests/org.eclipse.team.tests.cvs.core/build-tests.xml
deleted file mode 100644
index ef6cbe5..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/build-tests.xml
+++ /dev/null
@@ -1,47 +0,0 @@
-<?xml version="1.0"?>
-<project name="Build CVS Sniff" basedir="." default="init">
-
-  <property name="root" value="${basedir}/.."/>
-  <property name="temp" value="${root}/__temp"/>
-  <property name="plugins" value="${temp}/eclipse/plugins"/>
-
-  <target name="init">
-    <tstamp/>
-
-    <delete dir="${temp}"/>
-    <mkdir dir="${plugins}"/>
-
-    <antcall target="buildPlugin">
-      <param name="pluginName" value="org.eclipse.core.tests.harness" />
-      <param name="jarName" value="testharness.jar" />
-    </antcall>
-    
-    <antcall target="buildPlugin">
-      <param name="pluginName" value="org.eclipse.team.tests.core" />
-      <param name="jarName" value="teamtests.jar" />
-    </antcall>
- 
-    <antcall target="buildPlugin">
-      <param name="pluginName" value="org.eclipse.team.tests.cvs.core" />
-      <param name="jarName" value="cvstests.jar" />
-    </antcall>
-
-    <zip zipfile="${basedir}/cvsSniff${DSTAMP}.zip"
-       basedir="${temp}"
-    />
-
-    <delete dir="${temp}"/>
-    <eclipse.refreshLocal resource="org.eclipse.team.tests.cvs.core"/>
-  </target>
-
-  <target name="buildPlugin">
-    <copy todir="${plugins}/${pluginName}">
-      <fileset dir="${root}/${pluginName}"/>
-    </copy>
-    <jar jarfile="${plugins}/${pluginName}/${jarName}"
-         basedir="${plugins}/${pluginName}/bin"
-    />
-    <delete dir="${plugins}/${pluginName}/bin"/>
-  </target>
-
-</project>
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/build.properties b/tests/org.eclipse.team.tests.cvs.core/build.properties
deleted file mode 100644
index df89da5..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/build.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source.cvstests.jar=src/
-bin.includes=about.html,plugin.xml,*.jar,test.xml,repository.properties
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/launchConfigurations/CVS One Test.launch b/tests/org.eclipse.team.tests.cvs.core/launchConfigurations/CVS One Test.launch
deleted file mode 100644
index dbf81fa..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/launchConfigurations/CVS One Test.launch
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<launchConfiguration type="org.eclipse.pde.junit.launchconfig">
-    <stringAttribute key="org.eclipse.debug.ui.target_debug_perspective" value="perspective_default"/>
-    <booleanAttribute key="org.eclipse.pde.junit.DELETE_WORKSPACE" value="true"/>
-    <stringAttribute key="org.eclipse.debug.ui.target_run_perspective" value="perspective_none"/>
-    <stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.team.tests.cvs.core"/>
-    <stringAttribute key="org.eclipse.pde.junitWORKSPACE_LOCATION" value="C:\Eclipse\Latest-Eclipse-Drop\eclipse\runtime-test-workspace"/>
-    <stringAttribute key="org.eclipse.pde.junit.APPLICATION_NAME" value="org.eclipse.pde.junit.coretestapplication"/>
-    <listAttribute key="org.eclipse.debug.ui.favoriteGroups">
-        <listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
-        <listEntry value="org.eclipse.debug.ui.launchGroup.run"/>
-    </listAttribute>
-    <booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
-    <stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os win32 -ws win32 -arch x86"/>
-    <stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.team.tests.ccvs.core.subscriber.CVSMergeSubscriberTest"/>
-    <stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Declipse.cvs.properties=c:\eclipse\repository.properties"/>
-</launchConfiguration>
diff --git a/tests/org.eclipse.team.tests.cvs.core/launchConfigurations/CVS Provider Tests.launch b/tests/org.eclipse.team.tests.cvs.core/launchConfigurations/CVS Provider Tests.launch
deleted file mode 100644
index f85c57f..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/launchConfigurations/CVS Provider Tests.launch
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<launchConfiguration type="org.eclipse.pde.junit.launchconfig">
-    <booleanAttribute key="org.eclipse.pde.junit.DELETE_WORKSPACE" value="true"/>
-    <stringAttribute key="org.eclipse.pde.junitWORKSPACE_LOCATION" value="C:\Eclipse\Latest-Eclipse-Drop\eclipse\runtime-test-workspace"/>
-    <listAttribute key="org.eclipse.debug.ui.favoriteGroups">
-        <listEntry value="org.eclipse.debug.ui.launchGroup.run"/>
-        <listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
-    </listAttribute>
-    <stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.team.tests.ccvs.core.subscriber.AllTestsTeamSubscriber"/>
-    <booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
-    <stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.team.tests.cvs.core"/>
-    <stringAttribute key="org.eclipse.pde.junit.APPLICATION_NAME" value="org.eclipse.pde.junit.coretestapplication"/>
-    <stringAttribute key="org.eclipse.debug.ui.target_run_perspective" value="perspective_none"/>
-    <stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os win32 -ws win32 -arch x86"/>
-    <stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Declipse.cvs.properties=c:\eclipse\repository.properties"/>
-    <stringAttribute key="org.eclipse.debug.ui.target_debug_perspective" value="perspective_default"/>
-</launchConfiguration>
diff --git a/tests/org.eclipse.team.tests.cvs.core/launchConfigurations/CVS Tests.launch b/tests/org.eclipse.team.tests.cvs.core/launchConfigurations/CVS Tests.launch
deleted file mode 100644
index 51187ce..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/launchConfigurations/CVS Tests.launch
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<launchConfiguration type="org.eclipse.pde.junit.launchconfig">
-    <booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
-    <stringAttribute key="org.eclipse.pde.junitWORKSPACE_LOCATION" value="/home/mvalenta/dev/gtk/test-workspace/"/>
-    <stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.team.tests.ccvs.core.AllTests"/>
-    <stringAttribute key="org.eclipse.pde.junit.APPLICATION_NAME" value="org.eclipse.pde.junit.coretestapplication"/>
-    <stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.team.tests.cvs.core"/>
-    <stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os win32 -ws win32 -arch x86"/>
-    <stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Declipse.cvs.properties=/home/mvalenta/dev/repository.properties"/>
-    <listAttribute key="org.eclipse.debug.ui.favoriteGroups">
-        <listEntry value="org.eclipse.debug.ui.launchGroup.run"/>
-        <listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
-    </listAttribute>
-    <stringAttribute key="org.eclipse.debug.ui.target_debug_perspective" value="perspective_default"/>
-    <booleanAttribute key="org.eclipse.pde.junit.DELETE_WORKSPACE" value="true"/>
-    <stringAttribute key="org.eclipse.debug.ui.target_run_perspective" value="perspective_none"/>
-</launchConfiguration>
diff --git a/tests/org.eclipse.team.tests.cvs.core/launchConfigurations/Test using Ant application.launch b/tests/org.eclipse.team.tests.cvs.core/launchConfigurations/Test using Ant application.launch
deleted file mode 100644
index 5a3281b..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/launchConfigurations/Test using Ant application.launch
+++ /dev/null
@@ -1,149 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<launchConfiguration type="org.eclipse.pde.ui.RuntimeWorkbench">
-    <booleanAttribute key="tracing" value="false"/>
-    <mapAttribute key="tracingOptions">
-        <mapEntry key="org.eclipse.help.ui/debug/ieadapter/inprocess" value="false"/>
-        <mapEntry key="org.eclipse.jdt.core/debug/search" value="false"/>
-        <mapEntry key="org.eclipse.core.runtime/url/debug/cachelookup" value="false"/>
-        <mapEntry key="org.eclipse.jdt.core/debug" value="true"/>
-        <mapEntry key="org.eclipse.core.resources/restore/snapshots" value="false"/>
-        <mapEntry key="org.eclipse.help/debug" value="true"/>
-        <mapEntry key="org.eclipse.jdt.core/debug/javadelta" value="false"/>
-        <mapEntry key="org.eclipse.update.core/debug" value="true"/>
-        <mapEntry key="org.eclipse.jdt.core/debug/postaction" value="false"/>
-        <mapEntry key="org.eclipse.core.runtime/loader/debug/prefixes" value="false"/>
-        <mapEntry key="org.eclipse.help.ui/debug/infopop" value="false"/>
-        <mapEntry key="org.eclipse.team.core/debug" value="false"/>
-        <mapEntry key="org.eclipse.core.resources/build/failure" value="false"/>
-        <mapEntry key="org.eclipse.team.core/streams" value="false"/>
-        <mapEntry key="org.eclipse.core.resources/debug" value="false"/>
-        <mapEntry key="org.eclipse.core.runtime/loader/debug/properties" value="false"/>
-        <mapEntry key="org.eclipse.jdt.core/debug/javamodel" value="false"/>
-        <mapEntry key="org.eclipse.core.resources/restore/metainfo" value="false"/>
-        <mapEntry key="org.eclipse.core.resources/restore/tree" value="false"/>
-        <mapEntry key="org.eclipse.core.runtime/loader/debug/actions" value="false"/>
-        <mapEntry key="org.eclipse.jdt.core/debug/compiler" value="false"/>
-        <mapEntry key="org.eclipse.core.resources/natures" value="false"/>
-        <mapEntry key="org.eclipse.core.runtime/preferences/debug" value="false"/>
-        <mapEntry key="org.eclipse.ui/trace/workbench.restore" value="false"/>
-        <mapEntry key="org.eclipse.core.runtime/url/debug/connect" value="false"/>
-        <mapEntry key="org.eclipse.jdt.debug.ui/debug" value="true"/>
-        <mapEntry key="org.eclipse.ui/debug/internalerror/openDialog" value="false"/>
-        <mapEntry key="org.eclipse.update.core/debug/web" value="false"/>
-        <mapEntry key="org.eclipse.update.core/debug/warning" value="false"/>
-        <mapEntry key="org.eclipse.jdt.core/debug/cpresolution" value="false"/>
-        <mapEntry key="org.eclipse.core.runtime/timing/shutdown" value="false"/>
-        <mapEntry key="org.eclipse.core.boot/monitor/classes" value="false"/>
-        <mapEntry key="org.eclipse.core.runtime/loader/debug/failure" value="false"/>
-        <mapEntry key="org.eclipse.core.runtime/config/debug" value="false"/>
-        <mapEntry key="org.eclipse.jface/trace/actions" value="false"/>
-        <mapEntry
-            key="org.eclipse.core.runtime/loader/debug/prefixes/failure" value="false"/>
-        <mapEntry key="org.eclipse.jdt.debug/debug" value="true"/>
-        <mapEntry key="org.eclipse.core.runtime/registry/debug" value="false"/>
-        <mapEntry key="org.eclipse.jdt.core/debug/sharedworkingcopy" value="false"/>
-        <mapEntry key="org.eclipse.ui/trace/part.activate" value="false"/>
-        <mapEntry key="org.eclipse.core.runtime/loader/debug/success" value="false"/>
-        <mapEntry key="org.eclipse.update.core/debug/parsing" value="false"/>
-        <mapEntry key="org.eclipse.help/debug/protocols" value="false"/>
-        <mapEntry key="org.eclipse.team.cvs.core/cvsprotocol" value="true"/>
-        <mapEntry key="org.eclipse.update.core/debug/install" value="false"/>
-        <mapEntry key="org.eclipse.ui/trace/part.listeners" value="false"/>
-        <mapEntry key="org.eclipse.debug.ui/debug" value="true"/>
-        <mapEntry key="org.eclipse.team.ftp/requests" value="true"/>
-        <mapEntry key="org.eclipse.core.resources/save/tree" value="false"/>
-        <mapEntry
-            key="org.eclipse.core.runtime/loader/debug/filter/resource" value="*"/>
-        <mapEntry key="org.eclipse.core.resources/history" value="false"/>
-        <mapEntry key="org.eclipse.core.runtime/registry/debug/resolve" value="false"/>
-        <mapEntry key="org.eclipse.jdt.core/debug/hierarchy" value="false"/>
-        <mapEntry key="org.eclipse.ui/trace/perspective" value="false"/>
-        <mapEntry key="org.eclipse.team.cvs.core/dirtycaching" value="false"/>
-        <mapEntry key="org.eclipse.core.runtime/loader/debug" value="false"/>
-        <mapEntry key="org.eclipse.team.cvs.ssh/ssh_protocol" value="false"/>
-        <mapEntry key="org.eclipse.core.resources/build/invoking" value="false"/>
-        <mapEntry key="org.eclipse.update.core/debug/reconciler" value="false"/>
-        <mapEntry key="org.eclipse.jdt.core/debug/zipaccess" value="false"/>
-        <mapEntry key="org.eclipse.core.resources/save/snapshots" value="false"/>
-        <mapEntry key="org.eclipse.core.resources/restore/mastertable" value="false"/>
-        <mapEntry key="org.eclipse.update.core/debug/installhandler" value="false"/>
-        <mapEntry
-            key="org.eclipse.core.runtime/loader/debug/filter/native" value="*"/>
-        <mapEntry key="org.eclipse.team.cvs.core/threading" value="false"/>
-        <mapEntry key="org.eclipse.core.resources/build/needbuild" value="false"/>
-        <mapEntry key="org.eclipse.core.resources/monitor/listeners" value="false"/>
-        <mapEntry key="org.eclipse.core.resources/build/delta" value="false"/>
-        <mapEntry key="org.eclipse.core.boot/trace/filename" value="runtime.traces"/>
-        <mapEntry key="org.eclipse.core.boot/trace/classLoading" value="false"/>
-        <mapEntry key="org.eclipse.core.resources/save/syncinfo" value="false"/>
-        <mapEntry key="org.eclipse.core.runtime/url/debug/cachecopy" value="false"/>
-        <mapEntry key="org.eclipse.core.runtime/loader/debug/create" value="false"/>
-        <mapEntry key="org.eclipse.help.ui/debug" value="true"/>
-        <mapEntry key="org.eclipse.core.resources/restore" value="false"/>
-        <mapEntry key="org.eclipse.core.boot/monitor/bundles" value="false"/>
-        <mapEntry key="org.eclipse.core.resources/restore/markers" value="false"/>
-        <mapEntry key="org.eclipse.core.resources/save/mastertable" value="false"/>
-        <mapEntry key="org.eclipse.core.resources/save/markers" value="false"/>
-        <mapEntry
-            key="org.eclipse.core.runtime/loader/debug/activateplugin" value="false"/>
-        <mapEntry key="org.eclipse.update.core/debug/configuration" value="false"/>
-        <mapEntry key="org.eclipse.core.runtime/debug/context" value="false"/>
-        <mapEntry key="org.eclipse.help/debug/context" value="false"/>
-        <mapEntry key="org.eclipse.ui/debug" value="true"/>
-        <mapEntry key="org.eclipse.update.core/debug/type" value="false"/>
-        <mapEntry
-            key="org.eclipse.core.runtime/loader/debug/prefixes/success" value="false"/>
-        <mapEntry key="org.eclipse.team.cvs.core/metafiles" value="false"/>
-        <mapEntry key="org.eclipse.jdt.core/debug/indexmanager" value="false"/>
-        <mapEntry key="org.eclipse.ui/trace/part.create" value="false"/>
-        <mapEntry key="org.eclipse.ant.core/buildfile/timing" value="false"/>
-        <mapEntry key="org.eclipse.team.cvs.ssh/debug" value="false"/>
-        <mapEntry key="org.eclipse.jdt.core/debug/builder" value="false"/>
-        <mapEntry key="org.eclipse.debug.core/debug" value="true"/>
-        <mapEntry key="org.eclipse.jdt.core/debug/selection" value="false"/>
-        <mapEntry key="org.eclipse.core.runtime/debug" value="false"/>
-        <mapEntry key="org.eclipse.core.resources/restore/syncinfo" value="false"/>
-        <mapEntry key="org.eclipse.core.boot/trace/pluginActivation" value="false"/>
-        <mapEntry key="org.eclipse.core.resources/save" value="false"/>
-        <mapEntry key="org.eclipse.jdt.core/debug/completion" value="false"/>
-        <mapEntry key="org.eclipse.core.boot/monitor/plugins" value="false"/>
-        <mapEntry key="org.eclipse.core.boot/trace/filters" value="trace.properties"/>
-        <mapEntry key="org.eclipse.team.ftp/debug" value="false"/>
-        <mapEntry
-            key="org.eclipse.core.runtime/loader/debug/filter/class" value="*"/>
-        <mapEntry key="org.eclipse.core.runtime/timing/startup" value="false"/>
-        <mapEntry key="org.eclipse.team.ftp/responses" value="true"/>
-        <mapEntry key="org.eclipse.core.resources/save/metainfo" value="false"/>
-        <mapEntry key="org.eclipse.core.runtime/url/debug" value="false"/>
-        <mapEntry key="org.eclipse.ui/trace/graphics" value="false"/>
-        <mapEntry key="org.eclipse.help/debug/search" value="false"/>
-        <mapEntry key="org.eclipse.core.runtime/registry/debug/dump" value=""/>
-        <mapEntry
-            key="org.eclipse.core.runtime/loader/debug/filter/loader" value="*"/>
-        <mapEntry key="org.eclipse.ant.core/debug" value="true"/>
-        <mapEntry key="org.eclipse.core.resources/monitor/builders" value="false"/>
-        <mapEntry key="org.eclipse.ui/trace/workbench.start" value="false"/>
-        <mapEntry key="org.eclipse.team.cvs.core/debug" value="true"/>
-        <mapEntry key="org.eclipse.team.ftp/list" value="true"/>
-        <mapEntry key="org.eclipse.help.ui/debug/ieadapter" value="false"/>
-    </mapAttribute>
-    <booleanAttribute key="clearws" value="true"/>
-    <stringAttribute key="application" value="org.eclipse.test.uitestapplication"/>
-    <booleanAttribute key="showSplash" value="true"/>
-    <booleanAttribute key="askclear" value="true"/>
-    <stringAttribute key="org.eclipse.debug.ui.target_run_perspective" value="perspective_default"/>
-    <stringAttribute key="org.eclipse.debug.core.source_locator_id" value="org.eclipse.jdt.debug.ui.javaSourceLocator"/>
-    <stringAttribute key="location4" value="D:\dev\runtime-workspace"/>
-    <stringAttribute key="vmargs" value="-Declipse.cvs.propertiesC:\eclipse\repository.properties"/>
-    <stringAttribute key="location3" value="D:\dev\test-workspace-2"/>
-    <booleanAttribute key="usefeatures" value="false"/>
-    <stringAttribute key="location2" value="D:\dev\test-workspace-3"/>
-    <stringAttribute key="location1" value="C:\eclipse\test-workspace"/>
-    <stringAttribute key="location0" value="C:\eclipse\test-workspace"/>
-    <stringAttribute key="org.eclipse.debug.ui.target_debug_perspective" value="perspective_default"/>
-    <stringAttribute key="progargs" value="-os win32 -ws win32 -arch x86 -nl en_US -className  org.eclipse.team.tests.ccvs.core.provider.AllTestProvider -testPluginName org.eclipse.team.tests.cvs.core -noupdate formatter=org.apache.tools.ant.taskdefs.optional.junit.XMLJUnitResultFormatter,cvstest.xml"/>
-    <stringAttribute
-        key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-    <booleanAttribute key="default" value="true"/>
-    <stringAttribute key="vminstall" value="ibm"/>
-</launchConfiguration>
diff --git a/tests/org.eclipse.team.tests.cvs.core/launchConfigurations/benchmark/Benchmark Test.launch b/tests/org.eclipse.team.tests.cvs.core/launchConfigurations/benchmark/Benchmark Test.launch
deleted file mode 100644
index 792f2b6..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/launchConfigurations/benchmark/Benchmark Test.launch
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<launchConfiguration type="org.eclipse.pde.ui.RuntimeWorkbench">
-    <stringAttribute key="location3" value="D:\dev\runtime-workspace"/>
-    <stringAttribute key="location2" value="D:\dev\benchmark-workspace"/>
-    <stringAttribute key="location1" value="C:\Eclipse\Workspaces\benchmark-workspace"/>
-    <stringAttribute key="location0" value="C:\Eclipse\Workspaces\benchmark-workspace"/>
-    <stringAttribute key="progargs" value="-os win32 -ws win32 -arch x86 -nl en_US -test cvsui.benchmark.workflow -log c:\eclipse\test_log.xml"/>
-    <stringAttribute key="vmargs" value="-Declipse.cvs.properties=c:\eclipse"/>
-    <booleanAttribute key="askclear" value="false"/>
-    <stringAttribute key="org.eclipse.debug.ui.target_debug_perspective" value="perspective_default"/>
-    <stringAttribute key="application" value="org.eclipse.team.tests.cvs.core.harness"/>
-    <stringAttribute
-        key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-    <booleanAttribute key="clearws" value="true"/>
-    <stringAttribute key="org.eclipse.debug.ui.target_run_perspective" value="perspective_default"/>
-    <stringAttribute key="org.eclipse.debug.core.source_locator_id" value="org.eclipse.jdt.debug.ui.javaSourceLocator"/>
-    <booleanAttribute key="usefeatures" value="false"/>
-    <booleanAttribute key="showSplash" value="true"/>
-    <booleanAttribute key="tracing" value="false"/>
-    <booleanAttribute key="default" value="true"/>
-</launchConfiguration>
diff --git a/tests/org.eclipse.team.tests.cvs.core/launchConfigurations/benchmark/PrintDiffMain.launch b/tests/org.eclipse.team.tests.cvs.core/launchConfigurations/benchmark/PrintDiffMain.launch
deleted file mode 100644
index a4fbb37..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/launchConfigurations/benchmark/PrintDiffMain.launch
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
-    <stringAttribute key="org.eclipse.debug.core.source_locator_id" value="org.eclipse.jdt.debug.ui.javaSourceLocator"/>
-    <stringAttribute key="org.eclipse.debug.ui.target_debug_perspective" value="perspective_default"/>
-    <stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.team.tests.ccvs.ui.logformatter.PrintDiffMain"/>
-    <stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="F:\RC1.all.xml F:\I20021127.all.xml -out F:\diff20030226.txt"/>
-    <stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.team.tests.cvs.core"/>
-    <stringAttribute key="org.eclipse.debug.ui.target_run_perspective" value="perspective_default"/>
-</launchConfiguration>
diff --git a/tests/org.eclipse.team.tests.cvs.core/plugin.xml b/tests/org.eclipse.team.tests.cvs.core/plugin.xml
deleted file mode 100644
index 494f000..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/plugin.xml
+++ /dev/null
@@ -1,120 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<plugin
-   id="org.eclipse.team.tests.cvs.core"
-   name="Eclipse CVS Tests Core"
-   version="2.1.0"
-   provider-name="Eclipse.org">
-
-   <runtime>
-      <library name="cvstests.jar">
-         <export name="*"/>
-         <packages prefixes="org.eclipse.team.tests.ccvs.core, org.eclipse.team.tests.ccvs.ui"/>
-      </library>
-   </runtime>
-   <requires>
-      <import plugin="org.apache.xerces"/>
-      <import plugin="org.eclipse.core.tests.harness"/>
-      <import plugin="org.eclipse.core.resources"/>
-      <import plugin="org.eclipse.team.core"/>
-      <import plugin="org.eclipse.team.cvs.core"/>
-      <import plugin="org.eclipse.team.ui"/>
-      <import plugin="org.eclipse.team.cvs.ui"/>
-      <import plugin="org.eclipse.compare"/>
-      <import plugin="org.eclipse.ui"/>
-      <import plugin="org.eclipse.update.core"/>
-      <import plugin="org.junit"/>
-      <import plugin="org.eclipse.team.tests.core"/>
-   </requires>
-
-	<!-- *************** Connection Methods **************** -->
-	<extension id="pserver" point="org.eclipse.team.cvs.core.connectionmethods">
-		<adapter>
-			<run class="org.eclipse.team.tests.ccvs.core.TestConnectionMethod">
-				<parameter name="trace" value="false" /> 
-			</run>
-		</adapter>
-	</extension>
-	
-<!-- **************** TESTS ******************* -->
-   <extension
-         point="org.eclipse.core.tests.harness.tests">
-      <test
-            id="cvs.all">
-         <run
-               class="org.eclipse.team.tests.ccvs.core.AllTests">
-         </run>
-      </test>
-      <test
-            id="cvs.provider">
-         <run
-               class="org.eclipse.team.tests.ccvs.core.provider.AllTestsProvider">
-         </run>
-      </test>
-      <test
-            id="cvs.compatibility">
-         <run
-               class="org.eclipse.team.tests.ccvs.core.compatible.AllTestsCompatibility">
-         </run>
-      </test>
-      <test
-            id="cvs.resources">
-         <run
-               class="org.eclipse.team.tests.ccvs.core.cvsresources.AllTestsCVSResources">
-         </run>
-      </test>
-      <test
-            id="cvs.sync">
-         <run
-               class="org.eclipse.team.tests.ccvs.core.provider.SyncElementTest">
-         </run>
-      </test>
-      <test
-            id="cvs.remote">
-         <run
-               class="org.eclipse.team.tests.ccvs.core.provider.RemoteResourceTest">
-         </run>
-      </test>
-      <test
-            id="cvsui.benchmark.all">
-         <run
-               class="org.eclipse.team.tests.ccvs.ui.benchmark.AllTests">
-         </run>
-      </test>
-      <test
-            id="cvsui.benchmark.sync">
-         <run
-               class="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests">
-         </run>
-      </test>
-      <test
-            id="cvsui.benchmark.workflow">
-         <run
-               class="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests">
-         </run>
-      </test>
-      <test
-            id="cvsui.benchmark.command">
-         <run
-               class="org.eclipse.team.tests.ccvs.ui.benchmark.CommandTests">
-         </run>
-      </test>
-   </extension>
-   <extension
-         point="org.eclipse.ui.perspectives">
-      <perspective
-            name="Empty Perspective"
-            class="org.eclipse.team.tests.ccvs.ui.EmptyPerspective"
-            id="org.eclipse.team.tests.ccvs.ui.EmptyPerspective">
-      </perspective>
-   </extension>
-   <extension
-         id="harness"
-         point="org.eclipse.core.runtime.applications">
-      <application>
-         <run
-               class="org.eclipse.team.tests.ccvs.ui.EclipseUITestHarnessApplication">
-         </run>
-      </application>
-   </extension>
-
-</plugin>
diff --git a/tests/org.eclipse.team.tests.cvs.core/readme.html b/tests/org.eclipse.team.tests.cvs.core/readme.html
deleted file mode 100644
index 09ea3e6..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/readme.html
+++ /dev/null
@@ -1,90 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-  <title>Building and Running the Team/CVS Tests using Ant</title>
-         
-  <meta http-equiv="Content-Type"
- content="text/html; charset=iso-8859-1">
-     
-  <link rel="stylesheet" href="http://dev.eclipse.org/default_style.css"
- type="text/css">
-</head>
-  <body bgcolor="#ffffff" text="#000000">
-
-<h1> Building and Running the Team/CVS Tests using Ant</h1>
-
-<h2>Building the Team/CVS tests</h2>
-
-To build the TEam/CVS test plugins, perform the following steps:
-
-<ol>
-
-  <li>Import the following plugins using the <b>Import External Plugins and Fragments</b> wizard:
-    <ol>
-	<li><i>org.eclipse.team.*</i> plugins and all required plugins</li>
-	<li><i>org.junit</i> and any required plugins</li>
-	</ol>
-  </li>
-
-  <li>Check out the following plug-ins from dev.eclipse.org:
-    <ol>
-    <li><i>org.eclipse.core.tests.harness</i></li>
-    <li><i>org.eclipse.team.tests.core</i></li>
-	<li><i>org.eclipse.team.tests.cvs.core</i></li>
-	</ol>
-  </li>
-
-  <li>In org.eclipse.team.tests.cvs.core, select the file <i>build-tests.xml</i> and choose
-  <b>Run Ant...</b> from the popup menu. A zip archieve of the CVS test plugins is created
-  in the org.eclipse.team.tests.cvs.core project.
-  </li>
-  
-</ol>
-
-<h2>Setting up the Eclipse install to be used to run the tests</h2>
-
-To run the tests built above, perform the following steps:
-
-<ol>
-
-  <li>Install eclipse to you test directory.</li>
-
-  <li>Install the eclipse test harness plug-ins and fragments over the above install</li>
-
-  <li>Extract the team test plugin archive created above into the test Eclipse install.</li>
-
-  <li>The CVS tests require a repository to test with. Modify the repository.properties file in plug-in <i>org.eclipse.team.tests.cvs.core</i> 
-  to contain the information required to connect to your repository.
-  Important fields in the repository properties file are:
-    <ul>
-       <li><i>repository</i> - the location string that identifies your test repository.
-       This string should be of the format ":method:user:password@host:/repo/path"
-       </li>
-       <li><i>initrepo</i> - true if you want to initialize the repository before beginning.
-       It is not essential to initialize the repository, as the tests will create unique test
-       project names.
-       <li><i>rsh</i> - the rsh (or ssh) client used to initialize the repository
- 	   <br/><b>Note:</b> Your repository must allow rsh connections from your userid and machine in order for
-	   the tests to run when initrepo is set to true. If ssh is used, it must be configured to connect
-	   when provided with  the parameters "host -l username" (i.e. setup to use keys).
-	   </li>
-	</ul>
-	<p>There is a sample repository.properties file provided in <i>org.eclipse.team.tests.cvs.core</i>.
-	The additional properties are for more in-depth tests.</p>
-	<p><b>Note:</b> If you want to keep a repositories.properties file in a separate directory,
-	this directory can be provided to the test script run below as the "team-home" parameter.</p>
-  </li>
-
-  <li>Run the test.xml Ant script using the following command line from the eclipse directory:
-    <ul>
-    <li>For Team:<br/>
-  java -cp startup.jar org.eclipse.core.launcher.Main -application org.eclipse.ant.core.antRunner -file plugins/org.eclipse.team.tests.core/test.xml run -dev bin -noupdate
-    </li>
-    <li>For CVS:<br/>
-  java -cp startup.jar org.eclipse.core.launcher.Main -application org.eclipse.ant.core.antRunner -file plugins/org.eclipse.team.tests.cvs.core/test.xml run -dev bin -noupdate
-    </li>
-    </ul>
-  </li>
-  
-  </body>
-</html>
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/repository.properties b/tests/org.eclipse.team.tests.cvs.core/repository.properties
deleted file mode 100644
index a79b71d..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/repository.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials 
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-repository=:pserver:@user@:@password@@@host@:@root@
-repository1=:pserver:@user@:@password@@@host@:@root1@
-repository2=:pserver:@user@:@password@@@host@:@root2@
-command=C:\cvs\bin\cvs
-debug=false
-standalone=false
-initrepo=false
-temp=C:\temp
-rsh=rsh
-localRepo=false
-waitFactor=5
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/resources/BenchmarkTest/benchmarkBig.zip b/tests/org.eclipse.team.tests.cvs.core/resources/BenchmarkTest/benchmarkBig.zip
deleted file mode 100644
index 8a0f9cf..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/resources/BenchmarkTest/benchmarkBig.zip
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.team.tests.cvs.core/resources/BenchmarkTest/benchmarkSmall.zip b/tests/org.eclipse.team.tests.cvs.core/resources/BenchmarkTest/benchmarkSmall.zip
deleted file mode 100644
index ea3729e..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/resources/BenchmarkTest/benchmarkSmall.zip
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.team.tests.cvs.core/resources/BenchmarkTest/benchmarkTiny.zip b/tests/org.eclipse.team.tests.cvs.core/resources/BenchmarkTest/benchmarkTiny.zip
deleted file mode 100644
index a127ff3..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/resources/BenchmarkTest/benchmarkTiny.zip
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.team.tests.cvs.core/resources/CommandTest/CVSROOT/modules b/tests/org.eclipse.team.tests.cvs.core/resources/CommandTest/CVSROOT/modules
deleted file mode 100644
index 3ab59a6..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/resources/CommandTest/CVSROOT/modules
+++ /dev/null
@@ -1,65 +0,0 @@
-# Three different line formats are valid:
-#	key	-a    aliases...
-#	key [options] directory
-#	key [options] directory files...
-#
-# Where "options" are composed of:
-#	-i prog		Run "prog" on "cvs commit" from top-level of module.
-#	-o prog		Run "prog" on "cvs checkout" of module.
-#	-e prog		Run "prog" on "cvs export" of module.
-#	-t prog		Run "prog" on "cvs rtag" of module.
-#	-u prog		Run "prog" on "cvs update" of module.
-#	-d dir		Place module in directory "dir" instead of module name.
-#	-l		Top-level directory only -- do not recurse.
-#
-# NOTE:  If you change any of the "Run" options above, you'll have to
-# release and re-checkout any working directories of these modules.
-#
-# And "directory" is a path to a directory relative to $CVSROOT.
-#
-# The "-a" option specifies an alias.  An alias is interpreted as if
-# everything on the right of the "-a" had been typed on the command line.
-#
-# You can encode a module within a module by using the special '&'
-# character to interpose another module into the current module.  This
-# can be useful for creating a module that consists of many directories
-# spread out over the entire source repository.
-
-# Block access to CVS hogs
-#world		-a denied___checkout_of_world_takes_too_long
-#.		-a denied___checkout_of_world_takes_too_long
-
-# self referencing modules
-project1 project1
-
-# checkout docs in flattened structure
-docs		-d docs common/docs
-macros common/macros
-
-# include docs with project
-project2		project2 &docs
-# only project2
-project2-only project2
-
-# a use of alias
-project3-src  project3/src
-project3-src_file -a project3-src/file.c project3-src/file.h
-project3-sub  project3/sub &project3-src_file
-
-# embeddings
-project4 project4 &macros
-project5-project4 -d extensions/project4 project4
-project5 project5 &project5-project4 &macros
-
-# using -d to build a project from other projects
-project6-dirA -d dirA project6/A
-project6-dirB -d dirB project6/B
-project6 &project6-dirA &project6-dirB
-
-# using aliases to provide packaging
-project7-common -a project7/common
-project7-pc -a project7-common project7/pc
-project7-linux -a project7-common project7/linux
-
-# simple use of module alias
-project8-alias -a project8 common
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/resources/CommandTest/common/docs/readme.html b/tests/org.eclipse.team.tests.cvs.core/resources/CommandTest/common/docs/readme.html
deleted file mode 100644
index 8c7fe21..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/resources/CommandTest/common/docs/readme.html
+++ /dev/null
@@ -1,2 +0,0 @@
-<html>
-</html>
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/resources/CommandTest/common/macros/macro1 b/tests/org.eclipse.team.tests.cvs.core/resources/CommandTest/common/macros/macro1
deleted file mode 100644
index c88e4d6..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/resources/CommandTest/common/macros/macro1
+++ /dev/null
@@ -1 +0,0 @@
-This is a macro
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/resources/CommandTest/project1/f1/file-in-p1.txt b/tests/org.eclipse.team.tests.cvs.core/resources/CommandTest/project1/f1/file-in-p1.txt
deleted file mode 100644
index 5ba54a8..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/resources/CommandTest/project1/f1/file-in-p1.txt
+++ /dev/null
@@ -1 +0,0 @@
-This is a file in project1
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/resources/CommandTest/project2/file-p2.txt b/tests/org.eclipse.team.tests.cvs.core/resources/CommandTest/project2/file-p2.txt
deleted file mode 100644
index 547cc5e..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/resources/CommandTest/project2/file-p2.txt
+++ /dev/null
@@ -1 +0,0 @@
-This is a file in project 2
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/resources/CommandTest/project3/src/file.c b/tests/org.eclipse.team.tests.cvs.core/resources/CommandTest/project3/src/file.c
deleted file mode 100644
index a3f314b..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/resources/CommandTest/project3/src/file.c
+++ /dev/null
@@ -1 +0,0 @@
-This is a c file
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/resources/CommandTest/project3/src/file.h b/tests/org.eclipse.team.tests.cvs.core/resources/CommandTest/project3/src/file.h
deleted file mode 100644
index d45f90e..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/resources/CommandTest/project3/src/file.h
+++ /dev/null
@@ -1 +0,0 @@
-This is an h file
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/resources/CommandTest/project3/sub/file-sub.txt b/tests/org.eclipse.team.tests.cvs.core/resources/CommandTest/project3/sub/file-sub.txt
deleted file mode 100644
index d45364e..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/resources/CommandTest/project3/sub/file-sub.txt
+++ /dev/null
@@ -1 +0,0 @@
-This is a file in project3/sub
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/resources/CommandTest/project7/common/common.txt b/tests/org.eclipse.team.tests.cvs.core/resources/CommandTest/project7/common/common.txt
deleted file mode 100644
index 1275067..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/resources/CommandTest/project7/common/common.txt
+++ /dev/null
@@ -1 +0,0 @@
-This is a common file
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/resources/CommandTest/project7/linux/linux.txt b/tests/org.eclipse.team.tests.cvs.core/resources/CommandTest/project7/linux/linux.txt
deleted file mode 100644
index c7078a3..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/resources/CommandTest/project7/linux/linux.txt
+++ /dev/null
@@ -1 +0,0 @@
-This is a linux file
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/resources/CommandTest/project7/pc/pc.txt b/tests/org.eclipse.team.tests.cvs.core/resources/CommandTest/project7/pc/pc.txt
deleted file mode 100644
index 4bf706a..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/resources/CommandTest/project7/pc/pc.txt
+++ /dev/null
@@ -1 +0,0 @@
-This is a pc file
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/resources/CommandTest/project8/file-p8.txt b/tests/org.eclipse.team.tests.cvs.core/resources/CommandTest/project8/file-p8.txt
deleted file mode 100644
index e9257eb..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/resources/CommandTest/project8/file-p8.txt
+++ /dev/null
@@ -1 +0,0 @@
-This is a file in project8
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/self-host.xml b/tests/org.eclipse.team.tests.cvs.core/self-host.xml
deleted file mode 100644
index 7e5147a..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/self-host.xml
+++ /dev/null
@@ -1,74 +0,0 @@
-<?xml version="1.0"?>
-<project name="Build Team and CVS plugins" basedir="." default="init">
-
-  <property name="root" value="${basedir}/.."/>
-  <property name="temp" value="${root}/__temp"/>
-  <property name="plugins" value="${temp}/eclipse/plugins"/>
-  <property name="versionSuffix" value="_2.1.0"/>
-
-  <target name="init">
-    <tstamp/>
-
-    <delete dir="${temp}"/>
-    <mkdir dir="${plugins}"/>
-
-    <antcall target="org.eclipse.team.core"/>
-    <antcall target="org.eclipse.team.ui"/>
-    <antcall target="org.eclipse.team.cvs.core"/>
-    <antcall target="org.eclipse.team.cvs.ui"/>
-    <antcall target="org.eclipse.team.cvs.ssh"/>
-
-    <zip zipfile="${basedir}/selfhost${DSTAMP}.zip"
-       basedir="${temp}"
-    />
-
-    <delete dir="${temp}"/>
-    <eclipse.refreshLocal resource="org.eclipse.team.tests.cvs.core"/>
-  </target>
-
-  <target name="org.eclipse.team.core">
-    <antcall target="buildPlugin">
-      <param name="pluginName" value="org.eclipse.team.core" />
-      <param name="jarName" value="team.jar" />
-    </antcall>
-  </target>
-
-  <target name="org.eclipse.team.ui">
-    <antcall target="buildPlugin">
-      <param name="pluginName" value="org.eclipse.team.ui" />
-      <param name="jarName" value="teamui.jar" />
-    </antcall>
-  </target>
-
-  <target name="org.eclipse.team.cvs.core">
-    <antcall target="buildPlugin">
-      <param name="pluginName" value="org.eclipse.team.cvs.core" />
-      <param name="jarName" value="cvs.jar" />
-    </antcall>
-  </target>
-
-  <target name="org.eclipse.team.cvs.ui">
-    <antcall target="buildPlugin">
-      <param name="pluginName" value="org.eclipse.team.cvs.ui" />
-      <param name="jarName" value="teamcvsui.jar" />
-    </antcall>
-  </target>
-
-  <target name="org.eclipse.team.cvs.ssh">
-    <antcall target="buildPlugin">
-      <param name="pluginName" value="org.eclipse.team.cvs.ssh" />
-      <param name="jarName" value="teamcvsssh.jar" />
-    </antcall>
-  </target>
-          
-  <target name="buildPlugin">
-    <copy todir="${plugins}/${pluginName}${versionSuffix}">
-      <fileset dir="${root}/${pluginName}"/>
-    </copy>
-    <jar jarfile="${plugins}/${pluginName}${versionSuffix}/${jarName}"
-         basedir="${plugins}/${pluginName}${versionSuffix}/bin"
-    />
-    <delete dir="${plugins}/${pluginName}${versionSuffix}/bin"/>
-  </target>
-
-</project>
\ No newline at end of file
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/AllTeamAndCVSTests.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/AllTeamAndCVSTests.java
deleted file mode 100644
index 8e08123..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/AllTeamAndCVSTests.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.core;
-import junit.extensions.TestSetup;
-import junit.framework.Test;
-import junit.framework.TestSuite;
-import org.eclipse.team.tests.core.AllTeamTests;
-
-public class AllTeamAndCVSTests extends EclipseTest {
-
-	/**
-	 * Constructor for CVSClientTest.
-	 */
-	public AllTeamAndCVSTests() {
-		super();
-	}
-
-	/**
-	 * Constructor for CVSClientTest.
-	 * @param name
-	 */
-	public AllTeamAndCVSTests(String name) {
-		super(name);
-	}
-
-	/*
-	 * ORDER IS IMPORTANT: Run compatibility and resource tests before any other!!!
-	 */
-	public static Test suite() {
-		TestSuite suite = new TestSuite();
-		suite.addTest(new TestSetup(AllTeamTests.suite()));
-		suite.addTest(new CVSTestSetup(AllTests.suite()));
-		return suite;
-	}
-}
-
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/AllTests.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/AllTests.java
deleted file mode 100644
index ce45de6..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/AllTests.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.core;
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.team.tests.ccvs.core.cvsresources.AllTestsCVSResources;
-import org.eclipse.team.tests.ccvs.core.provider.AllTestsProvider;
-import org.eclipse.team.tests.ccvs.core.subscriber.AllTestsTeamSubscriber;
-
-public class AllTests extends EclipseTest {
-
-	/**
-	 * Constructor for CVSClientTest.
-	 */
-	public AllTests() {
-		super();
-	}
-
-	/**
-	 * Constructor for CVSClientTest.
-	 * @param name
-	 */
-	public AllTests(String name) {
-		super(name);
-	}
-
-	/*
-	 * ORDER IS IMPORTANT: Run compatibility and resource tests before any other!!!
-	 */
-	public static Test suite() {
-		TestSuite suite = new TestSuite();
-		//suite.addTest(org.eclipse.team.tests.ccvs.core.compatible.AllTestsCompatibility.suite());
-		suite.addTest(AllTestsCVSResources.suite());
-		suite.addTest(AllTestsProvider.suite());
-		suite.addTest(AllTestsTeamSubscriber.suite());
-		return new CVSTestSetup(suite);
-	}
-}
-
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/CVSClientException.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/CVSClientException.java
deleted file mode 100644
index 7ea4fba..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/CVSClientException.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.core;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-
-public class CVSClientException extends CVSException {
-	
-	public CVSClientException(String message) {
-		super(message);
-	}
-
-}
-
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/CVSTestSetup.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/CVSTestSetup.java
deleted file mode 100644
index bff8c3e..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/CVSTestSetup.java
+++ /dev/null
@@ -1,199 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.core;
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.PrintStream;
-
-import junit.extensions.TestSetup;
-import junit.framework.Test;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSProviderPlugin;
-import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.core.connection.CVSRepositoryLocation;
-
-public class CVSTestSetup extends TestSetup {
-	public static final String REPOSITORY_LOCATION;
-	public static final boolean INITIALIZE_REPO;
-	public static final boolean DEBUG;
-	public static final boolean LOCAL_REPO;
-	public static final String RSH;
-	public static final int WAIT_FACTOR;
-	public static final int COMPRESSION_LEVEL;
-	
-	public static CVSRepositoryLocation repository;
-	
-	// Static initializer for constants
-	static {
-		loadProperties();
-		REPOSITORY_LOCATION = System.getProperty("eclipse.cvs.repository");
-		INITIALIZE_REPO = Boolean.valueOf(System.getProperty("eclipse.cvs.initrepo", "false")).booleanValue();
-		DEBUG = Boolean.valueOf(System.getProperty("eclipse.cvs.debug", "false")).booleanValue();
-		RSH = System.getProperty("eclipse.cvs.rsh", "rsh");
-		LOCAL_REPO = Boolean.valueOf(System.getProperty("eclipse.cvs.localRepo", "false")).booleanValue();
-		WAIT_FACTOR = Integer.parseInt(System.getProperty("eclipse.cvs.waitFactor", "1"));
-		COMPRESSION_LEVEL = Integer.parseInt(System.getProperty("eclipse.cvs.compressionLevel", "0"));
-	}
-
-	public static void loadProperties() {
-		String propertiesFile = System.getProperty("eclipse.cvs.properties");
-		if (propertiesFile == null) return;
-		File file = new File(propertiesFile);
-		if (file.isDirectory()) file = new File(file, "repository.properties");
-		try {
-			BufferedReader reader = new BufferedReader(new FileReader(file));
-			try {
-				for (String line; (line = reader.readLine()) != null; ) {
-					if (line.startsWith("#")) continue;					
-					int sep = line.indexOf("=");
-					String property = line.substring(0, sep).trim();
-					String value = line.substring(sep + 1).trim();
-					System.setProperty("eclipse.cvs." + property, value);
-				}
-			} finally {
-				reader.close();
-			}
-		} catch (Exception e) {
-			System.err.println("Could not read repository properties file: " + file.getAbsolutePath());
-		}
-	}	
-
-	/**
-	 * Constructor for CVSTestSetup.
-	 */
-	public CVSTestSetup(Test test) {
-		super(test);
-	}
-
-	public static void executeRemoteCommand(ICVSRepositoryLocation repository, String commandLine) {
-		if (! LOCAL_REPO) {
-			commandLine = RSH + " " + repository.getHost() + " -l " + repository.getUsername() + " " + commandLine;
-		}
-		int returnCode = executeCommand(commandLine, null, null);
-		if (returnCode != -1 && returnCode != 0) {
-			System.err.println("Remote command returned " + returnCode + ": " + commandLine);
-		}
-	}
-	
-	/**
-	 * Executes a command.
-	 * Returns the command's return code, or -1 on failure.
-	 * 
-	 * @param commandLine the local command line to run
-	 * @param environment the new environment variables, or null to inherit from parent process
-	 * @param workingDirectory the new workingDirectory, or null to inherit from parent process
-	 */
-	public static int executeCommand(String commandLine, String[] environment, File workingDirectory) {
-		PrintStream debugStream = CVSTestSetup.DEBUG ? System.out : null;
-		try {
-			if (debugStream != null) {
-				// while debugging, dump CVS command line client results to stdout
-				// prefix distinguishes between message source stream
-				debugStream.println();
-				printPrefixedLine(debugStream, "CMD> ", commandLine);
-				if (workingDirectory != null) printPrefixedLine(debugStream, "DIR> ", workingDirectory.toString());
-			}
-			Process cvsProcess = Runtime.getRuntime().exec(commandLine, environment, workingDirectory);
-			// stream output must be dumped to avoid blocking the process or causing a deadlock
-			startBackgroundPipeThread(cvsProcess.getErrorStream(), debugStream, "ERR> ");
-			startBackgroundPipeThread(cvsProcess.getInputStream(), debugStream, "MSG> ");
-
-			int returnCode = cvsProcess.waitFor();			
-			if (debugStream != null) debugStream.println("RESULT> " + returnCode);
-			return returnCode;
-		} catch (IOException e) {
-			printPrefixedLine(System.err, "Unable to execute command: ", commandLine);
-			e.printStackTrace(System.err);
-		} catch (InterruptedException e) {
-			printPrefixedLine(System.err, "Unable to execute command: ", commandLine);
-			e.printStackTrace(System.err);
-		}
-		return -1;
-	}
-	
-	private static void startBackgroundPipeThread(final InputStream is, final PrintStream os,
-		final String prefix) {
-		new Thread() {
-			public void run() {
-				BufferedReader reader = null;
-				try {
-					try {
-						reader = new BufferedReader(new InputStreamReader(is));
-						for (;;) {
-							String line = reader.readLine();
-							if (line == null) break;
-							if (os != null) printPrefixedLine(os, prefix, line);
-						}
-					} finally {
-						if (reader != null) reader.close();
-					}
-				} catch (IOException e) {
-					e.printStackTrace();
-				}
-			}
-		}.start();
-	}
-	
-	private static void printPrefixedLine(PrintStream os, String prefix, String line) {
-		os.print(prefix);
-		os.println(line.substring(0, Math.min(line.length(), 256))); // trim long lines
-	}
-
-	/*
-	 * Use rsh to delete any contents of the repository and initialize it again
-	 */
-	private static void initializeRepository(CVSRepositoryLocation repository) {
-		String repoRoot = repository.getRootDirectory();
-		executeRemoteCommand(repository, "rm -rf " + repoRoot);
-		executeRemoteCommand(repository, "cvs -d " + repoRoot + " init");
-	}
-	
-	public void setUp() throws CVSException {
-		if (repository == null)
-			repository = setupRepository(REPOSITORY_LOCATION);
-		CVSProviderPlugin.getPlugin().setCompressionLevel(COMPRESSION_LEVEL);
-	}
-
-	protected CVSRepositoryLocation setupRepository(String location) throws CVSException {
-
-		// Give some info about which repository the tests are running with
-		System.out.println("Connecting to: " + location);
-		
-		// Validate that we can connect, also creates and caches the repository location. This
-		// is important for the UI tests.
-		CVSRepositoryLocation repository = (CVSRepositoryLocation)CVSProviderPlugin.getPlugin().getRepository(location);
-		//CVSRepositoryLocation repository = CVSRepositoryLocation.fromString(location);
-		try {
-			repository.validateConnection(new NullProgressMonitor());
-		} catch (CVSException e) {
-			System.out.println("Unable to connect to remote repository: " + repository.getLocation());
-			throw e;
-		}
-		
-		// Initialize the repo if requested (requires rsh access)
-		if( INITIALIZE_REPO ) {
-			initializeRepository(repository);
-		}
-		
-		return repository;
-	}
-	
-	public void tearDown() throws CVSException {
-		// Nothing to do here
-	}
-
-}
-
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/CommandLineCVSClient.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/CommandLineCVSClient.java
deleted file mode 100644
index ec6ff38..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/CommandLineCVSClient.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.core;
-
-import java.io.File;
-
-import junit.framework.Assert;
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
-
-public class CommandLineCVSClient implements ICVSClient {
-	public static final ICVSClient INSTANCE = new CommandLineCVSClient();
-	private static final String cvsExecutable =
-		System.getProperty("eclipse.cvs.command");
-		
-	public void executeCommand(ICVSRepositoryLocation repositoryLocation,
-		IContainer localRoot, String command, String[] globalOptions,
-		String[] localOptions, String[] arguments) throws CVSException {
-		execute(repositoryLocation.getLocation(), localRoot.getLocation().toFile(), command,
-			globalOptions, localOptions, arguments);
-		try {
-			localRoot.refreshLocal(IResource.DEPTH_INFINITE, null);
-		} catch (CoreException e) {
-			throw new CVSClientException("CoreException during refreshLocal: " + e.getMessage());
-		}
-	}
-	
-	public static void execute(
-		String repositoryLocation, File localRoot, String command,
-		String[] globalOptions, String[] localOptions,
-		String[] arguments) throws CVSException {
-		// test arguments
-		Assert.assertNotNull(repositoryLocation);
-		Assert.assertNotNull(localRoot);
-		Assert.assertNotNull(command);
-		Assert.assertNotNull(globalOptions);
-		Assert.assertNotNull(localOptions);
-		Assert.assertNotNull(arguments);
-		Assert.assertTrue(localRoot.exists());
-
-		// build command line
-		StringBuffer commandLineBuf = new StringBuffer(cvsExecutable);
-		commandLineBuf.append(" -d \"");
-		commandLineBuf.append(repositoryLocation);
-		commandLineBuf.append('"');
-		appendStrings(commandLineBuf, globalOptions);
-		commandLineBuf.append(' ');
-		commandLineBuf.append(command);
-		appendStrings(commandLineBuf, localOptions);
-		appendStrings(commandLineBuf, arguments);
-		
-		// execute command
-		JUnitTestCase.waitMsec(1500);
-		int returnCode = CVSTestSetup.executeCommand(commandLineBuf.toString(), null, localRoot);
-		if (returnCode != 0) {
-			throw new CVSClientException("Command line client returned non-zero code: " + returnCode);
-		}
-	}
-		
-	private static void appendStrings(StringBuffer commandLine, String[] strings) {	
-		for (int i = 0; i < strings.length; i++) {
-			String string = strings[i];
-			if (string != null && string.length() != 0) {
-				commandLine.append(" \"");
-				commandLine.append(string);
-				commandLine.append('"');
-			}
-		}
-	}
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/EclipseCVSClient.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/EclipseCVSClient.java
deleted file mode 100644
index 7667790..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/EclipseCVSClient.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.core;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-
-import junit.framework.Assert;
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSStatus;
-import org.eclipse.team.internal.ccvs.core.ICVSFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.core.client.Command;
-import org.eclipse.team.internal.ccvs.core.client.Session;
-import org.eclipse.team.internal.ccvs.core.client.Command.GlobalOption;
-import org.eclipse.team.internal.ccvs.core.client.Command.LocalOption;
-import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
-
-public class EclipseCVSClient implements ICVSClient {
-	public static final ICVSClient INSTANCE = new EclipseCVSClient();
-	private static final HashMap commandPool = new HashMap();
-	static {
-		commandPool.put("update", Command.UPDATE);
-		commandPool.put("co", Command.CHECKOUT);
-		commandPool.put("ci", Command.COMMIT);
-		commandPool.put("import", Command.IMPORT);
-		commandPool.put("add", Command.ADD);
-		commandPool.put("remove", Command.REMOVE);
-		commandPool.put("status", Command.STATUS);
-		commandPool.put("log", Command.LOG);
-		commandPool.put("tag", Command.TAG);
-		commandPool.put("rtag", Command.RTAG);
-		commandPool.put("admin", Command.ADMIN);
-		commandPool.put("diff", Command.DIFF);
-	}
-	
-	public void executeCommand(ICVSRepositoryLocation repositoryLocation,
-		IContainer localRoot, String command, String[] globalOptions,
-		String[] localOptions, String[] arguments) throws CVSException {
-		execute(repositoryLocation, CVSWorkspaceRoot.getCVSFolderFor(localRoot), command,
-			globalOptions, localOptions, arguments);
-	}
-	
-	public static void execute(
-		ICVSRepositoryLocation cvsRepositoryLocation, ICVSFolder cvsLocalRoot,
-		String command, String[] globalOptions, String[] localOptions,
-		String[] arguments) throws CVSException {
-		// test arguments
-		Assert.assertNotNull(cvsRepositoryLocation);
-		Assert.assertNotNull(cvsLocalRoot);
-		Assert.assertNotNull(command);
-		Assert.assertNotNull(globalOptions);
-		Assert.assertNotNull(localOptions);
-		Assert.assertNotNull(arguments);
-		Assert.assertTrue(cvsLocalRoot.exists());
-
-		// get command instance
-		Command cvsCommand = (Command) commandPool.get(command);
-			
-		// get global options
-		List globals = new ArrayList();
-		for (int i = 0; i < globalOptions.length; i++) {
-			globals.add(new CustomGlobalOption(globalOptions[i]));
-		}
-		GlobalOption[] cvsGlobalOptions = (GlobalOption[]) globals.toArray(new GlobalOption[globals.size()]);
-		
-		// get local options
-		List locals = new ArrayList();
-		for (int i = 0; i < localOptions.length; i++) {
-			String option = localOptions[i];
-			String argument = null;
-			if ((i < localOptions.length - 1) && (localOptions[i + 1].charAt(0) != '-')) {
-				argument = localOptions[++i];
-			}
-			locals.add(new CustomLocalOption(option, argument));
-		}
-		LocalOption[] cvsLocalOptions = (LocalOption[]) locals.toArray(new LocalOption[locals.size()]);
-		
-		// execute command
-		IProgressMonitor monitor = new NullProgressMonitor();
-		Session session = new Session(cvsRepositoryLocation, cvsLocalRoot);
-		try {
-			session.open(monitor);
-			IStatus status = cvsCommand.execute(session,
-				cvsGlobalOptions, cvsLocalOptions, arguments, null, monitor);
-			if (status.getCode() == CVSStatus.SERVER_ERROR) {
-				throw new CVSClientException("Eclipse client returned non-ok status: " + status);
-			}
-		} finally {
-			session.close();
-			monitor.done();
-		}
-	}
-
-	private static class CustomGlobalOption extends GlobalOption {
-		public CustomGlobalOption(String option) {
-			super(option);
-		}
-	}
-
-	private static class CustomLocalOption extends LocalOption {
-		public CustomLocalOption(String option, String arg) {
-			super(option, arg);
-		}
-	}
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/EclipseTest.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/EclipseTest.java
deleted file mode 100644
index 4517fb6..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/EclipseTest.java
+++ /dev/null
@@ -1,683 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.core;
-import java.io.BufferedInputStream;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceVisitor;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.tests.harness.EclipseWorkspaceTest;
-import org.eclipse.team.core.RepositoryProvider;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSStatus;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.CVSTeamProvider;
-import org.eclipse.team.internal.ccvs.core.ICVSFile;
-import org.eclipse.team.internal.ccvs.core.ICVSFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFile;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteResource;
-import org.eclipse.team.internal.ccvs.core.ICVSResource;
-import org.eclipse.team.internal.ccvs.core.client.Command;
-import org.eclipse.team.internal.ccvs.core.client.Import;
-import org.eclipse.team.internal.ccvs.core.client.Session;
-import org.eclipse.team.internal.ccvs.core.client.Update;
-import org.eclipse.team.internal.ccvs.core.client.Command.LocalOption;
-import org.eclipse.team.internal.ccvs.core.connection.CVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.core.connection.CVSServerException;
-import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
-import org.eclipse.team.internal.ccvs.core.resources.RemoteFile;
-import org.eclipse.team.internal.ccvs.core.resources.RemoteFolder;
-import org.eclipse.team.internal.ccvs.core.syncinfo.FolderSyncInfo;
-import org.eclipse.team.internal.ccvs.core.syncinfo.ResourceSyncInfo;
-import org.eclipse.team.internal.ccvs.ui.operations.CVSOperation;
-import org.eclipse.team.internal.ccvs.ui.operations.ITagOperation;
-import org.eclipse.team.internal.ccvs.ui.operations.TagInRepositoryOperation;
-import org.eclipse.team.internal.ccvs.ui.operations.TagOperation;
-
-public class EclipseTest extends EclipseWorkspaceTest {
-
-	protected static IProgressMonitor DEFAULT_MONITOR = new NullProgressMonitor();
-	protected static final int RANDOM_CONTENT_SIZE = 3876;
-				
-	/**
-	 * Constructor for CVSBlackBoxTest.
-	 */
-	public EclipseTest() {
-		super();
-	}
-	public EclipseTest(String name) {
-		super(name);
-	}
-
-	/*
-	 * Get the resources for the given resource names
-	 */
-	public IResource[] getResources(IContainer container, String[] hierarchy) throws CoreException {
-		IResource[] resources = new IResource[hierarchy.length];
-		for (int i=0;i<resources.length;i++) {
-			resources[i] = container.findMember(hierarchy[i]);
-			if (resources[i] == null) {
-				resources[i] = buildResources(container, new String[] {hierarchy[i]})[0];
-			}
-		}
-		return resources;
-	}
-	
-	/**
-	 * Add the resources to an existing container and upload them to CVS
-	 */
-	public IResource[] addResources(IContainer container, String[] hierarchy, boolean checkin) throws CoreException, TeamException {
-		IResource[] newResources = buildResources(container, hierarchy, false);
-		addResources(newResources);
-		if (checkin) commitResources(newResources, IResource.DEPTH_ZERO);
-		return newResources;
-	}
-	
-	protected void addResources(IResource[] newResources) throws TeamException, CoreException {
-		if (newResources.length == 0) return;
-		getProvider(newResources[0]).add(newResources, IResource.DEPTH_ZERO, DEFAULT_MONITOR);
-	}
-	/**
-	 * Perform a CVS edit of the given resources
-	 */
-	public IResource[] editResources(IContainer container, String[] hierarchy) throws CoreException, TeamException {
-		IResource[] resources = getResources(container, hierarchy);
-		getProvider(container).edit(resources, true /* recurse */, true /* notifyServer */, ICVSFile.NO_NOTIFICATION, DEFAULT_MONITOR);
-		assertReadOnly(resources, false /* isReadOnly */, true /* recurse */);
-		return resources;
-	}
-	
-	/**
-	 * Perform a CVS unedit of the given resources
-	 */
-	public IResource[] uneditResources(IContainer container, String[] hierarchy) throws CoreException, TeamException {
-		IResource[] resources = getResources(container, hierarchy);
-		getProvider(container).unedit(resources, true /* recurse */, true/* notifyServer */, DEFAULT_MONITOR);
-		assertReadOnly(resources, true /* isReadOnly */, true /* recurse */);
-		return resources;
-	}
-	
-	public void appendText(IResource resource, String text, boolean prepend) throws CoreException, IOException, CVSException {
-		IFile file = (IFile)resource;
-		InputStream in = file.getContents();
-		ByteArrayOutputStream bos = new ByteArrayOutputStream();
-		try {	
-			if (prepend) {
-				bos.write(text.getBytes());
-			}
-			int i;
-			while ((i = in.read()) != -1) {
-				bos.write(i);
-			}
-			if (!prepend) {
-				bos.write(text.getBytes());
-			}
-		} finally {
-			in.close();
-		}
-		setContentsAndEnsureModified(file, bos.toString());
-	}
-	
-	/**
-	 * Delete the resources from an existing container and the changes to CVS
-	 */
-	public IResource[] changeResources(IContainer container, String[] hierarchy, boolean checkin) throws CoreException, TeamException {
-		List changedResources = new ArrayList(hierarchy.length);
-		for (int i=0;i<hierarchy.length;i++) {
-			IResource resource = container.findMember(hierarchy[i]);
-			if (resource.getType() == IResource.FILE) {
-				changedResources.add(resource);
-				setContentsAndEnsureModified((IFile)resource);
-			}
-		}
-		IResource[] resources = (IResource[])changedResources.toArray(new IResource[changedResources.size()]);
-		if (checkin) commitResources(resources, IResource.DEPTH_ZERO);
-		return resources;
-	}
-	
-	/**
-	 * Delete the resources from an existing container and the changes to CVS
-	 */
-	public IResource[] deleteResources(IContainer container, String[] hierarchy, boolean checkin) throws CoreException, TeamException {
-		IResource[] resources = getResources(container, hierarchy);
-		deleteResources(resources);
-		if (checkin)
-			commitResources(resources, IResource.DEPTH_ZERO);
-		return resources;
-	}
-	
-	protected void deleteResources(IResource[] resources) throws TeamException, CoreException {
-		if (resources.length == 0) return;
-		getProvider(resources[0]).delete(resources, DEFAULT_MONITOR);
-	}
-	/**
-	 * Unmanage the resources
-	 */
-	public void unmanageResources(IContainer container, String[] hierarchy) throws CoreException, TeamException {
-		IResource[] resources = getResources(container, hierarchy);
-		unmanageResources(resources);
-	}
-	
-	protected void unmanageResources(IResource[] resources) throws TeamException, CoreException {
-		for (int i=0;i<resources.length;i++) {
-			CVSWorkspaceRoot.getCVSResourceFor(resources[i]).unmanage(null);
-		}
-	}
-	/**
-	 * Update the resources from an existing container with the changes from the CVS repository
-	 */
-	public IResource[] updateResources(IContainer container, String[] hierarchy, boolean ignoreLocalChanges) throws CoreException, TeamException {
-		IResource[] resources = getResources(container, hierarchy);
-		LocalOption[] options = Command.NO_LOCAL_OPTIONS;
-		if(ignoreLocalChanges) {
-			options = new LocalOption[] {Update.IGNORE_LOCAL_CHANGES};
-		}	
-		getProvider(container).update(resources, options, null, true /*createBackups*/, DEFAULT_MONITOR);
-		return resources;
-	}
-	
-	public void updateProject(IProject project, CVSTag tag, boolean ignoreLocalChanges) throws TeamException {
-		LocalOption[] options = Command.NO_LOCAL_OPTIONS;
-		if(ignoreLocalChanges) {
-			options = new LocalOption[] {Update.IGNORE_LOCAL_CHANGES};
-		}
-		getProvider(project).update(new IResource[] {project}, options, tag, true /*createBackups*/, DEFAULT_MONITOR);
-	}
-	
-	public void commitProject(IProject project) throws TeamException, CoreException {
-		commitResources(project, true);
-	}
-	
-	public void commitResources(IContainer container, boolean deep) throws TeamException, CoreException {
-		commitResources(new IResource[] {container }, deep?IResource.DEPTH_INFINITE:IResource.DEPTH_ZERO);
-	}
-	
-	/**
-	 * Commit the resources from an existing container to the CVS repository
-	 */
-	public IResource[] commitResources(IContainer container, String[] hierarchy) throws CoreException, TeamException {
-		IResource[] resources = getResources(container, hierarchy);
-		commitResources(resources, IResource.DEPTH_ZERO);
-		return resources;
-	}
-	
-	/*
-	 * Commit the provided resources which must all be in the same project
-	 */
-	protected void commitResources(IResource[] resources, int depth) throws TeamException, CoreException {
-		if (resources.length == 0) return;
-		getProvider(resources[0]).checkin(resources, depth, DEFAULT_MONITOR);
-	}
-	/**
-	 * Commit the resources from an existing container to the CVS repository
-	 */
-	public void tagProject(IProject project, CVSTag tag, boolean force) throws TeamException {
-		ITagOperation op = new TagOperation(null, new IResource[] {project});
-		runTag(op, tag, force);
-	}
-	
-	public void tagRemoteResource(ICVSRemoteResource resource, CVSTag tag, boolean force) throws TeamException  {
-		ITagOperation op = new TagInRepositoryOperation(null, new ICVSRemoteResource[] {resource});
-		runTag(op, tag, force);
-	
-	}
-	private void runTag(ITagOperation op, CVSTag tag, boolean force) throws TeamException {
-		if (force) op.moveTag();
-		op.setTag(tag);
-		try {
-			((CVSOperation)op).run(DEFAULT_MONITOR);
-		} catch (InterruptedException e) {
-			fail("Tag interrupted.");
-		} catch (InvocationTargetException e) {
-			if (e.getTargetException() instanceof TeamException)  {
-				throw (TeamException) e.getTargetException();
-			} else  {
-				e.printStackTrace();
-				fail("Unexpected error while tagging");
-			}
-		}
-	}
-	/**
-	 * Return a collection of resources defined by hierarchy. The resources
-	 * are added to the workspace and to the file system. If the manage flag is true, the
-	 * resources are auto-managed, if false, they are left un-managed.
-	 */
-	public IResource[] buildResources(IContainer container, String[] hierarchy, boolean includeContainer) throws CoreException {
-		List resources = new ArrayList(hierarchy.length + 1);
-		resources.addAll(Arrays.asList(buildResources(container, hierarchy)));
-		if (includeContainer)
-			resources.add(container);
-		IResource[] result = (IResource[]) resources.toArray(new IResource[resources.size()]);
-		ensureExistsInWorkspace(result, true);
-		for (int i = 0; i < result.length; i++) {
-			if (result[i].getType() == IResource.FILE)
-				// 3786 bytes is the average size of Eclipse Java files!
-				 ((IFile) result[i]).setContents(getRandomContents(RANDOM_CONTENT_SIZE), true, false, null);
-		}
-		return result;
-	}
-
-	/*
-	 * Checkout a copy of the project into a project with the given postfix
-	 */
-	 protected IProject checkoutCopy(IProject project, String postfix) throws TeamException {
-		// Check the project out under a different name and validate that the results are the same
-		IProject copy = getWorkspace().getRoot().getProject(project.getName() + postfix);
-		CVSWorkspaceRoot.checkout(getRepository(), copy, CVSWorkspaceRoot.getCVSFolderFor(project).getFolderSyncInfo().getRepository(), null, DEFAULT_MONITOR);
-		return copy;
-	 }
-	 
-	 protected IProject checkoutCopy(IProject project, CVSTag tag) throws TeamException {
-		// Check the project out under a different name and validate that the results are the same
-		IProject copy = getWorkspace().getRoot().getProject(project.getName() + tag.getName());
-		CVSWorkspaceRoot.checkout(getRepository(), copy, 
-			CVSWorkspaceRoot.getCVSFolderFor(project).getFolderSyncInfo().getRepository(), 
-			tag, DEFAULT_MONITOR);
-		return copy;
-	 }
-	 
-	 
-	 protected IProject checkoutProject(IProject project, String moduleName, CVSTag tag) throws TeamException {
-	 	if (project == null)
-	 		project = getWorkspace().getRoot().getProject(new Path(moduleName).lastSegment());
-		CVSWorkspaceRoot.checkout(getRepository(), project, moduleName, tag, DEFAULT_MONITOR);
-		return project;
-	 }
-	/*
-	 * This method creates a project with the given resources, imports
-	 * it to CVS and checks it out
-	 */
-	protected IProject createProject(String prefix, String[] resources) throws CoreException, TeamException {
-		IProject project = getUniqueTestProject(prefix);
-		buildResources(project, resources, true);
-		shareProject(project);
-		assertValidCheckout(project);
-		return project;
-	}
-	
-	/*
-	 * Compare two projects by comparing thier providers
-	 */
-	protected void assertEquals(IProject project1, IProject project2) throws CoreException, TeamException, IOException {
-		assertEquals(project1, project2, false, false);
-	}
-	
-	protected void assertEquals(IProject project1, IProject project2, boolean includeTimestamps, boolean includeTags) throws CoreException, TeamException, IOException {
-		assertEquals(getProvider(project1), getProvider(project2), includeTimestamps, includeTags);
-	}
-	
-	/*
-	 * Compare CVS team providers by comparing the cvs resource corresponding to the provider's project
-	 */
-	protected void assertEquals(CVSTeamProvider provider1, CVSTeamProvider provider2, boolean includeTimestamps, boolean includeTags) throws CoreException, TeamException, IOException {
-		assertEquals(Path.EMPTY, CVSWorkspaceRoot.getCVSFolderFor(provider1.getProject()), 
-			CVSWorkspaceRoot.getCVSFolderFor(provider2.getProject()), 
-			includeTimestamps, includeTags);
-	}
-	
-	/*
-	 * Compare resources by casting them to their prpoer type
-	 */
-	protected void assertEquals(IPath parent, ICVSResource resource1, ICVSResource resource2, boolean includeTimestamps, boolean includeTags) throws CoreException, CVSException, IOException {
-		assertEquals("Resource types do not match for " + parent.append(resource1.getName()), resource1.isFolder(), resource2.isFolder());
-		if (!resource1.isFolder())
-			assertEquals(parent, (ICVSFile)resource1, (ICVSFile)resource2, includeTimestamps, includeTags);
-		else 
-			assertEquals(parent, (ICVSFolder)resource1, (ICVSFolder)resource2, includeTimestamps, includeTags);
-	}
-	
-	/*
-	 * Compare folders by comparing their folder sync info and there children
-	 * 
-	 * XXX What about unmanaged children?
-	 */
-	protected void assertEquals(IPath parent, ICVSFolder container1, ICVSFolder container2, boolean includeTimestamps, boolean includeTags) throws CoreException, CVSException, IOException {
-		IPath path = parent.append(container1.getName());
-		assertEquals(path, container1.getFolderSyncInfo(), container2.getFolderSyncInfo(), includeTags);
-		assertTrue("The number of resource in " + path.toString() + " differs", 
-			container1.members(ICVSFolder.ALL_EXISTING_MEMBERS).length 
-			== container2.members(ICVSFolder.ALL_EXISTING_MEMBERS).length);
-		ICVSResource[] resources = container1.members(ICVSFolder.ALL_EXISTING_MEMBERS);
-		for (int i= 0;i <resources.length;i++) {
-			assertEquals(path, resources[i], container2.getChild(resources[i].getName()), includeTimestamps, includeTags);
-		}
-
-	}
-	
-	/*
-	 * Compare the files contents and sync information
-	 */
-	protected void assertEquals(IPath parent, ICVSFile file1, ICVSFile file2, boolean includeTimestamps, boolean includeTags) throws CoreException, CVSException, IOException {
-		if (file1.getName().equals(".project")) return;
-		// Getting the contents first is important as it will fetch the proper sync info if one of the files is a remote handle
-		assertTrue("Contents of " + parent.append(file1.getName()) + " do not match", compareContent(getContents(file1), getContents(file2)));
-		assertEquals(parent.append(file1.getName()), file1.getSyncInfo(), file2.getSyncInfo(), includeTimestamps, includeTags);
-	}
-	
-	/*
-	 * Compare sync info by comparing the entry line generated by the sync info
-	 */
-	protected void assertEquals(IPath path, ResourceSyncInfo info1, ResourceSyncInfo info2, boolean includeTimestamp, boolean includeTag) throws CoreException, CVSException, IOException {
-		if (info1 == null || info2 == null) {
-			assertTrue("Resource Sync info differs for " + path.toString(), info1 == info2);
-			return;
-		}
-		String line1;
-		String line2;
-		if(includeTimestamp) {
-			line1 = info1.getEntryLine();
-			line2 = info2.getEntryLine();
-		} else {
-			line1 = info1.getServerEntryLine(null);
-			line2 = info2.getServerEntryLine(null);
-		}
-		if (!includeTag) {
-			// Strip everything past the last slash
-			line1 = line1.substring(0, line1.lastIndexOf('/'));
-			line2 = line2.substring(0, line2.lastIndexOf('/'));
-		}
-		assertTrue("Resource Sync info differs for " + path.toString(), line1.equals(line2));
-	}
-	
-	/*
-	 * Use the equals of folder sync info unless the tag is not included in which case we just
-	 * compare the root and repository
-	 */
-	protected void assertEquals(IPath path, FolderSyncInfo info1, FolderSyncInfo info2, boolean includeTag) throws CoreException, CVSException, IOException {
-		if (info1 == null && info2 == null) {
-			return;
-		} else if (info1 == null) {
-			fail("Expected " + path.toString() + " not to be a CVS folder but it is.");
-		} else if (info2 == null) {
-			fail("Expected " + path.toString() + " to be a CVS folder but it isn't.");
-		}
-		
-		if (includeTag) {
-			assertTrue("Folder sync info differs for " + path.toString(), info1.equals(info2));
-		} else {
-			assertTrue("Repository Root differs for " + path.toString(), info1.getRoot().equals(info2.getRoot()));
-			assertTrue("Repository relative path differs for " + path.toString(), info1.getRepository().equals(info2.getRepository()));
-		}
-	}
-	
-	
-	/*
-	 * Compare folders by comparing their folder sync info and there children
-	 * 
-	 * XXX What about unmanaged children?
-	 */
-	protected void assertEquals(IPath parent, RemoteFolder container1, RemoteFolder container2, boolean includeTags) throws CoreException, TeamException, IOException {
-		IPath path = parent.append(container1.getName());
-		assertEquals(path, container1.getFolderSyncInfo(), container2.getFolderSyncInfo(), includeTags);
-		ICVSRemoteResource[] members1 = container1.getMembers(DEFAULT_MONITOR);
-		ICVSRemoteResource[] members2 = container2.getMembers(DEFAULT_MONITOR);
-		assertTrue("Number of members differ for " + path, members1.length == members2.length);
-		Map memberMap2 = new HashMap();
-		for (int i= 0;i <members2.length;i++) {
-			memberMap2.put(members2[i].getName(), members2[i]);
-		}
-		for (int i= 0;i <members1.length;i++) {
-			ICVSRemoteResource member2 = (ICVSRemoteResource)memberMap2.get(members1[i].getName());
-			assertNotNull("Resource does not exist: " + path.append(members1[i].getName()) + member2);
-			assertEquals(path, members1[i], member2, includeTags);
-		}
-	}
-	protected void assertEquals(IPath parent, ICVSRemoteResource resource1, ICVSRemoteResource resource2, boolean includeTags) throws CoreException, TeamException, IOException {
-		assertEquals("Resource types do not match for " + parent.append(resource1.getName()), resource1.isContainer(), resource2.isContainer());
-		if (resource1.isContainer())
-			assertEquals(parent, (RemoteFolder)resource1, (RemoteFolder)resource2, includeTags);
-		else 
-			assertEquals(parent, (ICVSFile)resource1, (ICVSFile)resource2, false, includeTags);
-	}
-	
-	
-	/*
-	 * Compare the local project with the remote state by checking out a copy of the project.
-	 */
-	protected void assertLocalStateEqualsRemote(IProject project) throws TeamException, CoreException, IOException {
-		assertEquals(getProvider(project), getProvider(checkoutCopy(project, "-remote")), false, true);
-	}
-	
-	/*
-	 * Compare the local project with the remote state indicated by the given tag by checking out a copy of the project.
-	 */
-	protected void assertLocalStateEqualsRemote(String message, IProject project, CVSTag tag) throws TeamException, CoreException, IOException {
-		assertEquals(getProvider(project), getProvider(checkoutCopy(project, tag)), true, false);
-	}
-	
-	protected void assertHasNoRemote(String prefix, IResource[] resources) throws TeamException {
-		for (int i=0;i<resources.length;i++) 
-			assertHasNoRemote(prefix, resources[i]);
-	}
-	
-	protected void assertHasNoRemote(String prefix, IResource resource) throws TeamException {
-		assertTrue(prefix + " resource should not have a remote", !CVSWorkspaceRoot.hasRemote(resource));
-	}
-	
-	protected void assertHasRemote(String prefix, IResource[] resources) throws TeamException {
-		for (int i=0;i<resources.length;i++) 
-			assertHasRemote(prefix, resources[i]);
-	}
-	
-	protected void assertHasRemote(String prefix, IResource resource) throws TeamException {
-		assertTrue(prefix + " resource should have a remote", CVSWorkspaceRoot.hasRemote(resource));
-	}
-	
-	protected void assertIsModified(String prefix, IResource[] resources) throws TeamException {
-		for (int i=0;i<resources.length;i++) 
-			assertIsModified(prefix, resources[i]);
-	}
-	
-	protected void assertIsModified(String prefix, IResource resource) throws TeamException {
-		// Only check for files as CVS doesn't dirty folders
-		if (resource.getType() == IResource.FILE)
-			assertTrue(prefix + " resource " + resource.getFullPath() + " should be dirty.", ((ICVSFile)getCVSResource(resource)).isModified(null));
-	}
-	
-	protected void assertNotModified(String prefix, IResource[] resources) throws TeamException {
-		for (int i=0;i<resources.length;i++) 
-			assertNotModified(prefix, resources[i]);
-	}
-	
-	protected void assertNotModified(String prefix, IResource resource) throws TeamException {
-		assertTrue(prefix + " resource should be dirty", !((ICVSFile)getCVSResource(resource)).isModified(null));
-	}
-	
-	protected void assertIsIgnored(IResource resource, boolean ignoredState) throws TeamException {
-		assertEquals("Resource " + resource.getFullPath() + " should be ignored but isn't.", 
-						ignoredState, getCVSResource(resource).isIgnored());
-	}
-	
-	protected void assertValidCheckout(IProject project) {
-		// NOTE: Add code to ensure that the project was checkout out properly
-		CVSTeamProvider provider = (CVSTeamProvider)RepositoryProvider.getProvider(project);
-		assertNotNull(provider);
-	}
-
-	protected void assertReadOnly(IResource[] resources, final boolean isReadOnly, final boolean recurse) throws CoreException {
-		for (int i = 0; i < resources.length; i++) {
-			IResource resource = resources[i];
-			resource.accept(new IResourceVisitor() {
-				public boolean visit(IResource resource) throws CoreException {
-					if (resource.getType() == IResource.FILE) {
-						assertEquals(isReadOnly, resource.isReadOnly());
-					}
-					return recurse;
-				}
-			});
-		}
-	}
-	
-	protected InputStream getContents(ICVSFile file) throws CVSException, IOException {
-		if (file instanceof ICVSRemoteFile)
-			return ((RemoteFile)file).getContents(DEFAULT_MONITOR);
-		else
-			return new BufferedInputStream(file.getContents());
-	}
-	
-	/*
-	 * Get the CVS Resource for the given resource
-	 */
-	protected ICVSResource getCVSResource(IResource resource) throws CVSException {
-		return CVSWorkspaceRoot.getCVSResourceFor(resource);
-	}
-	
-	protected IProject getNamedTestProject(String name) throws CoreException {
-		IProject target = getWorkspace().getRoot().getProject(name);
-		if (!target.exists()) {
-			target.create(null);
-			target.open(null);		
-		}
-		assertExistsInFileSystem(target);
-		return target;
-	}
-	protected CVSTeamProvider getProvider(IResource resource) throws TeamException {
-		return (CVSTeamProvider)RepositoryProvider.getProvider(resource.getProject());
-	}
-	protected static InputStream getRandomContents(int sizeAtLeast) {
-		StringBuffer randomStuff = new StringBuffer(sizeAtLeast + 100);
-		while (randomStuff.length() < sizeAtLeast) {
-			randomStuff.append(getRandomSnippet());
-		}
-		return new ByteArrayInputStream(randomStuff.toString().getBytes());
-	}
-	/**
-	 * Return String with some random text to use
-	 * as contents for a file resource.
-	 */
-	public static String getRandomSnippet() {
-		switch ((int) Math.round(Math.random() * 10)) {
-			case 0 :
-				return "este e' o meu conteudo (portuguese)";
-			case 1 :
-				return "Dann brauchen wir aber auch einen deutschen Satz!";
-			case 2 :
-				return "I'll be back";
-			case 3 :
-				return "don't worry, be happy";
-			case 4 :
-				return "there is no imagination for more sentences";
-			case 5 :
-				return "customize yours";
-			case 6 :
-				return "foo";
-			case 7 :
-				return "bar";
-			case 8 :
-				return "foobar";
-			case 9 :
-				return "case 9";
-			default :
-				return "these are my contents";
-		}
-	}
-	protected IProject getUniqueTestProject(String prefix) throws CoreException {
-		// manage and share with the default stream create by this class
-		return getNamedTestProject(prefix + "-" + Long.toString(System.currentTimeMillis()));
-	}
-	
-	protected CVSRepositoryLocation getRepository() {
-		return CVSTestSetup.repository;
-	}
-	protected void importProject(IProject project) throws TeamException {
-		
-		// Create the root folder for the import operation
-		ICVSFolder root = CVSWorkspaceRoot.getCVSFolderFor(project);
-
-		// Perform the import
-		IStatus status;
-		Session s = new Session(getRepository(), root);
-		s.open(DEFAULT_MONITOR);
-		try {
-			status = Command.IMPORT.execute(s,
-				Command.NO_GLOBAL_OPTIONS,
-				new LocalOption[] {Import.makeArgumentOption(Command.MESSAGE_OPTION, "Initial Import")},
-				new String[] { project.getName(), getRepository().getUsername(), "start" },
-				null,
-				DEFAULT_MONITOR);
-		} finally {
-			s.close();
-		}
-
-		if (status.getCode() == CVSStatus.SERVER_ERROR) {
-			throw new CVSServerException(status);
-		}
-	}
-	
-	protected void shareProject(IProject project) throws TeamException, CoreException {
-		CVSWorkspaceRoot.createModule(getRepository(), project, null, DEFAULT_MONITOR);
-		List resourcesToAdd = new ArrayList();
-		IResource[] members = project.members();
-		for (int i = 0; i < members.length; i++) {
-			if ( ! CVSWorkspaceRoot.getCVSResourceFor(members[i]).isIgnored()) {
-				resourcesToAdd.add(members[i]);
-			}
-		}
-		getProvider(project).add((IResource[]) resourcesToAdd.toArray(new IResource[resourcesToAdd.size()]), IResource.DEPTH_INFINITE, DEFAULT_MONITOR);
-		getProvider(project).checkin(new IResource[] {project}, IResource.DEPTH_INFINITE, DEFAULT_MONITOR);
-		// Pause to ensure that future operations happen later than timestamp of committed resources
-		waitMsec(1500);
-	}
-	
-	/**
-	 * Return an input stream with some random text to use
-	 * as contents for a file resource.
-	 */
-	public InputStream getRandomContents() {
-		return getRandomContents(RANDOM_CONTENT_SIZE);
-	}
-	
-	protected void setContentsAndEnsureModified(IFile file) throws CoreException, TeamException {
-		setContentsAndEnsureModified(file, getRandomContents().toString());
-	}
-	
-	protected void setContentsAndEnsureModified(IFile file, String contents) throws CoreException, CVSException {
-		ICVSFile cvsFile = CVSWorkspaceRoot.getCVSFileFor(file);
-		int count = 0;
-		if (contents == null) contents ="";
-		do {
-			file.setContents(new ByteArrayInputStream(contents.getBytes()), false, false, null);
-			assertTrue("Timestamp granularity is too small. Increase test wait factor", count <= CVSTestSetup.WAIT_FACTOR);
-			if (!cvsFile.isModified(null)) {
-				waitMsec(1500);
-				count++;
-			}
-		} while (!cvsFile.isModified(null));
-	}
-	
-	public void waitMsec(int msec) {	
-		try {
-			Thread.sleep(msec);
-		} catch(InterruptedException e) {
-			fail("wait-problem");
-		}
-	}
-}
-
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/ICVSClient.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/ICVSClient.java
deleted file mode 100644
index a89cec5..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/ICVSClient.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.core;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
-
-public interface ICVSClient {
-	public void executeCommand(
-		ICVSRepositoryLocation repositoryLocation, IContainer localRoot, String command,
-		String[] globalOptions, String[] localOptions, String[] arguments)
-		throws CVSException;
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/JUnitTestCase.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/JUnitTestCase.java
deleted file mode 100644
index c8f4ad4..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/JUnitTestCase.java
+++ /dev/null
@@ -1,329 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.core;
-import java.io.BufferedReader;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.PrintStream;
-import java.util.ArrayList;
-import java.util.List;
-
-import junit.awtui.TestRunner;
-import junit.framework.TestCase;
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
-
-/**
- * Base-class to the low level-testcases for the Session.
- * Supplies convinience-methods and default attributes for the testcases.
- * Especally data for a default-connection to the server is stored.
- */
-public abstract class JUnitTestCase extends TestCase {
-	protected static final int RANDOM_CONTENT_SIZE = 10000;
-	protected static final boolean NEWLINE_TEST = false;
-	protected static final String PLATFORM_NEWLINE = System.getProperty("line.separator");
-	protected static final IWorkspaceRoot workspaceRoot = ResourcesPlugin.getWorkspace().getRoot();
-	
-	public static final String[] EMPTY_ARGS = new String[0];
-
-	/**
-	 * Init the options and arguments to standard-values
-	 */
-	public JUnitTestCase(String name) {
-		super(name);
-	}
-
-	/**
-	 * Delete a project/resource form the standard cvs-server
-	 */
-	protected void magicDeleteRemote(String remoteName) throws CVSException {
-		magicDeleteRemote(CVSTestSetup.repository, remoteName);
-	}
-
-	/**
-	 * Delete a project/resource form the specified cvs-server
-	 */
-	protected static void magicDeleteRemote(ICVSRepositoryLocation location, String remoteName)
-		throws CVSException {
-		CVSTestSetup.executeRemoteCommand(location, "rm -rf " + 
-			new Path(location.getRootDirectory()).append(remoteName).toString());
-	}
-
-	/**
-	 * Sends the project to the standard cvs-server so that it contains the resources
-	 * described in createResources.  The files have random content.
-	 *
-	 * @param projectName the name of the project to import
-	 * @param createResources e.g. new String[]{"a.txt","f1/b.txt","f1/c.txt","f2/d.txt"}
-	 */
-	protected void magicSetUpRepo(String projectName, String[] createResources)
-		throws  IOException, CoreException, CVSException {
-		magicSetUpRepo(CVSTestSetup.repository, projectName, createResources);
-	}
-	
-	/**
-	 * Sends the project to the specified cvs-server so that it contains the resources
-	 * described in createResources.  The files have random content.
-	 * 
-	 * @param location the CVS repository location
-	 * @param projectName the name of the project to import
-	 * @param createResources e.g. new String[]{"a.txt","f1/b.txt","f1/c.txt","f2/d.txt"}
-	 */
-	protected static void magicSetUpRepo(ICVSRepositoryLocation location, String projectName,
-		String[] createResources) throws IOException, CoreException, CVSException {
-		IProject projectRoot = workspaceRoot.getProject(projectName + "-setup-tmp");
-		mkdirs(projectRoot);
-		createRandomFile(projectRoot, createResources);
-		magicDeleteRemote(location, projectName);
-		
-		String[] lOptions = new String[]{"-m","msg"};
-		String[] args = new String[]{projectName,"a","b"};
-	
-		EclipseCVSClient.execute(location, CVSWorkspaceRoot.getCVSFolderFor(projectRoot),
-			"import", EMPTY_ARGS, lOptions, args);
-		projectRoot.delete(false /*force*/, null);
-	}
-	
-	/**
-	 *  Compare Arrays and find the first different element
-	 */
-	protected static void assertEqualsArrays(Object[] obArr1, Object[] obArr2) {
-		
-		assertEquals("Called assertEqualsArrays with null on one side", obArr1 == null,obArr2 == null);
-		if (obArr1 == null) {
-			return;
-		}
-
-		for (int i=0; i<Math.min(obArr1.length,obArr2.length); i++) {
-			assertEquals("At Element " + i + " of the array",obArr1[i],obArr2[i]);
-		}
-		
-		// If the Arrays are different in length, look for the first
-		// not existing element and compare it to the existing in the
-		// other array
-		if (obArr1.length > obArr2.length) {
-			assertEquals("Arrays of different length",obArr1[obArr2.length],null);
-			return;
-		}
-	
-		if (obArr1.length < obArr2.length) {
-			assertEquals("Arrays of different length",obArr2[obArr1.length],null);
-			return;
-		}
-			
-	}
-	
-	/**
-	 * Write text lines to file from an array of strings.
-	 */
-	protected static void writeToFile(IFile file, String[] contents)
-		throws IOException, CoreException {
-		ByteArrayOutputStream bos = new ByteArrayOutputStream();
-		PrintStream os = new PrintStream(bos);
-		try {
-			for (int i = 0; i < contents.length; i++) {
-				os.println(contents[i]);
-			}
-			ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
-			if (file.exists()) {
-				file.setContents(bis, false /*force*/, true /*keepHistory*/, null);
-			} else {
-				mkdirs(file.getParent());
-				file.create(bis, false /*force*/, null);
-			}
-		} finally {
-			os.close();
-		}
-	}
-	
-	/**
-	 * Read text lines from file into an array of strings.
-	 */
-	protected static String[] readFromFile(IFile file)
-		throws IOException, CoreException {
-		if (! file.exists()) return null;
-		BufferedReader reader = new BufferedReader(new InputStreamReader(file.getContents()));
-		List fileContentStore = new ArrayList();
-		try {
-			String line;
-			while ((line = reader.readLine()) != null) {
-				fileContentStore.add(line);
-			}			
-		} finally {
-			reader.close();
-		}
-		return (String[]) fileContentStore.toArray(new String[fileContentStore.size()]);
-	}
-
-	/**
-	 * Append text files to file from an array of strings, create new file if it
-	 * does not exist yet.
-	 */
-	protected static void appendToFile(IFile file, String[] contents)
-		throws IOException, CoreException {
-		String[] oldContents = readFromFile(file);
-		String[] newContents;
-		if (oldContents == null) {
-			newContents = contents;
-		} else {
-			newContents = new String[oldContents.length + contents.length];
-			System.arraycopy(oldContents, 0, newContents, 0, oldContents.length);
-			System.arraycopy(contents, 0, newContents, oldContents.length, contents.length);
-		}
-		writeToFile(file, newContents);
-	}
-	
-	/**
-	 * Pre-Append text files to file from an array of strings, create new file if it
-	 * does not exist yet.
-	 */
-	protected static void prefixToFile(IFile file, String[] contents)
-		throws IOException, CoreException {
-		String[] oldContents = readFromFile(file);
-		String[] newContents;
-		if (oldContents == null) {
-			newContents = contents;
-		} else {
-			newContents = new String[oldContents.length + contents.length];
-			System.arraycopy(contents, 0, newContents, 0, contents.length);
-			System.arraycopy(oldContents, 0, newContents, contents.length, oldContents.length);
-		}
-		writeToFile(file, newContents);
-	}
-	
-	/**
-	 * genertates Random content meand to be written in a File
-	 */
-	protected static String createRandomContent() {
-		
-		StringBuffer content = new StringBuffer();
-		int contentSize;
-		
-		content.append("Random file generated for test" + PLATFORM_NEWLINE);
-		
-		contentSize = (int) Math.round(RANDOM_CONTENT_SIZE * 2 * Math.random());
-		for (int i=0; i<contentSize; i++) {
-			
-			if (Math.random()>0.99) {
-				content.append(PLATFORM_NEWLINE);
-			}
-
-			if (Math.random()>0.99) {
-				content.append("\n");
-			}
-			
-			if (NEWLINE_TEST) {
-				if (Math.random()>0.99) {
-					content.append("\n\r");
-				}
-				if (Math.random()>0.99) {
-					content.append('\r');
-				}
-				if (Math.random()>0.99) {
-					content.append("\r\n");
-				}
-				if (Math.random()>0.99) {
-					content.append("\n");
-				}
-				if (Math.random()>0.99) {
-					content.append("\n\n");
-				}
-				if (Math.random()>0.99) {
-					content.append("\r\r");
-				}
-			}
-			
-			content.append((char)('\u0021' + Math.round(60 * Math.random())));
-		}
-		
-		return content.toString();
-	}
-	
-	/**
-	 * Creates a folder (and its parents if needed).
-	 */
-	protected static void mkdirs(IContainer container) throws CoreException {
-		if (container.getType() == IResource.PROJECT) {
-			IProject project = (IProject) container;
-			if (! project.exists()) {
-				project.create(null);
-			}
-			project.open(null);
-		} else if (container.getType() == IResource.FOLDER) {
-			IFolder folder = (IFolder) container;
-			if (! folder.exists()) {
-				mkdirs(folder.getParent());
-				folder.create(false /*force*/, true /*local*/, null);
-			}
-		}
-	}
-
-	/**
-	 * Creates the file with random content, and all the folders on the
-	 * way to there.
-	 */
-	private static void createRandomFile(IFile file)
-		throws IOException, CoreException {
-		mkdirs(file.getParent());
-		writeToFile(file, new String[] { createRandomContent() });
-	}
-		
-	/**
-	 * Build the given fileStructure, all files are going to have
-	 * sample content, all folders on the way are created.
-	 */
-	protected static void createRandomFile(IContainer parent, String[] fileNameArray) 
-		throws IOException, CoreException {
-		for (int i = 0; i < fileNameArray.length; i++) {
-			IFile file = parent.getFile(new Path(fileNameArray[i]));
-			createRandomFile(file);
-		}
-	}
-
-	/**
-	 * wait milliseconds to continou the execution
-	 */
-	public static void waitMsec(int msec) {	
-		try {
-			int wait = CVSTestSetup.WAIT_FACTOR * msec;
-			long start = System.currentTimeMillis();
-			Thread.sleep(wait);
-			long end = System.currentTimeMillis();
-			// Allow a 100 ms error in waiting
-			assertTrue("Error in thread class. Did not wait long enough", (end - start) > (wait - 100));
-		} catch(InterruptedException e) {
-			fail("wait-problem");
-		}
-	}
-	
-	/**
-	 * Call this method from the main-method of your test-case.
-	 * It initialises some required parameter and runs the testcase.
-	 */
-	protected static void run(Class test) {
-		// XXX is this property used anywhere?
-		System.setProperty("eclipse.cvs.standalone", "true");
-		TestRunner.run(test);
-	}
-}
-
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/TestConnection.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/TestConnection.java
deleted file mode 100644
index 682c9b6..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/TestConnection.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.core;
-
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.core.IServerConnection;
-import org.eclipse.team.internal.ccvs.core.connection.CVSAuthenticationException;
-
-/**
- * @author Administrator
- *
- * To change this generated comment go to 
- * Window>Preferences>Java>Code Generation>Code and Comments
- */
-public class TestConnection implements IServerConnection {
-
-	public static TestConnection currentConnection;
-	
-	public static List previousLines;
-	public static StringBuffer currentLine;
-	
-	
-	private ByteArrayInputStream serverResponse;
-	
-	private static final String VALID_SERVER_REQUESTS = "Valid-requests Root Valid-responses valid-requests Repository Directory Max-dotdot Static-directory Sticky Checkin-prog Update-prog Entry Kopt Checkin-time Modified Is-modified UseUnchanged Unchanged Notify Questionable Case Argument Argumentx Global_option Gzip-stream wrapper-sendme-rcsOptions Set Kerberos-encrypt Gssapi-encrypt Gssapi-authenticate expand-modules ci co update diff log rlog add remove update-patches gzip-file-contents status rdiff tag rtag import admin export history release watch-on watch-off watch-add watch-remove watchers editors init annotate rannotate noop version";
-
-	public static IServerConnection createConnection(ICVSRepositoryLocation location, String password) {
-		currentConnection = new TestConnection();
-		return currentConnection;
-	}
-	
-	public static String getLastLine() {
-		if (previousLines.isEmpty()) return null;
-		return (String)previousLines.get(previousLines.size() - 1);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.team.internal.ccvs.core.IServerConnection#open(org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public void open(IProgressMonitor monitor) throws IOException, CVSAuthenticationException {
-		resetStreams();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.team.internal.ccvs.core.IServerConnection#close()
-	 */
-	public void close() throws IOException {
-		resetStreams();
-	}
-
-	/**
-	 * 
-	 */
-	private void resetStreams() {
-		currentLine = new StringBuffer();
-		previousLines = new ArrayList();
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.team.internal.ccvs.core.IServerConnection#getInputStream()
-	 */
-	public InputStream getInputStream() {
-		// TODO Auto-generated method stub
-		return new InputStream() {
-			public int read() throws IOException {
-				if (serverResponse == null) {
-					throw new IOException("Not prepared to make a response");
-				} else {
-					return serverResponse.read();
-				}	
-			}
-		};
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.team.internal.ccvs.core.IServerConnection#getOutputStream()
-	 */
-	public OutputStream getOutputStream() {
-		return new OutputStream() {
-			public void write(int output) throws IOException {
-				byte b = (byte)output;
-				if (b == '\n') {
-					String sentLine = currentLine.toString();
-					previousLines.add(sentLine);
-					currentLine = new StringBuffer();
-					respondToSentLine(sentLine);
-				} else {
-					currentLine.append((char)b);
-				}
-			}
-		};
-	}
-
-	/**
-	 * @param sentLine
-	 */
-	protected void respondToSentLine(String sentLine) {
-		if (sentLine.equals("valid-requests")) {
-			serverResponse = new ByteArrayInputStream((VALID_SERVER_REQUESTS + "\nok\n").getBytes());
-		}
-	}
-
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/TestConnectionMethod.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/TestConnectionMethod.java
deleted file mode 100644
index d64a946..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/TestConnectionMethod.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.core;
-
-import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.core.IConnectionMethod;
-import org.eclipse.team.internal.ccvs.core.IServerConnection;
-
-/**
- * @author Administrator
- *
- * To change this generated comment go to 
- * Window>Preferences>Java>Code Generation>Code and Comments
- */
-public class TestConnectionMethod implements IConnectionMethod {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.team.internal.ccvs.core.IConnectionMethod#getName()
-	 */
-	public String getName() {
-		return "test";
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.team.internal.ccvs.core.IConnectionMethod#createConnection(org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation, java.lang.String)
-	 */
-	public IServerConnection createConnection(ICVSRepositoryLocation location, String password) {
-		return TestConnection.createConnection(location, password);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.team.internal.ccvs.core.IConnectionMethod#disconnect(org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation)
-	 */
-	public void disconnect(ICVSRepositoryLocation location) {
-		// Nothing need to be done
-	}
-
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/compatible/AllTestsCompatibility.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/compatible/AllTestsCompatibility.java
deleted file mode 100644
index 12d4bc8..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/compatible/AllTestsCompatibility.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.core.compatible;
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-public class AllTestsCompatibility extends TestSuite {
-			
-	public static Test suite() {	
-		TestSuite suite = new TestSuite();
-		suite.addTest(BasicTest.suite());
-		suite.addTest(ConflictTest.suite());
-		suite.addTest(ModuleTest.suite());
-    	return new CompatibleTestSetup(suite);
-	}	
-	
-	public AllTestsCompatibility(String name) {
-		super(name);
-	}
-
-	public AllTestsCompatibility() {
-		super();
-	}
-}
-
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/compatible/BasicTest.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/compatible/BasicTest.java
deleted file mode 100644
index 2072413..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/compatible/BasicTest.java
+++ /dev/null
@@ -1,496 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.core.compatible;
-import java.util.Date;
-import java.util.GregorianCalendar;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-import org.eclipse.team.tests.ccvs.core.JUnitTestCase;
-
-public class BasicTest extends JUnitTestCase {
-	SameResultEnv env1;
-	SameResultEnv env2;
-	
-	public BasicTest(String arg) {
-		super(arg);
-		env1 = new SameResultEnv(arg + "-checkout1");
-		env2 = new SameResultEnv(arg + "-checkout2");
-	}
-	
-	public BasicTest() {
-		this("BasicTest");
-	}
-
-	public static void main(String[] args) {	
-		run(BasicTest.class);
-	}
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(BasicTest.class);
-		return new CompatibleTestSetup(suite);
-		//return new CompatibleTestSetup(new BasicTest("testReadOnly"));
-	}
-	public void setUp() throws Exception {
-		env1.setUp();
-		env2.setUp();
-
-		// Set the project to the content we need ...
-		env1.magicSetUpRepo("proj2",new String[]{"a.txt","f1/b.txt","f1/c.txt"});
-		env2.deleteFile("proj2");
-	}
-	
-	public void tearDown() throws Exception {
-		env1.tearDown();
-		env2.tearDown();
-	}
-	
-	public void testAdd() throws Exception {
-		
-		env1.execute("co",EMPTY_ARGS,new String[]{"proj2"});
-		env1.writeToFile("proj2/d.txt",new String[]{"The file to be added","next"});
-		env1.mkdirs("proj2/f2/f3");
-		env1.mkdirs("proj2/f4/f5");
-		env1.writeToFile("proj2/f4/f5/e.txt", new String[]{"Another file to be added","next"});
-		
-		env1.execute("add",EMPTY_ARGS,new String[]{"d.txt"},"proj2");
-		env1.execute("add",EMPTY_ARGS,new String[]{"f2","f2/f3"},"proj2");
-		env1.execute("add",EMPTY_ARGS,new String[]{"f4"},"proj2");
-		env1.execute("add",EMPTY_ARGS,new String[]{"f4/f5"},"proj2");
-		env1.execute("add",EMPTY_ARGS,new String[]{"f4/f5/e.txt"},"proj2");
-		env1.execute("ci",new String[]{"-m","TestMessage"},new String[]{"proj2"});
-
-		// Check the stuff out somewhere else to acctually check, that
-		// the file has been accepted
-		env2.execute("co",EMPTY_ARGS,new String[]{"proj2"});		
-	}
-
-	public void testAddUpdate() throws Exception {
-		
-		env1.execute("co",EMPTY_ARGS,new String[]{"proj2"});
-		env2.execute("co",EMPTY_ARGS,new String[]{"proj2"});		
-
-		env1.writeToFile("proj2/d.txt",new String[]{"The file to be added","next"});
-		env1.mkdirs("proj2/f2/f3");
-		env1.mkdirs("proj2/f4/f5");
-		env1.writeToFile("proj2/f4/f5/e.txt", new String[]{"Another file to be added","next"});
-		
-		env1.execute("add",EMPTY_ARGS,new String[]{"d.txt"},"proj2");
-		env1.execute("add",EMPTY_ARGS,new String[]{"f2","f2/f3"},"proj2");
-		env1.execute("add",EMPTY_ARGS,new String[]{"f4"},"proj2");
-		env1.execute("add",EMPTY_ARGS,new String[]{"f4/f5"},"proj2");
-		env1.execute("add",EMPTY_ARGS,new String[]{"f4/f5/e.txt"},"proj2");
-		env1.execute("ci",new String[]{"-m","TestMessage"},new String[]{"proj2"});
-
-		env2.execute("update",EMPTY_ARGS,new String[]{"proj2"});		
-
-	}
-
-	public void testRemove() throws Exception {
-		
-		env1.execute("co",EMPTY_ARGS,new String[]{"proj2"});
-		env1.deleteFile("proj2/a.txt");
-		env1.deleteFile("proj2/f1/c.txt");
-		
-		env1.execute("remove",EMPTY_ARGS,new String[]{"a.txt"},"proj2");
-		env1.execute("remove",EMPTY_ARGS,new String[]{"f1/c.txt"},"proj2");
-		env1.execute("ci",new String[]{"-m","TestMessage"},new String[]{"proj2"});
-
-		// Check the stuff out somewhere else to acctually check, that
-		// the file has been accepted
-		env2.execute("co",EMPTY_ARGS,new String[]{"proj2"});		
-	}
-	
-	public void testRemoveRecusive() throws Exception {
-		
-		env1.execute("co",EMPTY_ARGS,new String[]{"proj2"});
-		env2.execute("co",EMPTY_ARGS,new String[]{"proj2"});		
-
-		env1.deleteFile("proj2/a.txt");
-		env1.deleteFile("proj2/f1/c.txt");
-		
-		env1.execute("remove",EMPTY_ARGS,new String[0],"proj2");
-		env1.execute("ci",new String[]{"-m","TestMessage"},new String[]{"proj2"});
-
-		// Check the stuff out somewhere else to acctually check, that
-		// the file has been accepted
-		env2.execute("update",EMPTY_ARGS,new String[]{"proj2"});		
-	}
-	
-	public void testRoundRewrite() throws Exception {
-				
-		// Download content in two locations
-		env1.execute("co",EMPTY_ARGS,new String[]{"proj2"},"");
-		env2.execute("co",EMPTY_ARGS,new String[]{"proj2"},"");
-		
-		// change the file "proj1/folder1/c.txt" in env1 check it in
-		// on the server
-		env1.appendToFile("proj2/f1/c.txt", new String[] { "AppendIt" });
-		env1.execute("ci",new String[]{"-m","TestMessage"},new String[]{"proj2"},"");
-		
-		// assure that the file is different in env1 and env2
-		// try {
-		//	assertEqualsArrays(env1.readFromFile("proj2/f1/c.txt"),
-		//				   	   env2.readFromFile("proj2/f1/c.txt"));
-		//	throw new IllegalArgumentException("This is a failed Assertion");
-		// } catch (AssertionFailedError e) {}
-		
-		// update env2 and make sure the changes are there
-		env2.execute("update",EMPTY_ARGS,new String[]{"proj2"},"");
-		// assertEqualsArrays(env1.readFromFile("proj2/f1/c.txt"),
-		//				   env2.readFromFile("proj2/f1/c.txt"));
-	}
-	
-	public void testUpdateMinusN() throws Exception {	
-		String[] fileContent1;
-		
-		fileContent1 = new String[]{"RandomNumber", Math.random() + ""};
-		
-		env1.execute("co",EMPTY_ARGS,new String[]{"proj2"});
-		env2.execute("co",EMPTY_ARGS,new String[]{"proj2"});
-		
-		env1.writeToFile("proj1/folder1/c.txt",fileContent1);
-		
-		env1.execute("ci",new String[]{"-n"},new String[]{"-m","TestMessage"},new String[]{"proj2"},"");
-		env2.execute("update",EMPTY_ARGS,new String[]{"proj2"});		
-	}
-	
-	public void testStatus() throws Exception {
-		
-		env1.execute("co",EMPTY_ARGS,new String[]{"proj2"});
-		env1.execute("status",EMPTY_ARGS,new String[]{"proj2"});
-		
-		env1.deleteFile("proj2/a.txt");
-		env1.deleteFile("proj2/f1/c.txt");
-		env1.appendToFile("proj2/f1/b.txt",new String[] { "AppendIt" });
-
-		env1.execute("status",EMPTY_ARGS,new String[]{"proj2"});
-		env1.execute("status",EMPTY_ARGS,new String[0],"proj2");
-
-		env1.createRandomFile("proj2/d.txt");
-
-		env1.execute("status",EMPTY_ARGS,new String[0],"proj2");
-		env1.execute("status",EMPTY_ARGS,new String[]{"f1/b.txt"},"proj2");
-		// env1.execute("status",localOptions,new String[]{"d.txt"},"proj2");
-	}
-
-	public void testLog() throws Exception {
-		
-		env1.execute("co",EMPTY_ARGS,new String[]{"proj2"});
-		env1.execute("log",EMPTY_ARGS,new String[]{"proj2"});
-		
-		env1.deleteFile("proj2/a.txt");
-		env1.deleteFile("proj2/f1/c.txt");
-		env1.appendToFile("proj2/f1/b.txt",new String[] { "AppendIt" });
-
-		env1.execute("log",EMPTY_ARGS,new String[]{"proj2"});
-		env1.execute("log",EMPTY_ARGS,new String[0],"proj2");
-
-		env1.createRandomFile("proj2/d.txt");
-
-		env1.execute("log",EMPTY_ARGS,new String[0],"proj2");
-		env1.execute("log",EMPTY_ARGS,new String[]{"f1/b.txt"},"proj2");
-	
-	}	
-	
-	public void testBranchTag() throws Exception {
-		
-		env1.execute("co",EMPTY_ARGS,new String[]{"proj2"});
-		env1.execute("tag",new String[]{"-b"},new String[]{"tag1","proj2"});
-		
-		env1.deleteFile("proj2/a.txt");
-		env1.deleteFile("proj2/f1/c.txt");
-		env1.appendToFile("proj2/f1/b.txt",new String[] { "AppendIt" });
-
-		env1.execute("tag",new String[]{"-b"},new String[]{"tag2","proj2"});
-
-		env1.createRandomFile("proj2/d.txt");
-		
-		env1.deleteFile("proj2");
-		
-		// Try an commit and an add in the two different streams
-		env1.execute("co",new String[]{"-r","tag1"},new String[]{"proj2"});
-		env1.appendToFile("proj2/f1/b.txt", new String[] { "AppendItTwo" });
-		env1.createRandomFile("proj2/d.txt");
-		env1.execute("add",new String[0],new String[]{"d.txt"},"proj2");
-		env1.execute("ci",new String[]{"-m","branch"},new String[]{"proj2"});
-		env1.deleteFile("proj2");
-		env1.execute("co",new String[]{"-r","tag1"},new String[]{"proj2"});
-
-		env2.execute("co",new String[]{"-r","tag2"},new String[]{"proj2"});
-		env2.appendToFile("proj2/f1/b.txt", new String[] { "AppendItThree" });
-		env2.createRandomFile("proj2/d.txt");
-		env2.execute("add",new String[0],new String[]{"d.txt"},"proj2");
-		env2.execute("ci",new String[]{"-m","branch"},new String[]{"proj2"});	
-		env2.deleteFile("proj2");
-		env2.execute("co",new String[]{"-r","tag2"},new String[]{"proj2"});
-	}
-		
-	public void testBranchingWithLocalChanges() throws Exception {
-		// Try to branch of a workspace with local changes
-		env1.execute("co",EMPTY_ARGS,new String[]{"proj2"});
-		JUnitTestCase.waitMsec(1500);
-		env1.appendToFile("proj2/f1/b.txt",new String[] { "AppendIt" });
-		env1.execute("tag",new String[]{"-b"},new String[]{"branch-with-changes","proj2"});
-		env1.execute("update",new String[]{"-r", "branch-with-changes"},new String[]{"proj2"});
-	}
-
-	public void testTag() throws Exception {
-		
-		env1.execute("co",EMPTY_ARGS,new String[]{"proj2"});
-		env1.execute("tag",EMPTY_ARGS,new String[]{"tag1","proj2"});
-		
-		env1.deleteFile("proj2/a.txt");
-		env1.deleteFile("proj2/f1/c.txt");
-		env1.appendToFile("proj2/f1/b.txt",new String[] { "AppendIt" });
-
-		env1.execute("tag",EMPTY_ARGS,new String[]{"tag2","proj2"});
-		env1.execute("tag",EMPTY_ARGS,new String[]{"tag2"},"proj2");
-
-		env1.createRandomFile("proj2/d.txt");
-
-		env1.execute("tag",EMPTY_ARGS,new String[]{"tag3"},"proj2");
-		env1.execute("tag",EMPTY_ARGS,new String[]{"tag3","f1/b.txt"},"proj2");
-		
-		env1.deleteFile("proj2");
-		env1.execute("co",new String[]{"-r","tag1"},new String[]{"proj2"});
-		env1.deleteFile("proj2");
-		env1.execute("co",new String[]{"-r","tag2"},new String[]{"proj2"});
-		env1.deleteFile("proj2");
-		env1.execute("co",new String[]{"-r","tag3"},new String[]{"proj2"});
-		
-		// env1.execute("tag",localOptions,new String[]{"d.txt"},"proj2");
-		
-		env1.execute("update", new String[]{"-r","tag1"}, new String[]{"proj2"});
-		env1.execute("update", new String[]{"-r","tag2"}, new String[]{"proj2"});
-		env1.execute("update", new String[]{"-r","tag3"}, new String[]{"proj2"});
-		env1.execute("update", new String[]{"-A"}, new String[]{"proj2"});
-	}
-	
-	public void testRTag() throws Exception {
-		
-		// Checkout and tag the project
-		env1.execute("co",EMPTY_ARGS,new String[]{"proj2"});
-		env1.execute("tag",EMPTY_ARGS,new String[]{"tag1","proj2"});
-		env1.deleteFile("proj2");
-		
-		// Use rtag to tag the above tag as both a version and a branch
-		env1.execute("rtag",new String[]{"-r", "tag1"},new String[]{"rtag1","proj2"});
-		env1.execute("rtag",new String[]{"-b", "-r", "tag1"},new String[]{"btag1","proj2"});
-		
-		// Checkout the version and branch
-		env1.deleteFile("proj2");
-		env1.execute("co",new String[]{"-r","rtag1"},new String[]{"proj2"});
-		env1.deleteFile("proj2");
-		env1.execute("co",new String[]{"-r","btag1"},new String[]{"proj2"});
-	}
-	
-	public void testPrune() throws Exception {
-				
-		// Download content in two locations
-		env1.execute("co",EMPTY_ARGS,new String[]{"proj2"},"");
-		env2.execute("co",EMPTY_ARGS,new String[]{"proj2"},"");
-		
-		// change the file "proj1/folder1/c.txt" in env1 check it in
-		// on the server
-		env1.deleteFile("proj2/f1/b.txt");
-		env1.deleteFile("proj2/f1/c.txt");
-		env1.execute("remove",EMPTY_ARGS,new String[0],"proj2");
-		
-		env1.execute("ci",new String[]{"-m","TestMessage"},new String[]{"proj2"},"");
-		env1.execute("update",new String[]{"-P"},new String[]{"proj2"},"");
-		
-		// update env2 and make sure the changes are there
-		env2.execute("update",new String[]{"-P"},new String[]{"proj2"},"");
-
-	}
-	
-	public void testPrune2() throws Exception {
-				
-		// Download content in two locations
-		env1.execute("co",EMPTY_ARGS,new String[]{"proj2"},"");
-		env2.execute("co",EMPTY_ARGS,new String[]{"proj2"},"");
-		
-		// change the file "proj1/folder1/c.txt" in env1 check it in
-		// on the server
-		env1.deleteFile("proj2/f1/b.txt");
-		env1.deleteFile("proj2/f1/c.txt");
-		env1.execute("remove",EMPTY_ARGS,new String[0],"proj2");
-		
-		env1.execute("ci",new String[]{"-m","TestMessage"},new String[]{"proj2"},"");
-		env1.execute("update",new String[]{"-P"},new String[]{},"proj2");
-		
-		// update env2 and make sure the changes are there
-		env2.execute("update",new String[]{"-P"},new String[]{},"proj2");
-
-	}
-	
-	public void testAdmin() throws Exception {
-				
-		env1.execute("co",EMPTY_ARGS,new String[]{"proj2"},"");
-		
-		env1.execute("admin",new String[]{"-kb"},new String[]{"proj2/f1/b.txt"},"");
-		env1.execute("update",EMPTY_ARGS,new String[]{"proj2"},"");
-		
-		env2.execute("co",EMPTY_ARGS,new String[]{"proj2"},"");
-	}
-
-	public void testDiff() throws Exception {
-		
-		env1.execute("co",EMPTY_ARGS,new String[]{"proj2"});
-		env1.execute("diff",EMPTY_ARGS,new String[]{"proj2"});
-		
-		env1.setIgnoreExceptions(true);
-		
-		env1.appendToFile("proj2/f1/c.txt",new String[] {"AppendIt2" });
-		env1.appendToFile("proj2/f1/b.txt",new String[] { "AppendIt" });
-		
-		env1.execute("diff",EMPTY_ARGS,new String[]{"proj2"});
-		env1.execute("diff",EMPTY_ARGS,new String[0],"proj2");
-		
-		env1.createRandomFile("proj2/d.txt");
-
-		env1.execute("diff",EMPTY_ARGS,new String[0],"proj2");
-		env1.execute("diff",EMPTY_ARGS,new String[]{"f1/b.txt"},"proj2");
-		// env1.execute("diff",localOptions,new String[]{"d.txt"},"proj2");
-
-		env1.setIgnoreExceptions(false);
-	}
-
-	public void testReadOnly() throws Exception {
-		
-		// Checkout a read-only copy
-		env1.execute("co",new String[]{"-r"},EMPTY_ARGS,new String[]{"proj2"},"");
-		// Checkout and modify a writable copy
-		env2.execute("co",new String[]{},EMPTY_ARGS,new String[]{"proj2"},"");
-		env2.appendToFile("proj2/f1/c.txt",new String[] {"AppendIt2" });
-		// Update the read only copy
-		env1.execute("update",new String[] {"-r"},EMPTY_ARGS,new String[]{"proj2"},"");
-		
-		// Update the read-only copy to writable
-		env1.execute("update",new String[] {},EMPTY_ARGS,new String[]{"proj2"},"");
-	}
-	
-	public void testQuestionables() throws Exception {			
-		env1.execute("co",EMPTY_ARGS,new String[]{"proj2"},"");
-		env1.writeToFile("proj2/f2/d.txt", new String[]{"content"});
-		env1.writeToFile("proj2/f3/f4/d.txt", new String[]{"content"});	
-		env1.writeToFile("proj2/f5/f6/f7/d.txt", new String[]{"content"});	
-		env1.execute("add",new String[0],new String[]{"f3"},"proj2");
-		env1.execute("add",new String[0],new String[]{"f3/f4"},"proj2");
-		env1.execute("update",new String[0],new String[]{"."},"proj2");
-	}
-	
-	public void testImportWrappers() throws Exception {
-		// Make the project empty
-		env1.magicSetUpRepo("proj3",new String[]{"NoImportant.txt"});
-		env2.deleteFile("proj3");
-		
-		// Create resouces and import them with the 
-		// special wrapper
-		env1.createRandomFile(new String[]{"a.txt","a.class","a.xxx"},"proj3");
-		env1.execute("import",
-					new String[]{"-W","*.txt -k 'kv'","-W","*.class -k 'b'","-I","*.xxx","-m","msg"},
-					new String[]{"proj3","aTag","bTag"},
-					"proj3");
-		
-		// download the server-version	
-		env2.execute("co",EMPTY_ARGS,new String[]{"proj3"},"");
-	}
-	
-	public void testImportIgnores() throws Exception {
-		// Make the project empty
-		env1.magicSetUpRepo("proj3",new String[]{"NoImportant.txt"});
-		env2.deleteFile("proj3");
-		
-		// Create resouces and import them with the 
-		// special wrapper
-		env1.createRandomFile(new String[]{"a.txt","a.class","a.xxx"},"proj3");
-		env1.execute("import",
-					new String[]{"-I","*.xxx","-m","msg"},
-					new String[]{"proj3","aTag","bTag"},
-					"proj3");
-		
-		// download the server-version	
-		env2.execute("co",EMPTY_ARGS,new String[]{"proj3"},"");
-	}
-	
-	private String toGMTString(Date d) {
-		return d.toGMTString();
-	}
-	
-	public void testDate() throws Exception {
-		
-		// IMPOTANT:
-		// Do not make tests with relative dates, because the times coming back form the server will 
-		// sometimes differ from the reference-client to the eclipse-client due to the time-delay in calling
-
-		Date beforeChange;
-		Date firstChange;
-		Date secondChange;
-		
-		env1.execute("co",new String[0],new String[]{"proj2"});
-		
-		// Change the file "a.txt" and record the times you are doing that at
-		waitMsec(1100); // here we wait for the import to finish
-		beforeChange = GregorianCalendar.getInstance().getTime();
-
-		waitMsec(1100);
-	
-		env1.appendToFile("proj2/a.txt",new String[] { "AppendIt" });
-		env1.execute("ci",new String[]{"-m","msg"},new String[]{"proj2"});
-		firstChange = GregorianCalendar.getInstance().getTime();
-
-		waitMsec(1100);
-			
-		env1.appendToFile("proj2/a.txt",new String[] { "AppendIt2" });
-		env1.appendToFile("proj2/f1/b.txt",new String[] { "AppendIt2" });
-		env1.execute("ci",new String[]{"-m","msg"},new String[]{"proj2"});
-		secondChange = GregorianCalendar.getInstance().getTime();
-
-		waitMsec(1100);		
-
-		env1.deleteFile("proj2");
-		
-		// Now check the project at different times out
-		env1.execute("co",new String[]{"-D",toGMTString(beforeChange)},new String[]{"proj2"});
-		env1.deleteFile("proj2");
-		
-		env1.execute("co",new String[]{"-D",toGMTString(firstChange)},new String[]{"proj2"});
-		env1.deleteFile("proj2");
-		
-		env1.execute("co",new String[]{"-D",toGMTString(secondChange)},new String[]{"proj2"});
-		env1.deleteFile("proj2");
-		
-		// Now do some updates to look if update -D works
-		env1.execute("co",new String[0],new String[]{"proj2"});
-		env1.execute("update",new String[]{"-D",toGMTString(beforeChange)},new String[]{"proj2"});
-		env1.execute("update",new String[]{"-D",toGMTString(firstChange)},new String[]{"proj2"});
-		env1.execute("update",new String[]{"-D",toGMTString(secondChange)},new String[]{"proj2"});
-
-		// We look if the parameter -a is working
-		env1.execute("update",new String[]{"-D",toGMTString(beforeChange),"-A"},new String[]{"proj2"});
-		env1.execute("update",new String[]{"-D",toGMTString(secondChange)},new String[]{"proj2"});
-		env1.deleteFile("proj2");
-		
-		// We get try to merge changes from different dates
-		env1.execute("co",new String[0],new String[]{"proj2"});
-		env1.appendToFile("proj2/a.txt", new String[] { "This is the world ..." });
-		env1.execute("update",new String[]{"-D",toGMTString(beforeChange)},new String[]{"proj2"});
-		env1.appendToFile("proj2/a.txt", new String[] {"... which constantly changes" });
-		env1.execute("update",new String[]{"-A"},new String[]{"proj2"});
-		// Change something to be able to commit
-		env1.appendToFile("proj2/a.txt", new String[] { "... and the changes are approved" });
-		env1.execute("ci",new String[]{"-m","msg"},new String[]{"proj2"});
-		
-	}
-}
-
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/compatible/CompatibleTestSetup.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/compatible/CompatibleTestSetup.java
deleted file mode 100644
index 98f1dfb..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/compatible/CompatibleTestSetup.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.core.compatible;
-import junit.framework.Test;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSProviderPlugin;
-import org.eclipse.team.internal.ccvs.core.connection.CVSRepositoryLocation;
-import org.eclipse.team.tests.ccvs.core.CVSTestSetup;
-
-/**
- * @version 	1.0
- * @author 	${user}
- */
-public class CompatibleTestSetup extends CVSTestSetup {
-	public static final String ECLIPSE_REPOSITORY_LOCATION;
-	public static final String REFERENCE_REPOSITORY_LOCATION;
-	public static CVSRepositoryLocation referenceClientRepository;
-	public static CVSRepositoryLocation eclipseClientRepository;
-	
-	static {
-		REFERENCE_REPOSITORY_LOCATION = System.getProperty("eclipse.cvs.repository1");
-		ECLIPSE_REPOSITORY_LOCATION = System.getProperty("eclipse.cvs.repository2");
-	}	
-	
-	/**
-	 * Constructor for CompatibleTestSetup.
-	 */
-	public CompatibleTestSetup(Test test) {
-		super(test);
-	}
-	
-	/**
-	 * For compatibility testing, we need to set up two repositories
-	 */
-	public void setUp() throws CVSException {
-		CVSProviderPlugin.getPlugin().setPruneEmptyDirectories(false);
-		CVSProviderPlugin.getPlugin().setFetchAbsentDirectories(false);
-
-		// setup the repositories
-		if (referenceClientRepository == null)
-			referenceClientRepository = setupRepository(REFERENCE_REPOSITORY_LOCATION);
-		if (eclipseClientRepository == null)
-			eclipseClientRepository = setupRepository(ECLIPSE_REPOSITORY_LOCATION);
-	}
-	
-	public void tearDown() throws CVSException {
-		CVSProviderPlugin.getPlugin().setPruneEmptyDirectories(true);
-		CVSProviderPlugin.getPlugin().setFetchAbsentDirectories(true);
-	}
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/compatible/ConflictTest.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/compatible/ConflictTest.java
deleted file mode 100644
index 3dc2c59..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/compatible/ConflictTest.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.core.compatible;
-import junit.framework.Test;
-import junit.framework.TestSuite;
-import org.eclipse.team.tests.ccvs.core.JUnitTestCase;
-
-public class ConflictTest extends JUnitTestCase {
-	SameResultEnv env1;
-	SameResultEnv env2;
-	
-	public ConflictTest() {
-		this(null);
-	}
-	
-	public ConflictTest(String arg) {
-		super(arg);
-		env1 = new SameResultEnv(arg + "checkout1");
-		env2 = new SameResultEnv(arg + "checkout2");
-	}
-
-	public void setUp() throws Exception {
-		env1.setUp();
-		env2.setUp();
-
-		// Set the project to the content we need ...
-		env1.magicSetUpRepo("proj2",new String[]{"a.txt","f1/b.txt","f1/c.txt"});
-		env2.deleteFile("proj2");
-	}
-	
-	public void tearDown() throws Exception {
-		env1.tearDown();
-		env2.tearDown();
-	}
-	
-	public static Test suite() {
-		TestSuite suite = new TestSuite(ConflictTest.class);
-		//return new CompatibleTestSetup(new ConflictTest("testSimpleConflict"));
-		return new CompatibleTestSetup(suite);
-	}
-	
-	public void testSimpleConflict() throws Exception {
-		// Download content in two locations
-		env1.execute("co",EMPTY_ARGS,new String[]{"proj2"},"");
-		env2.execute("co",EMPTY_ARGS,new String[]{"proj2"},"");
-		
-		// change the file in both directories in a different way
-		env1.appendToFile("proj2/f1/c.txt", new String[] { "AppendIt This" });
-		env2.appendToFile("proj2/f1/c.txt", new String[] { "AppendIt That" });
-		
-		// commit changes of the first
-		env1.execute("ci",new String[]{"-m","TestMessage"},new String[]{"proj2"},"");
-		
-		// load the changes into the changed file
-		// and submit the merge
-		env2.execute("update",EMPTY_ARGS,new String[]{"proj2"},"");
-		
-		// commit must fail because we have a merged conflict which has not been
-		// edited.
-		env2.setIgnoreExceptions(true);
-		env2.execute("ci",new String[]{"-m","TestMessage"},new String[]{"proj2"},"");
-		env2.setIgnoreExceptions(false);
-		
-		// Make a change to the file in order to let the cvs-client know
-		// that we solved the confilict
-		env2.appendToFile("proj2/f1/c.txt", new String[] { "That's allright" });
-		env2.execute("ci",new String[]{"-m","TestMessage"},new String[]{"proj2"},"");
-	}
-	
-	public void testMergedUpdate() throws Exception {
-		// Download content in two locations
-		env1.execute("co",EMPTY_ARGS,new String[]{"proj2"},"");
-		env2.execute("co",EMPTY_ARGS,new String[]{"proj2"},"");
-		
-		// change the file in both directories in a different way so that 
-		// can be merged without conflicts
-		env1.prefixToFile("proj2/f1/c.txt", new String[] { "AppendIt at top" });
-		env2.appendToFile("proj2/f1/c.txt", new String[] { "AppendIt at bottom" });
-		
-		// commit changes of the first
-		env1.execute("ci",new String[]{"-m","TestMessage"},new String[]{"proj2"},"");
-		
-		// changes should be merged
-		env2.execute("update",EMPTY_ARGS,new String[]{"proj2"},"");
-		env2.execute("ci",new String[]{"-m","TestMessage"},new String[]{"proj2"},"");	
-	}
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/compatible/ModuleTest.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/compatible/ModuleTest.java
deleted file mode 100644
index 8c1f0b1..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/compatible/ModuleTest.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.core.compatible;
-import junit.framework.Test;
-import junit.framework.TestSuite;
-import org.eclipse.team.tests.ccvs.core.JUnitTestCase;
-
-public class ModuleTest extends JUnitTestCase {
-	SameResultEnv env1;
-	SameResultEnv env2;
-	
-	public ModuleTest(String arg) {
-		super(arg);
-		env1 = new SameResultEnv(arg + "checkout1");
-		env2 = new SameResultEnv(arg + "checkout2");
-	}
-
-	public static void main(String[] args) {	
-		run(ModuleTest.class);
-	}
-
-	public void setUp() throws Exception {
-		env1.setUp();
-		env2.setUp();
-
-		// Set the project to the content we need ...
-		env1.magicDeleteRemote("CVSROOT/modules");
-		env1.magicDeleteRemote("CVSROOT/modules,v");
-		env1.magicSetUpRepo("proj2",new String[]{"a.txt","f1/b.txt","f1/c.txt","f2/d.txt","f2/f3/e.txt"});
-		env2.deleteFile("proj2");
-	}
-	
-	public void tearDown() throws Exception {
-		env1.tearDown();
-		env2.tearDown();
-	}
-	
-	public static Test suite() {
-		TestSuite suite = new TestSuite(ModuleTest.class);
-		return new CompatibleTestSetup(suite);
-	}	
-	
-	private void setUpModuleFile(String[] change) throws Exception {
-		
-		// Write the modules-file
-		env1.execute("co",EMPTY_ARGS,new String[]{"CVSROOT"});
-		env1.writeToFile("CVSROOT/modules",change);
-		
-		// Send it up to the server
-		env1.execute("add",new String[]{"-m","m"},new String[]{"modules"},"CVSROOT");
-		env1.execute("ci",new String[]{"-m","m"},new String[]{"CVSROOT"});
-		env1.deleteFile("CVSROOT");		
-	}
-	
-	public void testSimpleModule() throws Exception {
-		setUpModuleFile(new String[]{"mod1 proj2"});
-		env1.execute("co",EMPTY_ARGS,new String[]{"mod1"});
-		env1.appendToFile("mod1/a.txt", new String[] { "Append" });
-		env1.execute("ci",new String[]{"-m","m"},new String[]{"mod1"});
-		env1.execute("update",EMPTY_ARGS,new String[]{"mod1"});
-	}
-
-	public void testCompositeModule() throws Exception {
-		setUpModuleFile(new String[]{	"mod1-f1 proj2/f1",
-										"mod1-f2 proj2/f2",
-										"mod1f &mod1-f1 &mod1-f2"});
-		
-		env1.execute("co",EMPTY_ARGS,new String[]{"mod1f"});
-		env1.appendToFile("mod1f/mod1-f1/b.txt", new String[] { "Append" });
-		env1.execute("ci",new String[]{"-m","m"},new String[]{"mod1f"});
-		env1.execute("update",EMPTY_ARGS,new String[]{"mod1f"});
-	}
-
-	public void testCompositeAliasModule() throws Exception {
-		setUpModuleFile(new String[]{"mod1-f1 proj2/f1",
-										"mod1t proj2/f1 b.txt",
-										"mod1-f2 &proj2/f2 &mod1t",
-										"mod1f -a mod1-f1 mod1-f2"});
-		
-		env1.execute("co",EMPTY_ARGS,new String[]{"mod1f"});
-		env1.appendToFile("mod1-f1/b.txt", new String[] { "Append" });
-		env1.execute("ci",new String[]{"-m","m"},new String[]{"mod1-f1","mod1-f2"});
-		env1.execute("update",EMPTY_ARGS,new String[]{"mod1-f1","mod1-f2"});
-	}
-}
-
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/compatible/SameResultEnv.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/compatible/SameResultEnv.java
deleted file mode 100644
index 948cad4..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/compatible/SameResultEnv.java
+++ /dev/null
@@ -1,490 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.core.compatible;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Date;
-import java.util.StringTokenizer;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.ICVSFile;
-import org.eclipse.team.internal.ccvs.core.ICVSFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.core.ICVSResource;
-import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
-import org.eclipse.team.internal.ccvs.core.syncinfo.ResourceSyncInfo;
-import org.eclipse.team.tests.ccvs.core.CommandLineCVSClient;
-import org.eclipse.team.tests.ccvs.core.EclipseCVSClient;
-import org.eclipse.team.tests.ccvs.core.ICVSClient;
-import org.eclipse.team.tests.ccvs.core.JUnitTestCase;
-
-
-/**
- * This is a TestCase that does provide the possibility
- * to run tests on both the reference reference-client and the
- * client provided by us, and to check on equal results
- * in files and messages to the consol.
- * 
- * No own tests should be placed here, instead you should
- * instanciate this testcase in order to make your test from
- * another suite.
- * The class is final, because you need to be able to open
- * two (or more) different enviorments to test certain things.
- */
-public final class SameResultEnv extends JUnitTestCase {
-	private IProject referenceProject;
-	private ICVSFolder referenceRoot;
-	private IProject eclipseProject;
-	private ICVSFolder eclipseRoot;
-
-	private boolean ignoreExceptions;
-
-	public SameResultEnv(String arg) {
-		super(arg);
-	}
-	
-	/**
-	 * Always to be called in the setUp of the testCase that wants to 
-	 * use the same-result Enviorment.
-	 */
-	public void setUp() throws Exception {
-		super.setUp();
-		IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
-		// setup reference client test project
-		referenceProject = root.getProject(getName() + "-reference");
-		referenceProject.delete(true /*deleteContent*/, true /*force*/, null);
-		mkdirs(referenceProject);
-		referenceRoot = CVSWorkspaceRoot.getCVSFolderFor(referenceProject);
-		
-		// setup eclipse client test project
-		eclipseProject = root.getProject(getName() + "-eclipse");
-		eclipseProject.delete(true /*deleteContent*/, true /*force*/, null);
-		mkdirs(eclipseProject);
-		eclipseRoot = CVSWorkspaceRoot.getCVSFolderFor(eclipseProject);
-
-		// By default, exceptions are not ignored.
-		// Specific test cases can choose to ignore exceptions
-		ignoreExceptions = false;
-	}
-	
-	/**
-	 * Always to be called in the tearDown of the testCase that wants to 
-	 * use the same-result Enviorment.
-	 */
-	public void tearDown() throws Exception {
-		// we deliberately don't clean up test projects to simplify debugging
-		super.tearDown();
-	}
-	
-	/**
-	 * Helper method.
-	 * Calls execute(command, EMPTY_ARGS, localOptions, arguments, pathRelativeToRoot)
-	 */				
-	public void execute(String command, String[] localOptions, String[] arguments, String pathRelativeToRoot)
-		throws CVSException {
-		execute(command, EMPTY_ARGS, localOptions, arguments, pathRelativeToRoot);
-	}
-
-	/**
-	 * Helper method.
-	 * Calls execute(command, EMPTY_ARGS, localOptions, arguments, "")
-	 */				
-	public void execute(String command, String[] localOptions, String[] arguments)
-		throws CVSException {
-		execute(command, EMPTY_ARGS, localOptions, arguments, "");
-	}
-
-	/**
-	 * Runs a command twice, once in the reference environments, once
-	 * in the eclipse environment.  Compares the resulting resources
-	 * on disk, but not console output.
-	 */
-	public void execute(String command,
-		String[] globalOptions, String[] localOptions, String[] arguments,
-		String pathRelativeToRoot) throws CVSException {
-		
-		// run with reference client
-		boolean referenceClientException = execute(CommandLineCVSClient.INSTANCE,
-			CompatibleTestSetup.referenceClientRepository, referenceProject,
-			command, globalOptions, localOptions, arguments, pathRelativeToRoot);
-		// run with Eclipse client
-		boolean eclipseClientException = execute(EclipseCVSClient.INSTANCE,
-			CompatibleTestSetup.eclipseClientRepository, eclipseProject,
-			command, globalOptions, localOptions, arguments, pathRelativeToRoot);
-			
-		// assert same results
-		assertEquals(referenceClientException, eclipseClientException);
-		assertConsistent();
-	}
-	
-	private boolean execute(ICVSClient client, ICVSRepositoryLocation repositoryLocation,
-		IContainer localRoot, String command,
-		String[] globalOptions, String[] localOptions, String[] arguments,
-		String pathRelativeToRoot) throws CVSException {
-		try {
-			IPath path = new Path(pathRelativeToRoot);
-			if (path.segmentCount() != 0) {
-				localRoot = localRoot.getFolder(path);
-			}
-			client.executeCommand(repositoryLocation, localRoot, command, globalOptions,
-				localOptions, arguments);
-		} catch (CVSException e) {
-			if (ignoreExceptions) return true;
-			throw e;
-		}
-		return false;
-	}
-
-	/**
-	 * Deletes files on the both of the cvs-servers.
-	 */
-	public void magicDeleteRemote(String remoteName) throws CVSException {
-		super.magicDeleteRemote(CompatibleTestSetup.referenceClientRepository, remoteName);
-		super.magicDeleteRemote(CompatibleTestSetup.eclipseClientRepository, remoteName);		
-	}
-	
-	/**
-	 * Set up both of the repos on the cvs-server(s) with the standard
-	 * file-structure:
-	 * project
-	 *   a.txt
-	 *   f1
-	 *     b.txt
-	 *     c.txt
-	 */
-	public void magicSetUpRepo(String projectName)
-		throws IOException, CoreException, CVSException {
-		magicSetUpRepo(projectName, new String[]{"a.txt","f1/b.txt","f1/c.txt"});
-	}
-	
-	/**
-	 * Set up both of the repos on the cvs-server(s) with a filestructre
-	 * resulting for your input in the parameter createResources.
-	 */
-	public void magicSetUpRepo(String projectName, String[] createResources)
-		throws IOException, CoreException, CVSException {
-		magicDeleteRemote(projectName);
-
-		IProject projectRoot = workspaceRoot.getProject(projectName + "-setup-tmp");
-		mkdirs(projectRoot);
-		createRandomFile(projectRoot, createResources);
-		
-		String[] lOptions = new String[]{"-m","msg"};
-		String[] args = new String[]{projectName,"a","b"};
-	
-		magicDeleteRemote(CompatibleTestSetup.referenceClientRepository, projectName);
-		EclipseCVSClient.execute(CompatibleTestSetup.referenceClientRepository, CVSWorkspaceRoot.getCVSFolderFor(projectRoot),
-			"import", EMPTY_ARGS, lOptions, args);
-			
-		magicDeleteRemote(CompatibleTestSetup.eclipseClientRepository, projectName);
-		EclipseCVSClient.execute(CompatibleTestSetup.eclipseClientRepository, CVSWorkspaceRoot.getCVSFolderFor(projectRoot),
-			"import", EMPTY_ARGS, lOptions, args);
-
-		projectRoot.delete(false /*force*/, null);
-	}
-
-	/**
-	 * Create a file with random-content in both, the reference client and 
-	 * the eclipse-client.
-	 * 
-	 * @param relativeFileName is the relative path as allways in the 
-	           class used for access
-	 */
-	public void createRandomFile(String relativeFileName)
-		throws IOException, CoreException {
-		String[] contents = new String[] { createRandomContent() };
-		writeToFile(relativeFileName, contents);
-	}
-
-	/**
-	 * Call createRandomFile for every element of the array
-	 * 
-	 * @see SameResultEnv#createRandomFile(String)
-	 */
-	public void createRandomFile(String[] relativeFileNames,
-		String pathRelativeToRoot) throws CoreException, IOException {
-		if (pathRelativeToRoot == null) {
-			pathRelativeToRoot = "";
-		} else if (! pathRelativeToRoot.endsWith("/")) {
-			pathRelativeToRoot += "/";
-		}
-		for (int i = 0; i < relativeFileNames.length; i++) {
-			createRandomFile(pathRelativeToRoot + relativeFileNames[i]);
-		}
-	}
-	
-	/**
-	 * Read from the file (check that we have acctually got the same
-	 * content in both versions
-	 */
-	public String[] readFromFile(String relativeFileName)
-		throws IOException, CoreException {
-		IFile referenceFile = referenceProject.getFile(relativeFileName);
-		String[] content1 = super.readFromFile(referenceFile);
-		IFile eclipseFile = eclipseProject.getFile(relativeFileName);
-		String[] content2 = super.readFromFile(eclipseFile);
-		assertEqualsArrays(content1,content2);
-		return content1;
-	}
-	
-	/**
-	 * Delete a file / folder from both directories.
-	 */
-	public void deleteFile(String relativeFileName) throws CoreException {
-		IResource referenceFile, eclipseFile;
-		if (relativeFileName.length() != 0) {
-			referenceFile = referenceProject.findMember(relativeFileName);
-			eclipseFile = eclipseProject.findMember(relativeFileName);
-		} else {
-			referenceFile = referenceProject;
-			eclipseFile = eclipseProject;
-		}
-		assertEquals(referenceFile != null, eclipseFile != null);
-		if (referenceFile == null) return;
-		assertEquals(referenceFile.exists(), eclipseFile.exists());
-		referenceFile.delete(true, null);
-		eclipseFile.delete(true, null);
-	}
-	
-	/**
-	 * Creates a folder (and its parents if needed) in both environments.
-	 */
-	public void mkdirs(String relativeFolderName) throws CoreException {
-		IFolder referenceFolder = referenceProject.getFolder(relativeFolderName);
-		IFolder eclipseFolder = eclipseProject.getFolder(relativeFolderName);
-		assertEquals(referenceFolder.exists(), eclipseFolder.exists());
-		mkdirs(referenceFolder);
-		mkdirs(eclipseFolder);
-	}
-	
-	/**
-	 * Append a String to an file (acctally to both of the files, that are going
-	 * to have the same content)
-	 */
-	public void appendToFile(String relativeFileName, String[] contents)
-		throws IOException, CoreException {
-		// Wait a second so that the timestamp will change for sure
-		waitMsec(1500);
-
-		IFile referenceFile = referenceProject.getFile(relativeFileName);
-		appendToFile(referenceFile, contents);
-		IFile eclipseFile = eclipseProject.getFile(relativeFileName);
-		appendToFile(eclipseFile, contents);		
-	}
-	
-		/**
-	 * Append a String to an file (acctally to both of the files, that are going
-	 * to have the same content)
-	 */
-	public void prefixToFile(String relativeFileName, String[] contents)
-		throws IOException, CoreException {
-		// Wait a second so that the timestamp will change for sure
-		waitMsec(1500);
-
-		IFile referenceFile = referenceProject.getFile(relativeFileName);
-		prefixToFile(referenceFile, contents);
-		IFile eclipseFile = eclipseProject.getFile(relativeFileName);
-		prefixToFile(eclipseFile, contents);		
-	}
-	
-	/**
-	 * Write to the file (acctally to both of the files, that are going
-	 * to have the same content)
-	 */
-	public void writeToFile(String relativeFileName, String[] contents)
-		throws IOException, CoreException {
-		IFile referenceFile = referenceProject.getFile(relativeFileName);
-		writeToFile(referenceFile, contents);
-		IFile eclipseFile = eclipseProject.getFile(relativeFileName);
-		writeToFile(eclipseFile, contents);
-	}		
-
-	/**
-	 * Checks whether the two directories inside the environment
-	 * are equal and therefore the state valid.
-	 */
-	public void assertConsistent() throws CVSException {
-		assertEquals(referenceRoot, eclipseRoot);
-	}	
-
-	/**
-	 * Deep compare of two ManagedResources (most likly folders).
-	 * Passwords are ignored.
-	 * 
-	 * @param ignoreTimestamp if true timestamps of
-	           files are ignored for the comparison
-	 */
-	public static void assertEquals(ICVSResource mResource1, 
-										ICVSResource mResource2) 
-										throws CVSException {
-		
-		assertEquals(mResource1.isFolder(), mResource2.isFolder());
-		assertEquals(mResource1.isManaged() , mResource2.isManaged());
-		assertEquals(mResource1.exists(), mResource2.exists());
-		
-		if (!mResource1.exists()) {
-			return;
-		}
-		
-		if (mResource1.isFolder()) {
-			assertEquals((ICVSFolder)mResource1,(ICVSFolder)mResource2);
-		} else {
-			assertEquals((ICVSFile)mResource1,(ICVSFile)mResource2);
-		}	
-	}	
-	
-	/**
-	 * Assert that two CVSFile's are equal by comparing the content
-	 * and the metainformation out of the ResourceSync.
-	 */
-	private static void assertEquals(ICVSFile mFile1, ICVSFile mFile2) throws CVSException {
-		
-		if (mFile1.getName().equals(".project")) return;
-		
-		// Check the permissions on disk
-		assertEquals(mFile1.isReadOnly(), mFile2.isReadOnly());
-					
-		// Compare the content of the files
-		try {
-			InputStream in1 = mFile1.getContents();
-			InputStream in2 = mFile2.getContents();
-			byte[] buffer1 = new byte[(int)mFile1.getSize()];
-			byte[] buffer2 = new byte[(int)mFile2.getSize()];
-			// This is not the right way to do it, because the Stream
-			// may read less than the whoole file
-			in1.read(buffer1);
-			in2.read(buffer2);
-			in1.close();
-			in2.close();
-			assertEquals("Length differs for file " + mFile1.getName(), buffer1.length, buffer2.length);
-			assertEquals("Contents differs for file " + mFile1.getName(), new String(buffer1),new String(buffer2));
-		} catch (IOException e) {
-			throw new CVSException("Error in TestCase");
-		}
-
-		// We can not do the ceck, because the reference client does
-		// check out dirty files ?!?
-		// assertEquals(mFile1.isDirty(),mFile2.isDirty());
-		
-		assertEquals(mFile1.getSyncInfo() == null,mFile2.getSyncInfo() == null);
-		if (mFile1.getSyncInfo() == null) {
-			return;
-		}
-		
-		ResourceSyncInfo info1 = mFile1.getSyncInfo();
-		ResourceSyncInfo info2 = mFile2.getSyncInfo();
-		
-		assertEquals(info1.getKeywordMode(), info2.getKeywordMode());
-		assertEquals(info1.getTag(), info2.getTag());
-		assertEquals(info1.getName(), info2.getName());
-		assertEquals(info1.getRevision(), info2.getRevision());
-		
-		assertEquals(info1.isDeleted(), info2.isDeleted());
-		assertEquals(info1.isAdded(), info2.isAdded());
-		assertEquals(info1.isMerged(), info2.isMerged());
-		assertEquals(info1.isMergedWithConflicts(), info2.isMergedWithConflicts());
-		
-		// Ensure that timestamps are written using same timezone.
-		// assertTimestampEquals(info1.getTimeStamp(), info2.getTimeStamp());
-		
-		// We are not able to check for the permissions, as the reference-client doesn't save them
-	}
-
-	private static void assertTimestampEquals(Date timestamp1, Date timestamp2) {
-		assertEquals(timestamp1!=null, timestamp2!=null);
-		if(timestamp1!=null) {
-			long time1 = timestamp1.getTime();
-			long time2 = timestamp2.getTime();
-			long difference = Math.abs(time1 - time2);
-			assertTrue("timestamps should be in same timezone:" + timestamp1 + ":" + timestamp2, difference < (10*60*1000)); // 10 minutes
-		}
-	}
-	
-	/**
-	 * Assert that two CVSFile's are equal. First the 
-	 * metainformation out of the FolderSync for this 
-	 * folder is compared, then the amount of children is 
-	 * checked and finally the recussion is started to
-	 * compare the children of this folder.
-	 */
-	private static void assertEquals(ICVSFolder mFolder1, 
-										ICVSFolder mFolder2) 
-										throws CVSException {
-
-		assertEquals(mFolder1.isCVSFolder(),mFolder2.isCVSFolder());
-		
-		if (mFolder1.isCVSFolder()) {
-			String root1 = removePassword(mFolder1.getFolderSyncInfo().getRoot());
-			String root2 = removePassword(mFolder2.getFolderSyncInfo().getRoot());
-			root1 = root1.substring(0,root1.lastIndexOf("@"));
-			root2 = root2.substring(0,root2.lastIndexOf("@"));
-			assertEquals(root1,root2);
-			
-			assertEquals(mFolder1.getFolderSyncInfo().getRepository(),mFolder2.getFolderSyncInfo().getRepository());
-			assertEquals(mFolder1.getFolderSyncInfo().getIsStatic(),mFolder2.getFolderSyncInfo().getIsStatic());
-			assertEquals(mFolder1.getFolderSyncInfo().getTag(),mFolder2.getFolderSyncInfo().getTag());
-		}
-		
-		ICVSResource[] resourceList1 = mFolder1.members(ICVSFolder.FILE_MEMBERS | ICVSFolder.FOLDER_MEMBERS);
-		ICVSResource[] resourceList2 = mFolder2.members(ICVSFolder.FILE_MEMBERS | ICVSFolder.FOLDER_MEMBERS);
-		assertEquals(resourceList1.length, resourceList2.length);
-		for (int i=0; i<resourceList1.length; i++) {
-			boolean resourceFound = false;
-			for (int j=0; j<resourceList2.length; j++) {
-				if (resourceList1[i].getName().equals(resourceList2[j].getName())) {
-					assertEquals(resourceList1[i], resourceList2[j]);
-					resourceFound = true;
-					break;
-				}
-			}
-			assertTrue("Resource " + resourceList1[i].getName() + " not found in the list",resourceFound);
-		}
-	}
-	
-	/**
-	 * Sets whether Exceptions that are thrown in the execution of both of the clients are
-	 * catched or thrown to the upper level. If the exceptions are catched the result of the 
-	 * reference-client and this client are compared as if the execution succseded.
-	 */
-	public void setIgnoreExceptions(boolean ignoreExceptions) {
-		this.ignoreExceptions = ignoreExceptions;
-	}
-	
-	/**
-	 * returns ":pserver:nkrambro@fiji:/home/nkrambro/repo"
-	 *         when you insert ":pserver:nkrambro:password@fiji:/home/nkrambro/repo"
-	 */
-	public static String removePassword(String root) {
-		StringTokenizer tok = new StringTokenizer(root, ":@", true);
-		StringBuffer filteredRoot = new StringBuffer();
-		int colonCounter = 3;
-		while (tok.hasMoreTokens()) {
-			String token = tok.nextToken();
-			if ("@".equals(token)) colonCounter = -1;
-			if (":".equals(token)) {
-				if (--colonCounter == 0) continue; // skip colon
-			}
-			if (colonCounter == 0) continue; // skip password
-			filteredRoot.append(token);
-		}
-		return filteredRoot.toString();
-	}
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/cvsresources/AllTestsCVSResources.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/cvsresources/AllTestsCVSResources.java
deleted file mode 100644
index f769c0b..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/cvsresources/AllTestsCVSResources.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.core.cvsresources;
-import junit.framework.Test;
-import junit.framework.TestSuite;
-import org.eclipse.team.tests.ccvs.core.EclipseTest;
-
-public class AllTestsCVSResources extends EclipseTest {
-	public static Test suite() {	
-		TestSuite suite = new TestSuite();
-		suite.addTest(ResourceSyncInfoTest.suite());
-		suite.addTest(EclipseSynchronizerTest.suite());
-		suite.addTest(EclipseFolderTest.suite());
-		suite.addTest(ResourceSyncBytesTest.suite());
-    	return suite; 	
-	}	
-	
-	public AllTestsCVSResources(String name) {
-		super(name);
-	}
-	
-	public AllTestsCVSResources() {
-		super();
-	}
-}
-
-
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/cvsresources/BatchedTestSetup.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/cvsresources/BatchedTestSetup.java
deleted file mode 100644
index c833c94..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/cvsresources/BatchedTestSetup.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.core.cvsresources;
-
-
-import junit.extensions.TestSetup;
-import junit.framework.Test;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.resources.EclipseSynchronizer;
-
-public class BatchedTestSetup extends TestSetup {
-	public BatchedTestSetup(Test test) {
-		super(test);
-	}
-
-	public void setUp() throws CVSException {
-		EclipseSynchronizer.getInstance().beginOperation(null);
-	}
-	
-	public void tearDown() throws CVSException {
-		EclipseSynchronizer.getInstance().endOperation(null);
-	}
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/cvsresources/EclipseFolderTest.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/cvsresources/EclipseFolderTest.java
deleted file mode 100644
index c60abc3..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/cvsresources/EclipseFolderTest.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.core.cvsresources;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceVisitor;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.ICVSFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSResource;
-import org.eclipse.team.internal.ccvs.core.ICVSRunnable;
-import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
-import org.eclipse.team.tests.ccvs.core.CVSTestSetup;
-import org.eclipse.team.tests.ccvs.core.EclipseTest;
-
-/**
- * What does this class do?
- */
-public class EclipseFolderTest extends EclipseTest {
-	public EclipseFolderTest() {
-		super();
-	}
-	
-	public EclipseFolderTest(String name) {
-		super(name);
-	}
-	
-	public static Test suite() {
-		TestSuite suite = new TestSuite();
-		suite.addTestSuite(EclipseFolderTest.class);
-		return new CVSTestSetup(suite);
-	}
-	
-	protected void assertChildrenHaveSync(IContainer root, final boolean hasSync) throws CoreException, CVSException {
-		root.accept(new IResourceVisitor() {
-			public boolean visit(IResource resource) throws CoreException {
-				try {
-					ICVSResource cvsResource = CVSWorkspaceRoot.getCVSResourceFor(resource);
-					if(!cvsResource.isIgnored()) {
-						if(resource.getType()==IResource.FILE) {
-							assertTrue((cvsResource.getSyncInfo()!=null) == hasSync);
-						} else {
-							assertTrue((((ICVSFolder)cvsResource).getFolderSyncInfo()!=null) == hasSync);
-						}
-					}
-				} catch(CVSException e) {
-					throw new CoreException(e.getStatus());
-				}
-				return true;
-			}
-		});
-	}
-	
-	public void testUnmanageFolder() throws CoreException, TeamException {
-		IProject project = createProject("testUnmanageFolder_A", new String[] {"a.txt", "folder1/", "folder1/b.txt", "folder1/folder2/", "folder1/folder2/c.txt"});
-		ICVSFolder cvsProject = CVSWorkspaceRoot.getCVSFolderFor(project);
-		assertChildrenHaveSync(project, true);
-		
-		// test that unmanaging the project flushes sync info
-		cvsProject.unmanage(null);
-		assertChildrenHaveSync(project, false);
-		
-		final IProject projectB = createProject("testUnmanageFolder_B", new String[] {"a.txt", "folder1/", "folder1/b.txt", "folder1/folder2/", "folder1/folder2/c.txt"});
-		final ICVSFolder cvsProjectB = CVSWorkspaceRoot.getCVSFolderFor(projectB);
-		assertChildrenHaveSync(projectB, true);
-		
-		// test that unmanaging in a CVS runnable flushes too
-		cvsProjectB.run(new ICVSRunnable() {
-			public void run(IProgressMonitor monitor) throws CVSException {
-					try {
-						assertChildrenHaveSync(projectB, true);
-						cvsProjectB.unmanage(null);
-						assertChildrenHaveSync(projectB, false);
-					} catch(CoreException e) {
-						throw CVSException.wrapException(e);
-					}
-			}
-		}, null);		
-		assertChildrenHaveSync(projectB, false);
-	}
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/cvsresources/EclipseSynchronizerTest.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/cvsresources/EclipseSynchronizerTest.java
deleted file mode 100644
index ca33389..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/cvsresources/EclipseSynchronizerTest.java
+++ /dev/null
@@ -1,521 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.core.cvsresources;
-
-
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Set;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.resources.EclipseSynchronizer;
-import org.eclipse.team.internal.ccvs.core.syncinfo.FolderSyncInfo;
-import org.eclipse.team.internal.ccvs.core.syncinfo.MutableResourceSyncInfo;
-import org.eclipse.team.internal.ccvs.core.syncinfo.ResourceSyncInfo;
-import org.eclipse.team.internal.ccvs.core.util.SyncFileWriter;
-import org.eclipse.team.tests.ccvs.core.CVSTestSetup;
-import org.eclipse.team.tests.ccvs.core.EclipseTest;
-
-/**
- * Tests the EclipseSynchronizer.
- * Does not test state change broadcasts.
- */
-public class EclipseSynchronizerTest extends EclipseTest {
-	private IProject project;
-	private static EclipseSynchronizer sync = EclipseSynchronizer.getInstance();
-	
-	public EclipseSynchronizerTest() {
-		super();
-	}
-	
-	public EclipseSynchronizerTest(String name) {
-		super(name);
-	}
-	
-	public static Test suite() {
-		TestSuite suite = new TestSuite();
-
-		// Run all tests twice to ensure consistency between batched and non-batched behaviour.
-		// 1. First run -- no batching
-		suite.addTestSuite(EclipseSynchronizerTest.class);
-		// 2. Second run -- with batching
-		suite.addTest(new BatchedTestSetup(new TestSuite(EclipseSynchronizerTest.class)));
-		return new CVSTestSetup(suite);
-	}
-	
-	public void testFolderSync() throws CoreException, CVSException {
-		// Workspace root
-		IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
-//		FolderSyncInfo info = sync.getFolderSync(root);
-//		assertNull(info);
-//		sync.deleteFolderSync(root);
-//		sync.setFolderSync(root, dummyFolderSync(root));
-//		info = sync.getFolderSync(root);
-//		assertNull(info);
-
-		// Non-existant project
-		IProject project = root.getProject(getName() + "-" + System.currentTimeMillis());
-		assertDoesNotExistInFileSystem(project);
-		_testFolderSyncInvalid(project);
-
-		// Project
-		project.create(null);
-		project.open(null);
-		_testFolderSyncValid(project);
-		
-		// Non-existant folder
-		IFolder folder = project.getFolder("folder1");
-		assertDoesNotExistInFileSystem(folder);
-		_testFolderSyncInvalid(folder);
-		
-		// Non-existant folder with non-existant parent
-		IFolder childFolder = folder.getFolder("folder2");
-		assertDoesNotExistInFileSystem(childFolder);
-		_testFolderSyncInvalid(childFolder);
-		
-		// Folder
-		folder.create(false /*force*/, true /*local*/, null);
-		_testFolderSyncValid(folder);
-		
-		// Child folder
-		childFolder.create(false /*force*/, true /*local*/, null);
-		_testFolderSyncValid(childFolder);
-		
-		// Deleted folder -- sync info should no longer exist
-		sync.setFolderSync(folder, dummyFolderSync(folder));
-		folder.delete(false /*force*/, null);
-		_testFolderSyncInvalid(folder); // verifies sync info was deleted
-		
-		// Recreated folder -- sync info should not be preserved across deletions
-		folder.create(false /*force*/, true /*local*/, null);
-		sync.setFolderSync(folder, dummyFolderSync(folder));
-		folder.delete(false /*force*/, null);
-		folder.create(false /*force*/, true /*local*/, null);
-		_testFolderSyncValid(folder); // verifies sync info has not reappeared
-		
-		// Deleted project
-		sync.setFolderSync(project, dummyFolderSync(project));
-		project.delete(false /*force*/, null);
-		_testFolderSyncInvalid(project);
-	}
-	
-	/*
-	 * Test get/set/delete folder sync for things that support it.
-	 * Assumes container does not already have sync info.
-	 */
-	private void _testFolderSyncValid(IContainer container) throws CoreException, CVSException {
-		FolderSyncInfo info = sync.getFolderSync(container);
-		assertNull(info);
-		sync.deleteFolderSync(container);
-		FolderSyncInfo newInfo = dummyFolderSync(container);
-		sync.setFolderSync(container, newInfo);
-		info = sync.getFolderSync(container);
-		assertEquals(newInfo, info);
-		// verify that deleteFolderSync() does the right thing
-		buildResources(container, new String[] { "hassync/", "nosync", "hassync.txt", "nosync.txt" }, true);
-		IResource resource = container.getFile(new Path("hassync.txt"));
-		sync.setResourceSync(resource, dummyResourceSync(resource));
-		resource = container.getFolder(new Path("hassync"));
-		sync.setResourceSync(resource, dummyResourceSync(resource));
-		assertNotNull(sync.getResourceSync(container.getFile(new Path("hassync.txt"))));
-		assertNull(sync.getResourceSync(container.getFile(new Path("nosync.txt"))));
-		assertNotNull(sync.getResourceSync(container.getFolder(new Path("hassync"))));
-		assertNull(sync.getResourceSync(container.getFolder(new Path("nosync"))));
-		if (container.getType() == IResource.FOLDER) {
-			sync.setResourceSync(container, dummyResourceSync(container));
-			assertNotNull(sync.getResourceSync(container));
-		}
-		// should delete folder sync for self, and resource sync for children
-		sync.deleteFolderSync(container);
-		info = sync.getFolderSync(container);
-		assertNull(info);
-		assertNull(sync.getResourceSync(container.getFile(new Path("hassync.txt"))));
-		assertNull(sync.getResourceSync(container.getFile(new Path("nosync.txt"))));
-		assertNull(sync.getResourceSync(container.getFolder(new Path("hassync"))));
-		assertNull(sync.getResourceSync(container.getFolder(new Path("nosync"))));
-		if (container.getType() == IResource.FOLDER) {
-			assertNotNull(sync.getResourceSync(container));
-		}
-	}
-	
-	/*
-	 * Test get/set/delete folder sync for things that should not support it.
-	 * Assumes container does not already have sync info.
-	 */
-	private void _testFolderSyncInvalid(IContainer container) throws CVSException {
-		FolderSyncInfo info = sync.getFolderSync(container);
-		assertNull(info);
-		sync.deleteFolderSync(container);
-		try {
-			sync.setFolderSync(container, dummyFolderSync(container));
-			fail("Expected CVSException");
-		} catch (CVSException e) {
-		}
-		info = sync.getFolderSync(container);
-		assertNull(info);
-	}
-	
-	public void testResourceSync() throws CoreException, CVSException {
-		// Workspace root
-		IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
-		_testResourceSyncInvalid(root);
-
-		// Project
-		IProject project = getUniqueTestProject(getName());
-		assertExistsInFileSystem(project);
-		_testResourceSyncInvalid(project);
-		
-		// Folder
-		IFolder folder = project.getFolder("folder1");
-		folder.create(false /*force*/, true /*local*/, null);
-		_testResourceSyncValid(folder);
-		
-		// File
-		IFile file = folder.getFile("file1");
-		file.create(getRandomContents(), false /*force*/, null);
-		_testResourceSyncValid(file);
-		
-		// Deleted/recreated file -- if parent exists, sync info should be preserved across deletions
-		ResourceSyncInfo info = dummyResourceSync(file);
-		sync.setResourceSync(file, info);
-		// Note: deleting a resource will delete it's sync info unless the project has a CVS provider
-		file.delete(false /*force*/, null);
-		ResourceSyncInfo newInfo = sync.getResourceSync(file);
-		//assertEquals(newInfo, info);
-		assertEquals(newInfo, null); /* changed for reason noted above */
-		file.create(getRandomContents(), false /*force*/, null);
-		sync.setResourceSync(file, info); /* added for reason noted above */
-		newInfo = sync.getResourceSync(file);
-		assertEquals(newInfo, info);
-		sync.deleteResourceSync(file);
-		file.delete(false /*force*/, null);
-		_testResourceSyncValid(file);
-		
-		// Deleted parent -- sync info of children should also be deleted
-		sync.setResourceSync(file, info);
-		folder.delete(false /*force*/, null);
-		info = sync.getResourceSync(file);
-		assertNull(info);
-		
-		// File in non-existant folder
-		IFolder dummyFolder = project.getFolder("folder2");
-		assertDoesNotExistInFileSystem(dummyFolder);
-		IFile dummyFile = dummyFolder.getFile("file2");
-		assertDoesNotExistInFileSystem(dummyFile);
-		_testResourceSyncInvalid(dummyFile);
-	}
-	
-	/*
-	 * Test get/set/delete resource sync for things that support it.
-	 * Assumes resource does not already have sync info.
-	 */
-	private void _testResourceSyncValid(IResource resource) throws CVSException {
-		ResourceSyncInfo info = sync.getResourceSync(resource);
-		assertNull(info);
-		sync.deleteResourceSync(resource);
-		ResourceSyncInfo newInfo = dummyResourceSync(resource);
-		sync.setResourceSync(resource, newInfo);
-		info = sync.getResourceSync(resource);
-		assertEquals(newInfo, info);
-		sync.deleteResourceSync(resource);
-		info = sync.getResourceSync(resource);
-		assertNull(info);
-	}
-	
-	/*
-	 * Test get/set/delete resource sync for things that should not support it.
-	 * Assumes resource does not already have sync info.
-	 */
-	private void _testResourceSyncInvalid(IResource resource) throws CVSException {
-		ResourceSyncInfo info = sync.getResourceSync(resource);
-		assertNull(info);
-		sync.deleteResourceSync(resource);
-		try {
-			sync.setResourceSync(resource, dummyResourceSync(resource));
-			fail("Expected CVSException");
-		} catch (CVSException e) {
-		}
-		info = sync.getResourceSync(resource);
-		assertNull(info);
-	}
-
-	public void testIsIgnored() throws CoreException, TeamException {
-		IProject project = getUniqueTestProject("isIgnoredTests");
-		IResource[] resources = buildResources(project, new String[] {"a.txt", "c.java", "folder1/", "folder1/b.txt", "folder2/"}, true /* include project */);
-		
-		sync.addIgnored(project, "*.txt");
-		
-		assertIsIgnored(project.getFile("a.txt"), true);
-		assertIsIgnored(project.getFile("c.java"), false);
-		assertIsIgnored(project.getFolder("folder1"), false);
-		assertIsIgnored(project.getFolder("folder2"), false);
-		assertIsIgnored(project.getFile("folder1/b.txt"), false);	
-		assertIsIgnored(project.getFile("folder1/not-existing.txt"), false);
-		assertIsIgnored(project.getParent(), false);
-		assertIsIgnored(project, false);
-		
-		sync.addIgnored(project, "folder1");
-		
-		assertIsIgnored(project.getFile("a.txt"), true);
-		assertIsIgnored(project.getFile("c.java"), false);
-		assertIsIgnored(project.getFolder("folder1"), true);
-		assertIsIgnored(project.getFolder("folder2"), false);
-		assertIsIgnored(project.getFile("folder1/b.txt"), true);	
-		assertIsIgnored(project.getFile("folder1/not-existing.txt"), true);
-		assertIsIgnored(project.getParent(), false);
-		assertIsIgnored(project, false);
-		
-		// delete the ignores, the resource delta should clear the cached
-		// ignore list
-		IResource cvsIgnore = project.getFile(".cvsignore");
-		cvsIgnore.delete(true, null);
-		
-		assertIsIgnored(project.getFile("a.txt"), false);
-		assertIsIgnored(project.getFile("c.java"), false);
-		assertIsIgnored(project.getFolder("folder1"), false);
-		assertIsIgnored(project.getFolder("folder2"), false);
-		assertIsIgnored(project.getFile("folder1/b.txt"), false);	
-		assertIsIgnored(project.getFile("folder1/not-existing.txt"), false);
-		assertIsIgnored(project.getParent(), false);
-		assertIsIgnored(project, false);
-		project.delete(true, true, null);
-	}
-	
-	public void testIgnores() throws CoreException, CVSException {
-		// Workspace root
-		IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
-		_testIgnoresInvalid(root);
-
-		// Non-existant project
-		IProject project = root.getProject(getName() + "-" + System.currentTimeMillis());
-		assertDoesNotExistInFileSystem(project);
-		_testIgnoresInvalid(project);
-
-		// Project
-		project.create(null);
-		project.open(null);
-		_testIgnoresValid(project);
-		
-		// Non-existant folder
-		IFolder folder = project.getFolder("folder1");
-		assertDoesNotExistInFileSystem(folder);
-		_testIgnoresInvalid(folder);
-		
-		// Non-existant folder with non-existant parent
-		IFolder childFolder = folder.getFolder("folder2");
-		assertDoesNotExistInFileSystem(childFolder);
-		_testIgnoresInvalid(childFolder);
-		
-		// Folder
-		folder.create(false /*force*/, true /*local*/, null);
-		_testIgnoresValid(folder);
-		
-		// Child folder
-		childFolder.create(false /*force*/, true /*local*/, null);
-		_testIgnoresValid(childFolder);
-		
-		// Deleted folder -- ignores should no longer exist
-		sync.addIgnored(folder, "*.foo");
-		folder.delete(false /*force*/, null);
-		_testIgnoresInvalid(folder); // verifies sync info was deleted
-		
-		// Recreated folder -- sync info should not be preserved across deletions
-		folder.create(false /*force*/, true /*local*/, null);
-		sync.addIgnored(folder, "*.foo");
-		folder.delete(false /*force*/, null);
-		folder.create(false /*force*/, true /*local*/, null);
-		_testIgnoresValid(folder); // verifies sync info has not reappeared
-		
-		// Deleted project
-		sync.addIgnored(project, "*.foo");
-		project.delete(false /*force*/, null);
-		_testIgnoresInvalid(project);
-	}
-	
-	
-	
-	/*
-	 * Test get/set ignores for things that should not support it.
-	 * Assumes resource does not already have ignores.
-	 */
-	private void _testIgnoresValid(IContainer container) throws CVSException {
-		String[] ignored = getIgnored(container);
-		assertTrue(ignored.length == 0);
-		sync.addIgnored(container, "*.xyz");
-		ignored = getIgnored(container);
-		assertBijection(ignored, new String[] { "*.xyz" }, null);
-		sync.addIgnored(container, "*.abc");
-		sync.addIgnored(container, "*.def");
-		ignored = getIgnored(container);
-		assertBijection(ignored, new String[] { "*.abc", "*.def", "*.xyz" }, null);
-	}
-
-	/**
-	 * TODO: should use chached ignores somehow
-	 * @param container
-	 * @return String[]
-	 * @throws CVSException
-	 */
-	private String[] getIgnored(IContainer container) throws CVSException {
-		if (container.getType() == IResource.ROOT) return new String[0];
-		String[] ignored = SyncFileWriter.readCVSIgnoreEntries(container);
-		if (ignored == null) return new String[0];
-		return ignored;
-	}
-
-	/*
-	 * Test get/set ignores for things that should not support it.
-	 * Assumes resource does not already have ignores.
-	 */
-	private void _testIgnoresInvalid(IContainer container) throws CVSException {
-		try {
-			sync.addIgnored(container, "*.xyz");
-			fail("Expected CVSException");
-		} catch (CVSException e) {
-		}
-	}
-	
-	public void testMembers() throws CoreException, CVSException {
-		IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
-		IProject project1 = getUniqueTestProject(getName() + "1");
-		IProject project2 = root.getProject(getName() + "2" + System.currentTimeMillis());
-
-		// Workspace root
-		IResource[] members = sync.members(ResourcesPlugin.getWorkspace().getRoot());
-		assertBijection(members, ResourcesPlugin.getWorkspace().getRoot().getProjects(), null);
-
-		// Non-existant project
-		members = sync.members(project2);
-		assertEquals("Non-existant project should have no members", 0, members.length);
-		
-		// Non-existant folder
-		IFolder folder = project1.getFolder("folder1");
-		assertDoesNotExistInFileSystem(folder);
-		members = sync.members(folder);
-		assertEquals("Non-existant folder should have no members", 0, members.length);
-		
-		// Non-existant folder with non-existant parent
-		IFolder childFolder = folder.getFolder("folder2");
-		assertDoesNotExistInFileSystem(childFolder);
-		members = sync.members(childFolder);
-		assertEquals("Non-existant folder should have no members", 0, members.length);
-		
-		// Project
-		buildResources(project1, new String[] {
-			"hassync.txt", "deleted_nosync.txt", "deleted.txt", "hassync/", "deleted/", "deleted_nosync/" }, true);
-
-		// initially none of the resources have sync info and they all exist
-		Object[] ignores = new Object[] { project1.getFolder("CVS") };
-		Set expectedMembers = new HashSet(Arrays.asList(project1.members()));
-		members = sync.members(project1);
-		assertBijection(expectedMembers.toArray(), members, ignores);
-		
-		// add sync info, resources should still appear exactly once
-		IResource resource = project1.getFile("hassync.txt");
-		sync.setResourceSync(resource, dummyResourceSync(resource));
-		resource = project1.getFolder("hassync");
-		sync.setResourceSync(resource, dummyResourceSync(resource));
-
-		resource = project1.getFile("deleted.txt");
-		sync.setResourceSync(resource, dummyResourceSync(resource));
-		resource = project1.getFolder("deleted");
-		sync.setResourceSync(resource, dummyResourceSync(resource));
-
-		members = sync.members(project1);
-		assertBijection(expectedMembers.toArray(), members, ignores);
-
-		// delete resources, those with sync info should still appear, those without should not
-		// (Note: This is only true for projects that have a CVS provider)
-		resource = project1.getFile("deleted.txt");
-		resource.delete(false /*force*/, null);
-		expectedMembers.remove(resource); /* added for reason noted above */
-		resource = project1.getFolder("deleted");
-		resource.delete(false /*force*/, null);
-		expectedMembers.remove(resource); /* added for reason noted above */
-
-		resource = project1.getFile("deleted_nosync.txt");
-		resource.delete(false /*force*/, null);
-		expectedMembers.remove(resource);
-		resource = project1.getFolder("deleted_nosync");
-		resource.delete(false /*force*/, null);
-		expectedMembers.remove(resource);
-
-		members = sync.members(project1);
-		assertBijection(expectedMembers.toArray(), members, ignores);
-		
-		// delete sync info, only those that exist should appear
-		resource = project1.getFile("hassync.txt");
-		sync.deleteResourceSync(resource);
-		resource = project1.getFolder("hassync");
-		sync.deleteResourceSync(resource);
-
-		resource = project1.getFile("deleted.txt");
-		sync.deleteResourceSync(resource);
-		expectedMembers.remove(resource);
-		resource = project1.getFolder("deleted");
-		sync.deleteResourceSync(resource);
-		expectedMembers.remove(resource);
-
-		members = sync.members(project1);
-		assertBijection(expectedMembers.toArray(), members, ignores);
-	}
-	
-	private FolderSyncInfo dummyFolderSync(IContainer container) {
-		return new FolderSyncInfo("repo", "root", CVSTag.DEFAULT, false);
-	}
-
-	private ResourceSyncInfo dummyResourceSync(IResource resource) {
-		if (resource.getType() == IResource.FILE) {
-			MutableResourceSyncInfo info = new MutableResourceSyncInfo(resource.getName(), "1.1");
-			info.setTag(CVSTag.DEFAULT);
-			return info;
-		} else {
-			return new ResourceSyncInfo(resource.getName());
-		}
-	}
-	
-	/**
-	 * Assert that there exists a bijection between the elements of the arrays.
-	 */
-	private void assertBijection(Object[] a, Object[] b, Object[] ignores) {
-		List listA = new LinkedList(Arrays.asList(a));
-		List listB = new LinkedList(Arrays.asList(b));
-		if (ignores != null) {
-			for (int i = 0; i < ignores.length; ++i ) {
-				listA.remove(ignores[i]);
-				listB.remove(ignores[i]);
-			}
-		}
-		assertEquals("Should have same number of elements", listA.size(), listB.size());
-		for (Iterator it = listB.iterator(); it.hasNext();) {
-			Object obj = it.next();
-			assertTrue("Should contain the same elements", listA.contains(obj));
-			listA.remove(obj);
-		}
-	}
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/cvsresources/ResourceSyncBytesTest.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/cvsresources/ResourceSyncBytesTest.java
deleted file mode 100644
index 91289f0..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/cvsresources/ResourceSyncBytesTest.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.core.cvsresources;
-
-import java.text.ParseException;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSProviderPlugin;
-import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.core.client.Session;
-import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
-import org.eclipse.team.internal.ccvs.core.syncinfo.ResourceSyncInfo;
-import org.eclipse.team.internal.ccvs.core.util.CVSDateFormatter;
-import org.eclipse.team.internal.ccvs.core.util.Util;
-import org.eclipse.team.tests.ccvs.core.CVSTestSetup;
-import org.eclipse.team.tests.ccvs.core.EclipseTest;
-import org.eclipse.team.tests.ccvs.core.TestConnection;
-
-public class ResourceSyncBytesTest extends EclipseTest {
-
-	public ResourceSyncBytesTest() {
-		super();
-	}
-
-	public ResourceSyncBytesTest(String name) {
-		super(name);
-	}
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(ResourceSyncBytesTest.class);
-		return new CVSTestSetup(suite);
-	}
-	
-	/**
-	 * Convert the input to bytes and get the bytes in the given slot delimited by slash (/).
-	 * Only retieve the bytes in the given slot and not the rest.
-	 * @param input
-	 * @param slot
-	 * @return
-	 */
-	private byte[] getBytesForSlot(String input, int slot) {
-		return getBytesForSlot(input, slot, false /* include rest */);
-	}
-	
-	/**
-	 * Convert the input to bytes and get the bytes in the given slot delimited by slash (/).
-	 * @param input
-	 * @param slot
-	 * @return
-	 */
-	private byte[] getBytesForSlot(String input, int slot, boolean includeRest) {
-		byte[] result = Util.getBytesForSlot(input.getBytes(), (byte) '/', slot, includeRest);
-		return result;
-	}
-	
-	private void assertEqualBytes(String expected, byte[] actual) {
-		assertEquals(expected, new String(actual));
-	}
-	
-	public void testUtilGetBytesForSlot() {
-		// test success cases
-		String input = "zero/one/two";
-		assertEqualBytes("zero", getBytesForSlot(input, 0));
-		assertEqualBytes("one", getBytesForSlot(input, 1));
-		assertEqualBytes("two", getBytesForSlot(input, 2));
-		assertEqualBytes("one/two", getBytesForSlot(input, 1, true /* include rest */));
-		assertEqualBytes("", getBytesForSlot("///", 0));
-		assertEqualBytes("", getBytesForSlot("///", 1));
-		assertEqualBytes("", getBytesForSlot("///", 2));
-		assertEqualBytes("/", getBytesForSlot("///", 2, true /* include rest */));
-		
-		// test failure cases
-		input = "zero/one/two";
-		assertNull(getBytesForSlot(input, 3));
-		assertNull(getBytesForSlot(input, 4));
-		assertNull(getBytesForSlot(input, -1));
-	}
-
-	public void testSendEntry() throws CVSException, ParseException {
-		ICVSRepositoryLocation location = CVSProviderPlugin.getPlugin().getRepository(":test:user:password@host:/path");
-		// disable version detemrination to reduce traffic
-		CVSProviderPlugin.getPlugin().setDetermineVersionEnabled(false);
-		// create and open a session
-		Session session = new Session(location, CVSWorkspaceRoot.getCVSFolderFor(ResourcesPlugin.getWorkspace().getRoot()));
-		session.open(DEFAULT_MONITOR);
-		
-		// test a normal entry line
-		byte[] entryLine = "/plugin.xml/1.27/Tue Mar  4 19:47:36 2003/-ko/".getBytes();
-		session.sendEntry(entryLine, ResourceSyncInfo.getTimestampToServer(entryLine, CVSDateFormatter.entryLineToDate("Tue Mar  4 19:47:36 2003")));
-		assertEquals("Entry /plugin.xml/1.27//-ko/", TestConnection.getLastLine());
-		
-		// test a server merged with conflict entry line
-		entryLine = "/newfile.txt/1.10/Result of merge+Thu Mar 20 16:36:56 2003//".getBytes();
-		session.sendEntry(entryLine, ResourceSyncInfo.getTimestampToServer(entryLine, CVSDateFormatter.entryLineToDate("Thu Mar 20 16:36:56 2003")));
-		assertEquals("Entry /newfile.txt/1.10/+=//", TestConnection.getLastLine());
-		
-		// test a server merged entry line
-		entryLine = "/newfile.txt/1.10/Result of merge+Thu Mar 20 16:36:56 2003//".getBytes();
-		session.sendEntry(entryLine, ResourceSyncInfo.getTimestampToServer(entryLine, CVSDateFormatter.entryLineToDate("Thu Mar 20 16:37:56 2003")));
-		assertEquals("Entry /newfile.txt/1.10/+modified//", TestConnection.getLastLine());
-		
-		// test added entry line
-		entryLine = "/plugin.xml/0/dummy timestamp/-ko/".getBytes();
-		session.sendEntry(entryLine, ResourceSyncInfo.getTimestampToServer(entryLine, CVSDateFormatter.entryLineToDate("Tue Mar  4 19:47:36 2003")));
-		assertEquals("Entry /plugin.xml/0//-ko/", TestConnection.getLastLine());
-		
-		// test empty timestamp entry line
-		entryLine = "/plugin.xml/1.1//-ko/".getBytes();
-		session.sendEntry(entryLine, ResourceSyncInfo.getTimestampToServer(entryLine, CVSDateFormatter.entryLineToDate("Tue Mar  4 19:47:36 2003")));
-		assertEquals("Entry /plugin.xml/1.1//-ko/", TestConnection.getLastLine());
-		
-	}
-
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/cvsresources/ResourceSyncInfoTest.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/cvsresources/ResourceSyncInfoTest.java
deleted file mode 100644
index b35ed23..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/cvsresources/ResourceSyncInfoTest.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.core.cvsresources;
-import java.util.Date;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.syncinfo.ResourceSyncInfo;
-import org.eclipse.team.tests.ccvs.core.CVSTestSetup;
-import org.eclipse.team.tests.ccvs.core.EclipseTest;
-
-public class ResourceSyncInfoTest extends EclipseTest {
-
-	public ResourceSyncInfoTest() {
-		super();
-	}
-	
-	public ResourceSyncInfoTest(String name) {
-		super(name);
-	}
-	
-	public static Test suite() {
-		TestSuite suite = new TestSuite(ResourceSyncInfoTest.class);
-		return new CVSTestSetup(suite);
-	}
-		
-	public void testEntryLineParsing() {
-		String entryLine;
-		
-		// testing malformed entry lines first
-		try {
-			new ResourceSyncInfo("//////", null, null);			
-			fail();
-		} catch(CVSException e) {
-		}
-		try {
-			new ResourceSyncInfo("//1.1///", null, null);			
-			fail();
-		} catch(CVSException e) {
-		}
-		try {
-			new ResourceSyncInfo("/file.txt////", null, null);			
-			fail();
-		} catch(CVSException e) {
-		}
-		try {
-			new ResourceSyncInfo("/file.txt//////////", null, null);			
-			fail();
-		} catch(CVSException e) {
-		}
-	}
-	
-	public void testEntryLineConstructor() throws CVSException {		
-		ResourceSyncInfo info;
-		info = new ResourceSyncInfo("/file.java/-1.1/Mon Feb 25 21:44:02 2002/-k/", null, null);
-		assertTrue(info.isDeleted());
-		
-		info = new ResourceSyncInfo("/file.java/0/something/-k/", null, null);
-		assertTrue(info.isAdded());
-		
-		info = new ResourceSyncInfo("/file.java/1.0/Mon Feb 25 21:44:02 2002/-k/Tv1", null, null);
-		assertTrue(info.getTag() != null);
-		
-		Date timestamp = new Date(123000);
-		info = new ResourceSyncInfo("/file.java/1.0/Mon Feb 25 21:44:02 2002/-k/Tv1", null, timestamp);
-		assertTrue(info.getTimeStamp().equals(timestamp));
-		
-		info = new ResourceSyncInfo("/file.java/0/Mon Feb 25 21:44:02 2002/-k/", null, timestamp);
-		assertTrue(info.getTimeStamp().equals(timestamp));
-		
-		String permissions = "u=rwx,g=rwx,o=rwx";
-		info = new ResourceSyncInfo("/file.java/2.0/Mon Feb 25 21:44:02 2002/-k/Tv1", permissions, null);
-		assertTrue(info.getPermissions().equals(permissions));
-		
-		info = new ResourceSyncInfo("D/file.java////", null, null);
-		assertTrue(info.isDirectory());
-	}
-	
-	public void testConstructor() throws CVSException {
-		ResourceSyncInfo info;
-		
-		info = new ResourceSyncInfo("folder");
-		assertTrue(info.isDirectory());
-		
-		Date timestamp = new Date(123000);
-		info = new ResourceSyncInfo("/file.java/-2.34/Mon Feb 25 21:44:02 2002/-k/Tv1", null, null);
-		assertTrue(info.isDeleted());
-		assertTrue(info.getRevision().equals("2.34"));
-		
-		info = new ResourceSyncInfo("/file.java/0/Mon Feb 25 21:44:02 2002/-k/Tv1", null, null);
-		String entry = info.getEntryLine();
-		assertTrue(info.isAdded());
-	}
-	
-	public void testMergeTimestamps() throws CVSException {
-		ResourceSyncInfo info, info2;
-		Date timestamp = new Date(123000);
-		Date timestamp2 = new Date(654000);
-				
-		info = new ResourceSyncInfo("/file.java/1.1//-kb/", null, timestamp);
-		assertTrue(!info.isMerged());
-		assertTrue(!info.isNeedsMerge(timestamp));		
-		
-		// test merged entry lines the server and ensure that their entry line format is compatible
-		info = new ResourceSyncInfo("/file.java/1.1/+=/-kb/", null, timestamp);
-		String entryLine = info.getEntryLine();
-		info2 = new ResourceSyncInfo(entryLine, null, null);
-		assertTrue(info.isMerged() && info2.isMerged());
-		assertTrue(info.isNeedsMerge(timestamp) && info2.isNeedsMerge(timestamp));
-		assertTrue(!info.isNeedsMerge(timestamp2) && !info2.isNeedsMerge(timestamp2));
-		assertTrue(info.getTimeStamp().equals(timestamp) && info2.getTimeStamp().equals(timestamp));		
-
-		info = new ResourceSyncInfo("/file.java/1.1/+modified/-kb/", null, null);
-		entryLine = info.getEntryLine();
-		info2 = new ResourceSyncInfo(entryLine, null, null);	
-		assertTrue(info.isMerged() && info2.isMerged());
-		assertTrue(!info.isNeedsMerge(timestamp) && !info2.isNeedsMerge(timestamp));
-		assertTrue(!info.isNeedsMerge(timestamp2) && !info2.isNeedsMerge(timestamp2));
-		assertTrue(info.getTimeStamp()==null && info2.getTimeStamp()==null);
-	}
-	
-	public void testTimestampCompatibility() throws CVSException, CoreException {
-		String entryLine1 = "/a.bin/1.1/Mon Feb  9 21:44:02 2002/-kb/";
-		String entryLine2 = "/a.bin/1.1/Mon Feb 9 21:44:02 2002/-kb/";
-		String entryLine3 = "/a.bin/1.1/Mon Feb 09 21:44:02 2002/-kb/";		
-		ResourceSyncInfo info1 = new ResourceSyncInfo(entryLine1, null, null);
-		ResourceSyncInfo info2 = new ResourceSyncInfo(entryLine2, null, null);
-		ResourceSyncInfo info3 = new ResourceSyncInfo(entryLine3, null, null);
-		Date date1 = info1.getTimeStamp();
-		Date date2 = info2.getTimeStamp();
-		Date date3 = info3.getTimeStamp();
-		assertTrue(date1.equals(date2));
-		assertTrue(date1.equals(date3));
-		assertTrue(date2.equals(date3));
-	}
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/AllTestsProvider.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/AllTestsProvider.java
deleted file mode 100644
index 86c4beb..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/AllTestsProvider.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.core.provider;
-import junit.framework.Test;
-import junit.framework.TestSuite;
-import org.eclipse.team.tests.ccvs.core.CVSTestSetup;
-import org.eclipse.team.tests.ccvs.core.EclipseTest;
-
-/**
- * @version 	1.0
- * @author 	${user}
- */
-public class AllTestsProvider extends EclipseTest {
-
-	/**
-	 * Constructor for AllTests.
-	 */
-	public AllTestsProvider() {
-		super();
-	}
-
-	/**
-	 * Constructor for AllTests.
-	 * @param name
-	 */
-	public AllTestsProvider(String name) {
-		super(name);
-	}
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite();
-		//suite.addTestSuite(ModuleTest.class);
-		suite.addTest(ImportTest.suite());
-		suite.addTest(RemoteResourceTest.suite());
-		suite.addTest(CVSProviderTest.suite());
-		suite.addTest(SyncElementTest.suite());
-		suite.addTest(ResourceDeltaTest.suite());
-		suite.addTest(WatchEditTest.suite());
-		suite.addTest(LinkResourcesTest.suite());
-		suite.addTest(IsModifiedTests.suite());
-		return new CVSTestSetup(suite);
-	}
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/CVSProviderTest.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/CVSProviderTest.java
deleted file mode 100644
index 8379bdf..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/CVSProviderTest.java
+++ /dev/null
@@ -1,501 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.core.provider;
-import java.io.BufferedInputStream;
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.util.HashMap;
-import java.util.Map;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.team.core.RepositoryProvider;
-import org.eclipse.team.core.Team;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.CVSProviderPlugin;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.CVSTeamProvider;
-import org.eclipse.team.internal.ccvs.core.ICVSFile;
-import org.eclipse.team.internal.ccvs.core.ICVSFolder;
-import org.eclipse.team.internal.ccvs.core.client.Command;
-import org.eclipse.team.internal.ccvs.core.client.Command.KSubstOption;
-import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
-import org.eclipse.team.internal.ccvs.core.syncinfo.ResourceSyncInfo;
-import org.eclipse.team.tests.ccvs.core.CVSTestSetup;
-import org.eclipse.team.tests.ccvs.core.EclipseTest;
-
-/*
- * This class tests both the CVSProvider and the CVSTeamProvider
- */
-public class CVSProviderTest extends EclipseTest {
-
-	/**
-	 * Constructor for CVSProviderTest
-	 */
-	public CVSProviderTest() {
-		super();
-	}
-
-	/**
-	 * Constructor for CVSProviderTest
-	 */
-	public CVSProviderTest(String name) {
-		super(name);
-	}
-
-	public static Test suite() {
-		String testName = System.getProperty("eclipse.cvs.testName");
-		if (testName == null) {
-			TestSuite suite = new TestSuite(CVSProviderTest.class);
-			return new CVSTestSetup(suite);
-		} else {
-			return new CVSTestSetup(new CVSProviderTest(testName));
-		}
-	}
-	
-	public void testAdd() throws TeamException, CoreException {
-		
-		// Test add with cvsignores
-		/*
-		IProject project = createProject("testAdd", new String[] { "changed.txt", "deleted.txt", "folder1/", "folder1/a.txt" });
-		IFile file = project.getFile(".cvsignore");
-		file.create(new ByteArrayInputStream("ignored.txt".getBytes()), false, null);
-		file = project.getFile("ignored.txt");
-		file.create(new ByteArrayInputStream("some text".getBytes()), false, null);
-		file = project.getFile("notignored.txt");
-		file.create(new ByteArrayInputStream("some more text".getBytes()), false, null);
-		file = project.getFile("folder1/.cvsignore");
-		file.create(new ByteArrayInputStream("ignored.txt".getBytes()), false, null);
-		file = project.getFile("folder1/ignored.txt");
-		file.create(new ByteArrayInputStream("some text".getBytes()), false, null);
-		file = project.getFile("folder1/notignored.txt");
-		file.create(new ByteArrayInputStream("some more text".getBytes()), false, null);
-		
-		getProvider(project).add(new IResource[] {project}, IResource.DEPTH_INFINITE, DEFAULT_MONITOR);
-		
-		assertTrue( ! CVSWorkspaceRoot.getCVSResourceFor(project.getFile("ignored.txt")).isManaged());
-		assertTrue( ! CVSWorkspaceRoot.getCVSResourceFor(project.getFile("folder1/ignored.txt")).isManaged());
-		
-		assertTrue(CVSWorkspaceRoot.getCVSResourceFor(project.getFile("notignored.txt")).isManaged());
-		assertTrue(CVSWorkspaceRoot.getCVSResourceFor(project.getFile("folder1/notignored.txt")).isManaged());
-		assertTrue(CVSWorkspaceRoot.getCVSResourceFor(project.getFile(".cvsignore")).isManaged());
-		assertTrue(CVSWorkspaceRoot.getCVSResourceFor(project.getFile("folder1/.cvsignore")).isManaged());
-		*/
-	}
-	
-	public void testDeleteHandling() throws TeamException, CoreException {
-		
-		IProject project = createProject("testDeleteHandling", new String[] { "changed.txt", "deleted.txt", "folder1/", "folder1/a.txt" });
-		
-		// Delete a file and ensure that it is an outgoing deletion
-		project.getFile("deleted.txt").delete(false, false, null);
-		ICVSFile file = CVSWorkspaceRoot.getCVSFileFor(project.getFile("deleted.txt"));
-		assertTrue("File is not outgoing deletion", file.getSyncInfo().isDeleted());
-		
-		// Delete a folder and ensure that the file is managed but doesn't exist
-		// (Special behavior is provider by the CVS move/delete hook but this is not part of CVS core)
-		project.getFolder("folder1").delete(false, false, null);
-		ICVSFolder folder = CVSWorkspaceRoot.getCVSFolderFor(project.getFolder("folder1"));
-		assertTrue("Deleted folder not in proper state", ! folder.exists() && folder.isManaged());
-	}
-	
-	public void testCheckin() throws TeamException, CoreException, IOException {
-		IProject project = createProject("testCheckin", new String[] { "changed.txt", "deleted.txt", "folder1/", "folder1/a.txt" });
-		
-		// Perform some operations on the project
-		IResource[] newResources = buildResources(project, new String[] { "added.txt", "folder2/", "folder2/added.txt" }, false);
-		setContentsAndEnsureModified(project.getFile("changed.txt"));
-		getProvider(project).add(newResources, IResource.DEPTH_ZERO, DEFAULT_MONITOR);
-		getProvider(project).delete(new IResource[] {project.getFile("deleted.txt")}, DEFAULT_MONITOR);
-		assertIsModified("testDeepCheckin: ", newResources);
-		assertIsModified("testDeepCheckin: ", new IResource[] {project.getFile("deleted.txt"), project.getFile("changed.txt")});
-		getProvider(project).checkin(new IResource[] {project}, IResource.DEPTH_INFINITE, DEFAULT_MONITOR);
-		assertLocalStateEqualsRemote(project);
-	}
-	
-	public void testMoveHandling() throws TeamException, CoreException {
-		IProject project = createProject("testMoveHandling", new String[] { "changed.txt", "deleted.txt", "folder1/", "folder1/a.txt" });
-		
-		// Move a file and ensure that it is an outgoing deletion at the source and unmanaged at the destination
-		project.getFile("deleted.txt").move(new Path("moved.txt"), false, false, null);
-		ICVSFile file = CVSWorkspaceRoot.getCVSFileFor(project.getFile("deleted.txt"));
-		assertTrue("Source is not outgoing deletion", file.getSyncInfo().isDeleted());
-		file = CVSWorkspaceRoot.getCVSFileFor(project.getFile("moved.txt"));
-		assertTrue("Destination not in proper state", ! file.isManaged());
-		
-		// Move a folder and ensure the source is deleted
-		project.getFolder("folder1").move(new Path("moved"), false, false, null);
-		ICVSFolder folder = CVSWorkspaceRoot.getCVSFolderFor(project.getFolder("folder1"));
-		assertTrue("Deleted folder not in proper state", ! folder.exists() && folder.isManaged());
-		folder = CVSWorkspaceRoot.getCVSFolderFor(project.getFolder("moved"));
-		assertTrue("Moved folder should not be managed", ! folder.isManaged());
-		assertTrue("Moved folder should not be a CVS folder", ! folder.isCVSFolder());
-	}
-	
-	public void testUpdate() throws TeamException, CoreException, IOException {
-		// Create a test project, import it into cvs and check it out
-		IProject project = createProject("testUpdate", new String[] { "changed.txt", "deleted.txt", "folder1/", "folder1/a.txt" });
-
-		// Check the project out under a different name
-		IProject copy = checkoutCopy(project, "-copy");
-		
-		// Perform some operations on the copy
-		addResources(copy, new String[] { "added.txt", "folder2/", "folder2/added.txt" }, false);
-		setContentsAndEnsureModified(copy.getFile("changed.txt"));
-		getProvider(copy).delete(new IResource[] {copy.getFile("deleted.txt")}, DEFAULT_MONITOR);
-		
-		// Commit the copy and update the project
-		getProvider(copy).checkin(new IResource[] {copy}, IResource.DEPTH_INFINITE, DEFAULT_MONITOR);
-		getProvider(project).update(new IResource[] {project}, Command.NO_LOCAL_OPTIONS, null, true /*createBackups*/, DEFAULT_MONITOR);
-		assertEquals(project, copy);
-	}
-	
-	public void testVersionTag() throws TeamException, CoreException, IOException {
-		
-		// Create a test project, import it into cvs and check it out
-		IProject project = createProject("testVersionTag", new String[] { "changed.txt", "deleted.txt", "folder1/", "folder1/a.txt" });
-		
-		// Perform some operations on the copy and commit
-		IProject copy = checkoutCopy(project, "-copy");
-		addResources(copy, new String[] { "added.txt", "folder2/", "folder2/added.txt" }, false);
-		changeResources(copy, new String[] {"changed.txt"}, false);
-		deleteResources(copy, new String[] {"deleted.txt"}, false);
-		commitResources(copy, true);
-		
-		// Tag the original, checkout the tag and compare with original
-		CVSTag v1Tag = new CVSTag("v1", CVSTag.VERSION);
-		tagProject(project, v1Tag, false);
-		IProject v1 = checkoutCopy(project, v1Tag);
-		assertEquals(project, v1);
-		
-		// Update original to HEAD and compare with copy including tags
-		updateProject(project, null, false);
-		assertEquals(project, copy, false, true);
-		
-		// Update copy to v1 and compare with the copy (including tag)
-		updateProject(copy, v1Tag, false);
-		assertEquals(copy, v1, false, true);
-		
-		// Update copy back to HEAD and compare with project (including tag)
-		updateProject(copy, CVSTag.DEFAULT, false);
-		assertEquals(project, copy, false, true);
-	}
-	
-	public void testMakeBranch() throws TeamException, CoreException, IOException {
-		// Create a test project
-		IProject project = createProject("testMakeBranch", new String[] { "file1.txt", "file2.txt", "file3.txt", "folder1/", "folder1/a.txt", "folder1/b.txt"});
-
-		// Make some local modifications including "cvs adds" and "cvs removes"
-		addResources(project, new String[] {"folder1/c.txt"}, false);
-		deleteResources(project, new String[] {"folder1/b.txt"}, false);
-		changeResources(project, new String[] {"file2.txt"}, false);
-		
-		// Make the branch including a pre-version
-		CVSTag version = new CVSTag("v1", CVSTag.BRANCH);
-		CVSTag branch = new CVSTag("branch1", CVSTag.BRANCH);
-		getProvider(project).makeBranch(new IResource[] {project}, version, branch, true, DEFAULT_MONITOR);
-
-		// Checkout a copy from the branch and version and compare
-		IProject branchCopy = checkoutCopy(project, branch);
-		IProject versionCopy = checkoutCopy(project, branch);
-		assertEquals(branchCopy, versionCopy, true, false);
-		
-		// Commit the project, update the branch and compare
-		commitProject(project);
-		updateProject(branchCopy, null, false);
-		assertEquals(branchCopy, project, false, true);
-	}
-	 
-	public void testPruning() throws TeamException, CoreException, IOException {
-		// Create a project with empty folders
-		CVSProviderPlugin.getPlugin().setPruneEmptyDirectories(false);
-		IProject project = createProject("testPruning", new String[] { "file.txt", "folder1/", "folder2/folder3/" });
-
-		// Disable pruning, checkout a copy and ensure original and copy are the same
-		IProject copy = checkoutCopy(project, "-copy");
-		assertEquals(project, copy); 
-
-		// Enable pruning, update copy and ensure emtpy folders are gone
-		CVSProviderPlugin.getPlugin().setPruneEmptyDirectories(true);
-		updateProject(copy, null, false);
-		assertDoesNotExistInFileSystem(new IResource[] {copy.getFolder("folder1"), copy.getFolder("folder2"), copy.getFolder("folder2/folder3")});
-		
-		// Checkout another copy and ensure that the two copies are the same (with pruning enabled)
-		IProject copy2 = checkoutCopy(project, "-copy2");
-		assertEquals(copy, copy2); 
-		
-		// Disable pruning, update copy and ensure directories come back
-		CVSProviderPlugin.getPlugin().setPruneEmptyDirectories(false);
-		updateProject(copy, null, false);
-		assertEquals(project, copy);
-		
-		// Enable pruning again since it's the default
-		CVSProviderPlugin.getPlugin().setPruneEmptyDirectories(true);
-	}
-
-	public void testGet() throws TeamException, CoreException, IOException {
-		
-		// Create a project
-		IProject project = createProject("testGet", new String[] { "changed.txt", "deleted.txt", "folder1/", "folder1/a.txt" });
-		
-		// Checkout a copy and modify locally
-		IProject copy = checkoutCopy(project, "-copy");
-		//addResources(copy, new String[] { "added.txt", "folder2/", "folder2/added.txt" }, false);
-		deleteResources(copy, new String[] {"deleted.txt"}, false);
-		setContentsAndEnsureModified(copy.getFile("changed.txt"));
-
-		// get the remote conetns
-		getProvider(copy).get(new IResource[] {copy}, IResource.DEPTH_INFINITE, DEFAULT_MONITOR);
-		assertEquals(project, copy);
-	}
-	
-	public void testReadOnly() throws TeamException, CoreException, IOException {
-		IProject project = createProject("testReadOnly", new String[] { "changed.txt", "deleted.txt", "folder1/", "folder1/a.txt" });
-		// Need to check the project out as read-only
-	}
-	
-	public void testCleanLineDelimiters() throws TeamException, CoreException, IOException {
-		// Create a project
-		IProject project = getUniqueTestProject("testCleanLineDelimiters");
-		IFile file = project.getFile("testfile");
-		IProgressMonitor monitor = new NullProgressMonitor();
-
-		// empty file
-		setFileContents(file, "");
-		CVSTeamProvider.cleanLineDelimiters(file, false, monitor);
-		assertEqualsFileContents(file, "");
-		CVSTeamProvider.cleanLineDelimiters(file, true, monitor);
-		assertEqualsFileContents(file, "");
-		
-		// one byte
-		setFileContents(file, "a");
-		CVSTeamProvider.cleanLineDelimiters(file, false, monitor);
-		assertEqualsFileContents(file, "a");
-		CVSTeamProvider.cleanLineDelimiters(file, true, monitor);
-		assertEqualsFileContents(file, "a");
-		
-		// single orphan carriage return (should be preserved)
-		setFileContents(file, "\r");
-		CVSTeamProvider.cleanLineDelimiters(file, false, monitor);
-		assertEqualsFileContents(file, "\r");
-		CVSTeamProvider.cleanLineDelimiters(file, true, monitor);
-		assertEqualsFileContents(file, "\r");
-
-		// single line feed
-		setFileContents(file, "\n");
-		CVSTeamProvider.cleanLineDelimiters(file, false, monitor);
-		assertEqualsFileContents(file, "\n");
-		CVSTeamProvider.cleanLineDelimiters(file, true, monitor);
-		assertEqualsFileContents(file, "\r\n");
-		
-		// single carriage return line feed
-		setFileContents(file, "\r\n");
-		CVSTeamProvider.cleanLineDelimiters(file, true, monitor);
-		assertEqualsFileContents(file, "\r\n");
-		CVSTeamProvider.cleanLineDelimiters(file, false, monitor);
-		assertEqualsFileContents(file, "\n");
-		
-		// mixed text with orphaned CR's
-		setFileContents(file, "The \r\n quick brown \n fox \r\r\r\n jumped \n\n over \r\n the \n lazy dog.\r\n");
-		CVSTeamProvider.cleanLineDelimiters(file, false, monitor);
-		assertEqualsFileContents(file, "The \n quick brown \n fox \r\r\n jumped \n\n over \n the \n lazy dog.\n");
-		setFileContents(file, "The \r\n quick brown \n fox \r\r\r\n jumped \n\n over \r\n the \n lazy dog.\r\n");
-		CVSTeamProvider.cleanLineDelimiters(file, true, monitor);
-		assertEqualsFileContents(file, "The \r\n quick brown \r\n fox \r\r\r\n jumped \r\n\r\n over \r\n the \r\n lazy dog.\r\n");
-	}
-	
-	public void testKeywordSubstitution() throws TeamException, CoreException, IOException {
-		testKeywordSubstitution(Command.KSUBST_BINARY); // -kb
-		testKeywordSubstitution(Command.KSUBST_TEXT); // -ko
-		testKeywordSubstitution(Command.KSUBST_TEXT_EXPAND); // -kkv
-	}
-
-	private void testKeywordSubstitution(KSubstOption ksubst) throws TeamException, CoreException, IOException {
-		// setup some known file types
-		Team.setAllTypes( new String[] {"xbin", "xtxt"}, new int[] {Team.BINARY, Team.TEXT});
-		
-		// create a test project
-		IProject project = createProject("testKeywordSubstitution", new String[] { "dummy" });
-		addResources(project, new String[] { "binary.xbin", "text.xtxt", "folder1/", "folder1/a.xtxt" }, true);
-		addResources(project, new String[] { "added.xbin", "added.xtxt" }, false);
-		assertHasKSubstOption(project, "binary.xbin", Command.KSUBST_BINARY);
-		assertHasKSubstOption(project, "added.xbin", Command.KSUBST_BINARY);
-		assertHasKSubstOption(project, "text.xtxt", CVSProviderPlugin.DEFAULT_TEXT_KSUBST_OPTION);
-		assertHasKSubstOption(project, "folder1/a.xtxt", CVSProviderPlugin.DEFAULT_TEXT_KSUBST_OPTION);
-		assertHasKSubstOption(project, "added.xtxt", CVSProviderPlugin.DEFAULT_TEXT_KSUBST_OPTION);
-		
-		// change keyword substitution
-		Map map = new HashMap();
-		map.put(project.getFile("binary.xbin"), ksubst);
-		map.put(project.getFile("added.xbin"), ksubst);
-		map.put(project.getFile("text.xtxt"), ksubst);
-		map.put(project.getFile("folder1/a.xtxt"), ksubst);
-		map.put(project.getFile("added.xtxt"), ksubst);
-		
-		waitMsec(1500);
-		IStatus status = getProvider(project).setKeywordSubstitution(map, null, null);
-		assertTrue("Status should be ok, was: " + status.toString(), status.isOK());
-		assertHasKSubstOption(project, "binary.xbin", ksubst);
-		assertHasKSubstOption(project, "text.xtxt", ksubst);
-		assertHasKSubstOption(project, "folder1/a.xtxt", ksubst);
-		assertHasKSubstOption(project, "added.xtxt", ksubst);
-		assertHasKSubstOption(project, "added.xbin", ksubst);
-
-		// verify that substitution mode changed remotely and "added.xtxt", "added.xbin" don't exist
-		IProject copy = checkoutCopy(project, "-copy");
-		assertHasKSubstOption(copy, "binary.xbin", ksubst);
-		assertHasKSubstOption(copy, "text.xtxt", ksubst);
-		assertHasKSubstOption(copy, "folder1/a.xtxt", ksubst);
-		assertDoesNotExistInWorkspace(copy.getFile("added.xtxt"));
-		assertDoesNotExistInWorkspace(copy.getFile("added.xbin"));
-		
-		// commit added files then checkout the copy again
-		commitResources(project, new String[] { "added.xbin", "added.xtxt" });
-		IProject copy2 = checkoutCopy(project, "-copy2");
-		assertHasKSubstOption(copy2, "added.xtxt", ksubst);
-		assertHasKSubstOption(copy2, "added.xbin", ksubst);
-		
-		// verify that local contents are up to date
-		assertEquals(project, copy2);
-	}
-	
-	public static void setFileContents(IFile file, String string) throws CoreException {
-		InputStream is = new ByteArrayInputStream(string.getBytes());
-		if (file.exists()) {
-			file.setContents(is, false /*force*/, true /*keepHistory*/, null);
-		} else {
-			file.create(is, false /*force*/, null);
-		}
-	}
-	public static String getFileContents(IFile file) throws CoreException, IOException {
-		StringBuffer buf = new StringBuffer();
-		Reader reader = new InputStreamReader(new BufferedInputStream(file.getContents()));
-		try {
-			int c;
-			while ((c = reader.read()) != -1) buf.append((char) c);
-		} finally {
-			reader.close();
-		}
-		return buf.toString();
-	}
-	
-	public static void assertEqualsFileContents(IFile file, String string) throws CoreException, IOException {
-		String other = getFileContents(file);
-		assertEquals(string, other);
-	}
-	
-	public static void assertHasKSubstOption(IContainer container, String filename, KSubstOption ksubst)
-		throws TeamException {
-		IFile file = container.getFile(new Path(filename));
-		ICVSFile cvsFile = CVSWorkspaceRoot.getCVSFileFor(file);
-		ResourceSyncInfo info = cvsFile.getSyncInfo();
-		assertEquals(ksubst, info.getKeywordMode());
-	}
-	
-	public void testUnmap() throws CoreException, TeamException {
-		// Create a project
-		IProject project = createProject("testUnmap", new String[] { "changed.txt", "deleted.txt", "folder1/", "folder1/a.txt", "folder1/", "folder1/folder2/deep.txt", "folder2/b.txt" });
-		// delete a file and folder to create phantoms
-		project.getFile("deleted.txt").delete(false, false, null);
-		assertTrue(project.getFile("deleted.txt").isPhantom());
-		project.getFolder("folder2").delete(false, false, null);
-		assertTrue(project.getFolder("folder2").isPhantom());
-		// unmap
-		RepositoryProvider.unmap(project);
-		// ensure that phantoms for the resoucrs no longer exist
-		assertFalse(project.getFile("deleted.txt").isPhantom());
-		assertFalse(project.getFolder("folder2").isPhantom());
-		
-		// Create a project
-		project = createProject("testUnmap2", new String[] { "changed.txt", "deleted.txt", "folder1/", "folder1/a.txt", "folder1/", "folder1/folder2/deep.txt", "folder2/b.txt" });
-		// delete a deep folder to create phantoms
-		project.getFolder("folder1/folder2").delete(false, false, null);
-		assertTrue(project.getFolder("folder1/folder2").isPhantom());
-		// unmap
-		RepositoryProvider.unmap(project);
-		// ensure that phantoms for the resources no longer exist
-		assertFalse(project.getFolder("folder1/folder2").isPhantom());
-	}
-	
-	public void testForBinaryLinefeedCorruption() throws CoreException, TeamException, IOException {
-		String EOL = "\n";
-		IProject project = createProject("testForBinaryLinefeedCorruption", new String[] { "binaryFile" });
-		ICVSFile cvsFile = CVSWorkspaceRoot.getCVSFileFor(project.getFile("binaryFile"));
-		assertTrue(ResourceSyncInfo.isBinary(cvsFile.getSyncBytes()));
-		setContentsAndEnsureModified(project.getFile("binaryFile"), "line 1" + EOL + "line 2");
-		commitProject(project);
-		
-		// Checkout a copy and ensure the file was not corrupted
-		IProject copy = checkoutCopy(project, "-copy");
-		assertEquals(project, copy);
-	}
-	
-	public void test33984CannotCommitAfterConflictsMergedLocally() throws CoreException, TeamException, IOException {
-			String EOL = System.getProperty("line.separator");
-			
-			IProject project = createProject("test33984", new String[] { "a.txt", "b.txt" });
-			setContentsAndEnsureModified(project.getFile("a.txt"), "line 1");
-		    setContentsAndEnsureModified(project.getFile("b.txt"), ("line 1" + EOL + "line 2" + EOL + "line3"));
-
-			Map kMode = new HashMap();
-			kMode.put(project.getFile("a.txt"), Command.KSUBST_TEXT);
-			kMode.put(project.getFile("b.txt"), Command.KSUBST_TEXT);
-			getProvider(project).setKeywordSubstitution(kMode, "", null);
-		    
-			commitProject(project);
-			
-
-		
-			// Checkout a copy and ensure the file was not corrupted
-			IProject copy = checkoutCopy(project, "-copy");
-			assertEquals(project, copy);
-			
-			// TEST 1: simulate modifying same file by different users
-			// b.txt has non-conflicting changes 
-			setContentsAndEnsureModified(copy.getFile("b.txt"), ("line 1a" + EOL + "line 2" + EOL + "line3"));
-		    
-			commitProject(copy);
-			
-			// user updates which would cause a merge with conflict, a commit should not be allowed
-			
-			setContentsAndEnsureModified(project.getFile("b.txt"), ("line 1" + EOL + "line 2" + EOL + "line3a"));
-			updateProject(project, CVSTag.DEFAULT, false /* don't ignore local changes */);
-			commitProject(project);
-
-			// TEST 2: a.txt has conflicting changes
-			setContentsAndEnsureModified(copy.getFile("a.txt"), "line 1dfgdfne3");
-  
-			commitProject(copy);
-			
-			// user updates which would cause a merge with conflict, a commit should not be allowed
-			setContentsAndEnsureModified(project.getFile("a.txt"), "some other text");
-			updateProject(project, CVSTag.DEFAULT, false /* don't ignore local changes */);
-			try {
-				commitProject(project);
-				fail("should not be allowed to commit a resource with merged conflicts");
-			} catch(TeamException e) {
-			}
-	}
-}
-
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/ImportTest.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/ImportTest.java
deleted file mode 100644
index e66a650..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/ImportTest.java
+++ /dev/null
@@ -1,161 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.core.provider;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IProjectDescription;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
-import org.eclipse.team.tests.ccvs.core.CVSTestSetup;
-import org.eclipse.team.tests.ccvs.core.EclipseTest;
-
-/**
- * @version 	1.0
- * @author 	${user}
- */
-public class ImportTest extends EclipseTest {
-
-	/**
-	 * Constructor for ImportTest.
-	 */
-	public ImportTest() {
-		super();
-	}
-
-	/**
-	 * Constructor for ImportTest.
-	 * @param name
-	 */
-	public ImportTest(String name) {
-		super(name);
-	}
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(ImportTest.class);
-		return new CVSTestSetup(suite);
-		//return new CVSTestSetup(new ImportTest("testReadOnly"));
-	}
-	
-	// Assert that the two containers have equal contents
-	protected void assertEquals(IContainer container1, IContainer container2) throws CoreException {
-		assertEquals(container1.getName(), container2.getName());
-		List members1 = new ArrayList();
-		members1.addAll(Arrays.asList(container1.members()));
-		members1.remove(container1.findMember("CVS"));
-		
-		List members2 = new ArrayList();
-		members2.addAll(Arrays.asList(container2.members()));
-		members2.remove(container2.findMember("CVS"));
-		
-		assertTrue(members1.size() == members2.size());
-		for (int i=0;i<members1.size();i++) {
-			IResource member1 = (IResource)members1.get(i);
-			IResource member2 = container2.findMember(member1.getName());
-			assertNotNull(member2);
-			assertEquals(member1, member2);
-		}
-	}
-	
-	// Assert that the two files have equal contents
-	protected void assertEquals(IFile file1, IFile file2) throws CoreException {
-		assertEquals(file1.getName(), file2.getName());
-		assertTrue(compareContent(file1.getContents(), file2.getContents()));
-	}
-	
-	// Assert that the two projects have equal contents ignoreing the project name
-	// and the .vcm_meta file
-	protected void assertEquals(IProject container1, IProject container2) throws CoreException {
-		List members1 = new ArrayList();
-		members1.addAll(Arrays.asList(container1.members()));
-		members1.remove(container1.findMember(".project"));
-		members1.remove(container1.findMember("CVS"));
-		
-		List members2 = new ArrayList();
-		members2.addAll(Arrays.asList(container2.members()));
-		members2.remove(container2.findMember(".project"));
-		members2.remove(container2.findMember("CVS"));
-		
-		assertTrue("Number of children differs for " + container1.getFullPath(), members1.size() == members2.size());
-		for (int i=0;i<members1.size();i++) {
-			IResource member1 = (IResource)members1.get(i);
-			IResource member2 = container2.findMember(member1.getName());
-			assertNotNull(member2);
-			assertEquals(member1, member2);
-		}
-	}
-	protected void assertEquals(IResource resource1, IResource resource2) throws CoreException {
-		assertEquals(resource1.getType(), resource2.getType());
-		if (resource1.getType() == IResource.FILE)
-			assertEquals((IFile)resource1, (IFile)resource2);
-		else 
-			assertEquals((IContainer)resource1, (IContainer)resource2);
-	}
-	
-	public void testImportAndCheckout() throws TeamException, CoreException {
-		// Create a test project and import it into cvs
-		IProject project = getUniqueTestProject("testImport");
-		IResource[] result = buildResources(project, new String[] { "file1.txt", "folder1/", "folder1/a.txt" }, true);
-		importProject(project);
-		
-		// Check it out under a different name and validate that the results are the same
-		IProject copy = getWorkspace().getRoot().getProject(project.getName() + "Copy");
-		CVSWorkspaceRoot.checkout(getRepository(), copy, project.getName(), null, DEFAULT_MONITOR);
-		assertValidCheckout(copy);
-		assertEquals(project, copy);
-	}
-	
-	public void testCheckout() throws TeamException, CoreException, IOException {
-		// Create a project and checkout a copy
-		IProject project = createProject("testCheckout", new String[] { "changed.txt", "deleted.txt", "folder1/", "folder1/a.txt" });
-		IProject copy = checkoutCopy(project, "-copy");
-		
-		// 0. checkout the project again
-		project = checkoutProject(project, null, null);
-		assertEquals(project, copy, true, true);
-		
-		// 1. Delete the project but not it's contents and checkout the project again
-		project.delete(false, false, DEFAULT_MONITOR);
-		project = checkoutProject(project, null, null);
-		assertEquals(project, copy, true, true);
-		
-		// 2. Delete the project and its contents and use the module name instead of the project
-		project.delete(true, false, DEFAULT_MONITOR);
-		project = checkoutProject(null, project.getName(), null);
-		assertEquals(project, copy, true, true);
-		
-		// 3. Create a project in a custom location and check out over it
-		project.delete(true, false, DEFAULT_MONITOR);
-		IProjectDescription desc = ResourcesPlugin.getWorkspace().newProjectDescription(project.getName());
-		//desc.setLocation(new Path("C:\\temp\\project"));
-		project.create(desc, DEFAULT_MONITOR);
-		project = checkoutProject(project, null, null);
-		assertEquals(project, copy, true, true);
-		
-		// 4. Checkout something that doesn't contain a .project
-		project.delete(true, false, DEFAULT_MONITOR);
-		project = checkoutProject(null, project.getName() + "/folder1", null);
-		//assertEquals(project, copy.getFolder("folder1"));
-		
-
-	}
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/IsModifiedTests.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/IsModifiedTests.java
deleted file mode 100644
index f1eed90..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/IsModifiedTests.java
+++ /dev/null
@@ -1,538 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.core.provider;
-
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSProviderPlugin;
-import org.eclipse.team.internal.ccvs.core.ICVSFile;
-import org.eclipse.team.internal.ccvs.core.ICVSFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSResource;
-import org.eclipse.team.internal.ccvs.core.ICVSResourceVisitor;
-import org.eclipse.team.internal.ccvs.core.IResourceStateChangeListener;
-import org.eclipse.team.internal.ccvs.core.client.Command;
-import org.eclipse.team.internal.ccvs.core.client.Update;
-import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
-import org.eclipse.team.tests.ccvs.core.CVSTestSetup;
-import org.eclipse.team.tests.ccvs.core.EclipseTest;
-
-/**
- * Test isModified on file, folders and projects.
- */
-public class IsModifiedTests extends EclipseTest {
-
-	Set previouslyModified = new HashSet();
-	Map changedResources = new HashMap();
-	IResourceStateChangeListener listener = new IResourceStateChangeListener() {
-		public void resourceSyncInfoChanged(IResource[] changedResources) {
-			try {
-				for (int i = 0; i < changedResources.length; i++) {
-					IResource resource = changedResources[i];
-					ICVSResource cvsResource = CVSWorkspaceRoot.getCVSResourceFor(resource);
-					recordModificationState(cvsResource);
-					recordParents(cvsResource);
-					if (cvsResource.isFolder()) {
-						recordChildren((ICVSFolder)cvsResource);
-					}
-				}
-			} catch (CVSException e) {
-				fail(e.getMessage());
-			}
-		}
-		private void recordChildren(ICVSFolder folder) {
-			try {
-				folder.accept(new ICVSResourceVisitor() {
-					public void visitFile(ICVSFile file) throws CVSException {
-						recordModificationState(file);
-					}
-					public void visitFolder(ICVSFolder folder) throws CVSException {
-						recordModificationState(folder);
-						folder.acceptChildren(this);
-					}
-				});
-			} catch (CVSException e) {
-				fail(e.getMessage());
-			}
-		}
-		private void recordParents(ICVSResource cvsResource) throws CVSException {
-			if (cvsResource.getIResource().getType() == IResource.ROOT) return;
-			recordModificationState(cvsResource);
-			recordParents(cvsResource.getParent());
-		}
-		private void recordModificationState(ICVSResource cvsResource) throws CVSException {
-			IsModifiedTests.this.changedResources.put(cvsResource.getIResource(), cvsResource.isModified(null) ? Boolean.TRUE : Boolean.FALSE);
-		}
-		public void resourceModified(IResource[] changedResources) {
-			try {
-				for (int i = 0; i < changedResources.length; i++) {
-					IResource resource = changedResources[i];
-					ICVSResource cvsResource = CVSWorkspaceRoot.getCVSResourceFor(resource);
-					IsModifiedTests.this.changedResources.put(resource, cvsResource.isModified(null) ? Boolean.TRUE : Boolean.FALSE);
-					recordParents(cvsResource);
-					if (cvsResource.isFolder()) {
-						recordChildren((ICVSFolder)cvsResource);
-					}
-				}
-			} catch (CVSException e) {
-				fail(e.getMessage());
-			}
-		}
-		public void projectConfigured(IProject project) {
-		}
-		public void projectDeconfigured(IProject project) {
-		}
-	};
-	
-	/**
-	 * Constructor for CVSProviderTest
-	 */
-	public IsModifiedTests() {
-		super();
-	}
-
-	/**
-	 * Constructor for CVSProviderTest
-	 */
-	public IsModifiedTests(String name) {
-		super(name);
-	}
-
-	public static Test suite() {
-		String testName = System.getProperty("eclipse.cvs.testName");
-		if (testName == null) {
-			TestSuite suite = new TestSuite(IsModifiedTests.class);
-			return new CVSTestSetup(suite);
-		} else {
-			return new CVSTestSetup(new IsModifiedTests(testName));
-		}
-	}
-
-	/**
-	 * @see junit.framework.TestCase#setUp()
-	 */
-	protected void setUp() throws Exception {
-		super.setUp();
-		previouslyModified.clear();
-		changedResources.clear();
-		CVSProviderPlugin.addResourceStateChangeListener(listener);
-	}
-
-	/**
-	 * @see junit.framework.TestCase#tearDown()
-	 */
-	protected void tearDown() throws Exception {
-		previouslyModified.clear();
-		changedResources.clear();
-		CVSProviderPlugin.removeResourceStateChangeListener(listener);
-		super.tearDown();
-	}
-	
-	/*
-	 * Assert that the modification state of the provided resources matches the
-	 * provided state and that the other are the opposite state.
-	 */
-	private void assertModificationState(IContainer container, String[] resources, final boolean listedResourcesShouldBeModified) throws CVSException {
-		final ICVSFolder rootFolder = CVSWorkspaceRoot.getCVSFolderFor(container);
-		final List resourceList = new ArrayList();
-		final Set modifiedResources = new HashSet();
-		if (resources != null) {
-			for (int i = 0; i < resources.length; i++) {
-				String string = resources[i];
-				resourceList.add(new Path(string));
-			}
-		}
-		rootFolder.accept(new ICVSResourceVisitor() {
-			public void visitFile(ICVSFile file) throws CVSException {
-				assertModificationState(file);
-			}
-			public void visitFolder(ICVSFolder folder) throws CVSException {
-				// find the deepest mistake
-				folder.acceptChildren(this);
-				assertModificationState(folder);	
-			}
-			public void assertModificationState(ICVSResource resource) throws CVSException {
-				IPath relativePath = new Path(resource.getRelativePath(rootFolder));
-				boolean resourceModified = resource.isModified(null);
-				boolean resourceListed = resourceList.contains(relativePath);
-				assertTrue(resource.getIResource().getFullPath().toString() 
-						+ (resourceModified ? " should not be modified but is" : " should be modified but isn't"),
-					(listedResourcesShouldBeModified && (resourceModified == resourceListed)) ||
-					(!listedResourcesShouldBeModified && (!resourceModified == resourceListed)));
-					
-//				Commented because the CVS core doesn't rely on resourceModify to be called.
-//				IResource iResource = resource.getIResource();
-//				if (resource.isModified()) {
-//					modifiedResources.add(iResource);
-//					if (!wasPreviouslyModified(iResource)) {
-//						// the state has changed, make sure we got a notification
-//						Boolean b = (Boolean)changedResources.get(iResource);
-//						assertTrue("No notification received for state change of " + iResource.getFullPath().toString(),
-//							b == Boolean.TRUE);
-//					}	
-//				} else {
-//					if (wasPreviouslyModified(iResource)) {
-//						// the state has changed, make sure we got a notification
-//						Boolean b = (Boolean)changedResources.get(iResource);
-//						assertTrue("No notification received for state change of " + iResource.getFullPath().toString(),
-//							b == Boolean.FALSE);
-//					}
-//				}
-			}
-			public boolean wasPreviouslyModified(IResource iResource) {
-				return previouslyModified.contains(iResource);
-			}
-		});
-		changedResources.clear();
-		previouslyModified.clear();
-		previouslyModified.addAll(modifiedResources);
-	}
-	
-	/**
-	 * Assert that a project (and all it's children) is clean after it is
-	 * created and shared.
-	 * 
-	 * @see org.eclipse.team.tests.ccvs.core.EclipseTest#createProject(java.lang.String, java.lang.String)
-	 */
-	protected IProject createProject(String prefix, String[] resources) throws CoreException, TeamException {
-		IProject project = super.createProject(prefix, resources);
-		assertModificationState(project, null, true);
-		return project;
-	}
-
-
-	public void testFileModifications() throws CoreException, TeamException {
-		IProject project = createProject("testFileModifications", new String[] { "changed.txt", "deleted.txt", "folder1/", "folder1/a.txt" });
-		// change two files, commit one and revert the other
-		setContentsAndEnsureModified(project.getFile("changed.txt"));
-		assertModificationState(project, new String[] {".", "changed.txt"}, true);
-		setContentsAndEnsureModified(project.getFile(new Path("folder1/a.txt")));
-		assertModificationState(project, new String[] {".", "changed.txt", "folder1/", "folder1/a.txt"}, true);
-		commitResources(project, new String[] {"folder1/a.txt"});
-		assertModificationState(project, new String[] {".", "changed.txt"}, true);
-		getProvider(project).get(new IResource[] {project.getFile("changed.txt")}, IResource.DEPTH_INFINITE, DEFAULT_MONITOR);
-		assertModificationState(project, null, true);
-	}
-
-	public void testFileDeletions() throws CoreException, TeamException {
-		IProject project = createProject("testFileDeletions", new String[] { "changed.txt", "folder1/", "folder1/deleted.txt", "folder1/a.txt" });
-		// delete and commit a file
-		project.getFile("folder1/deleted.txt").delete(false, DEFAULT_MONITOR);
-		assertModificationState(project, new String[] {".", "folder1/", "folder1/deleted.txt"}, true);
-		commitResources(project, new String[] {"folder1/deleted.txt"});
-		assertModificationState(project, null, true);
-		// modify, delete and revert a file
-		setContentsAndEnsureModified(project.getFile("changed.txt"));
-		assertModificationState(project, new String[] {".", "changed.txt"}, true);
-		project.getFile("changed.txt").delete(false, DEFAULT_MONITOR);
-		assertModificationState(project, new String[] {".", "changed.txt"}, true);
-		getProvider(project).get(new IResource[] {project.getFile("changed.txt")}, IResource.DEPTH_INFINITE, DEFAULT_MONITOR);
-		assertModificationState(project, null, true);
-		// modify, delete and commit a file
-		setContentsAndEnsureModified(project.getFile("changed.txt"));
-		assertModificationState(project, new String[] {".", "changed.txt"}, true);
-		project.getFile("changed.txt").delete(false, DEFAULT_MONITOR);
-		assertModificationState(project, new String[] {".", "changed.txt"}, true);
-		commitResources(project, new String[] {"changed.txt"});
-		assertModificationState(project, null, true);
-		// delete, recreate and commit
-		project.getFile("folder1/a.txt").delete(false, DEFAULT_MONITOR);
-		assertModificationState(project, new String[] {".", "folder1/", "folder1/a.txt"}, true);
-		IResource[] addedResources = buildResources(project, new String[] {"folder1/a.txt"}, false);
-		assertModificationState(project, new String[] {".", "folder1/", "folder1/a.txt"}, true);
-		commitResources(project, new String[] {"folder1/a.txt"});
-		assertModificationState(project, null, true);
-		
-	}
-	
-	public void testFileAdditions() throws CoreException, TeamException {
-		IProject project = createProject("testFileAdditions", new String[] { "changed.txt", "folder1/", "folder1/deleted.txt", "folder1/a.txt" });
-		// create, add and commit a file
-		IResource[] addedResources = buildResources(project, new String[] {"folder1/added.txt"}, false);
-		assertModificationState(project, new String[] {".", "folder1/", "folder1/added.txt"}, true);
-		getProvider(project).add(addedResources, IResource.DEPTH_ZERO, DEFAULT_MONITOR);
-		assertModificationState(project, new String[] {".", "folder1/", "folder1/added.txt"}, true);
-		commitResources(project, new String[] {"folder1/added.txt"});
-		assertModificationState(project, null, true);
-		// create, add and delete a file
-		addResources(project, new String[] {"added.txt"}, false);
-		assertModificationState(project, new String[] {".", "added.txt"}, true);
-		project.getFile("added.txt").delete(false, false, DEFAULT_MONITOR);
-		assertModificationState(project, null, true);
-		// create and delete a file
-		addedResources = buildResources(project, new String[] {"folder1/another.txt"}, false);
-		assertModificationState(project, new String[] {".", "folder1/", "folder1/another.txt"}, true);
-		project.getFile("folder1/another.txt").delete(false, false, DEFAULT_MONITOR);
-		assertModificationState(project, null, true);
-		// create and ignore a file
-		addedResources = buildResources(project, new String[] {"ignored.txt"}, false);
-		assertModificationState(project, new String[] {".", "ignored.txt"}, true);
-		project.getFile(".cvsignore").create(new ByteArrayInputStream("ignored.txt".getBytes()), false, DEFAULT_MONITOR);
-		assertModificationState(project, new String[] {".", ".cvsignore"}, true);
-		getProvider(project).add(new IResource[] {project.getFile(".cvsignore")}, IResource.DEPTH_ZERO, DEFAULT_MONITOR);
-		assertModificationState(project, new String[] {".", ".cvsignore"}, true);
-		commitResources(project, new String[] {".cvsignore"});
-		assertModificationState(project, null, true);
-		// delete the .cvsignore to see the modification come back
-		project.getFile(".cvsignore").delete(false, DEFAULT_MONITOR);
-		assertModificationState(project, new String[] {".", "ignored.txt", ".cvsignore"}, true);
-		commitResources(project, new String[] {".cvsignore"});
-		assertModificationState(project, new String[] {".", "ignored.txt"}, true);
-		// re-add the ignore and then delete the ignored
-		project.getFile(".cvsignore").create(new ByteArrayInputStream("ignored.txt".getBytes()), false, DEFAULT_MONITOR);
-		getProvider(project).add(new IResource[] {project.getFile(".cvsignore")}, IResource.DEPTH_ZERO, DEFAULT_MONITOR);
-		assertModificationState(project, new String[] {".", ".cvsignore"}, true);
-		commitResources(project, new String[] {".cvsignore"});
-		assertModificationState(project, null, true);
-		project.getFile("ignored.txt").delete(false, DEFAULT_MONITOR);
-		assertModificationState(project, null, true);
-		// add the ignored file to version control
-		buildResources(project, new String[] {"ignored.txt"}, false);
-		assertModificationState(project, null, true);
-		getProvider(project).add(new IResource[] {project.getFile("ignored.txt")}, IResource.DEPTH_ZERO, DEFAULT_MONITOR);
-		assertModificationState(project, new String[] {".", "ignored.txt"}, true);
-		commitProject(project);
-		assertModificationState(project, null, true);
-	}
-	
-	public void testFileMoveAndCopy() throws CoreException, TeamException {
-		IProject project = createProject("testFileMoveAndCopy", new String[] { "changed.txt", "folder1/", "folder2/", "folder1/a.txt" });
-		// move a file
-		project.getFile("folder1/a.txt").move(project.getFile("folder2/a.txt").getFullPath(), false, DEFAULT_MONITOR);
-		assertModificationState(project, new String[] {".", "folder1/", "folder1/a.txt", "folder2/", "folder2/a.txt"}, true);
-		// commit the source
-		commitResources(project, new String[] {"folder1/a.txt"});
-		assertModificationState(project, new String[] {".", "folder2/", "folder2/a.txt"}, true);
-		// copy the destination back to the source
-		project.getFolder("folder1").create(false, true, DEFAULT_MONITOR);
-		project.getFile("folder2/a.txt").copy(project.getFile("folder1/a.txt").getFullPath(), false, DEFAULT_MONITOR);
-		assertModificationState(project, new String[] {".", "folder1/", "folder1/a.txt", "folder2/", "folder2/a.txt"}, true);
-		// add the source, delete the destination and commit
-		getProvider(project).add(new IResource[] {project.getFile("folder1/a.txt")}, IResource.DEPTH_ZERO, DEFAULT_MONITOR);
-		project.getFile("folder2/a.txt").delete(false, DEFAULT_MONITOR);
-		commitProject(project);
-		assertModificationState(project, null, true);
-		// Do the above without committing the source
-		project.getFile("folder1/a.txt").move(project.getFile("folder2/a.txt").getFullPath(), false, DEFAULT_MONITOR);
-		assertModificationState(project, new String[] {".", "folder1/", "folder1/a.txt", "folder2/", "folder2/a.txt"}, true);
-		// copy the destination back to the source
-		project.getFile("folder2/a.txt").copy(project.getFile("folder1/a.txt").getFullPath(), false, DEFAULT_MONITOR);
-		assertModificationState(project, new String[] {".", "folder2/", "folder2/a.txt"}, true);
-		getProvider(project).add(new IResource[] {project.getFile("folder2/a.txt")}, IResource.DEPTH_ZERO, DEFAULT_MONITOR);
-		commitProject(project);
-		assertModificationState(project, null, true);
-	}
-	
-	public void testFolderAdditions() throws CoreException, TeamException {
-		IProject project = createProject("testFileAdditions", new String[] { "changed.txt", "folder1/", "folder1/deleted.txt", "folder1/a.txt" });
-		// create a folder
-		project.getFolder("folder1/folder2").create(false, true, DEFAULT_MONITOR);
-		assertModificationState(project, new String[] {".", "folder1/", "folder1/folder2/"}, true);
-		getProvider(project).add(new IResource[] {project.getFolder("folder1/folder2/")}, IResource.DEPTH_ZERO, DEFAULT_MONITOR);
-		assertModificationState(project, null, true);
-		
-		// create a folder
-		project.getFolder("folder1/folder2/folder3").create(false, true, DEFAULT_MONITOR);
-		assertModificationState(project, new String[] {".", "folder1/", "folder1/folder2/", "folder1/folder2/folder3"}, true);
-		// add some children
-		buildResources(project, new String[] {
-			"folder1/folder2/folder3/add1.txt", 
-			"folder1/folder2/folder3/add2.txt",
-			"folder1/folder2/folder3/folder4/",
-			"folder1/folder2/folder3/folder5/"}, false);
-		assertModificationState(project, new String[] {".", "folder1/", "folder1/folder2/", "folder1/folder2/folder3",
-			"folder1/folder2/folder3/add1.txt",
-			"folder1/folder2/folder3/add2.txt",
-			"folder1/folder2/folder3/folder4/",
-			"folder1/folder2/folder3/folder5/"}, true);
-		// delete some children
-		project.getFile("folder1/folder2/folder3/add2.txt").delete(false, DEFAULT_MONITOR);
-		project.getFolder("folder1/folder2/folder3/folder5/").delete(false, DEFAULT_MONITOR);
-		assertModificationState(project, new String[] {".", "folder1/", "folder1/folder2/", "folder1/folder2/folder3",
-			"folder1/folder2/folder3/add1.txt",
-			"folder1/folder2/folder3/folder4/"}, true);
-		// add to version control
-		getProvider(project).add(new IResource[] {
-			project.getFile("folder1/folder2/folder3/add1.txt"),
-			project.getFolder("folder1/folder2/folder3/folder4/")}, IResource.DEPTH_ZERO, DEFAULT_MONITOR);
-		assertModificationState(project, new String[] {".", "folder1/", "folder1/folder2/", "folder1/folder2/folder3",
-			"folder1/folder2/folder3/add1.txt"}, true);
-		// commit
-		commitResources(project, new String[] {"folder1/folder2/folder3/add1.txt"});
-		assertModificationState(project, null, true);
-		
-		// create a folder
-		project.getFolder("folder1/ignored").create(false, true, DEFAULT_MONITOR);
-		assertModificationState(project, new String[] {".", "folder1/", "folder1/ignored/"}, true);
-		// add some files
-		buildResources(project, new String[] {"folder1/ignored/file.txt"}, false);
-		assertModificationState(project, new String[] {".", "folder1/", "folder1/ignored/", "folder1/ignored/file.txt"}, true);
-		// ignore the folder
-		project.getFile("folder1/.cvsignore").create(new ByteArrayInputStream("ignored".getBytes()), false, DEFAULT_MONITOR);
-		assertModificationState(project, new String[] {".", "folder1/", "folder1/.cvsignore"}, true);
-		getProvider(project).add(new IResource[] {project.getFile("folder1/.cvsignore")}, IResource.DEPTH_ZERO, DEFAULT_MONITOR);
-		assertModificationState(project, new String[] {".", "folder1/", "folder1/.cvsignore"}, true);
-		commitResources(project, new String[] {"folder1/.cvsignore"});
-		assertModificationState(project, null, true);
-		// delete the .cvsignore to see the modification come back
-		project.getFile("folder1/.cvsignore").delete(false, DEFAULT_MONITOR);
-		assertModificationState(project, new String[] {".", "folder1/", "folder1/.cvsignore", "folder1/ignored/", "folder1/ignored/file.txt"}, true);
-		commitResources(project, new String[] {"folder1/.cvsignore"});
-		assertModificationState(project, new String[] {".", "folder1/", "folder1/ignored/", "folder1/ignored/file.txt"}, true);
-		// re-add the .cvsignore and then delete the ignored
-		project.getFile("folder1/.cvsignore").create(new ByteArrayInputStream("ignored".getBytes()), false, DEFAULT_MONITOR);
-		assertModificationState(project, new String[] {".", "folder1/", "folder1/.cvsignore"}, true);
-		getProvider(project).add(new IResource[] {project.getFile("folder1/.cvsignore")}, IResource.DEPTH_ZERO, DEFAULT_MONITOR);
-		commitResources(project, new String[] {"folder1/.cvsignore"});
-		assertModificationState(project, null, true);
-		project.getFolder("folder/ignored").delete(false, DEFAULT_MONITOR);
-		assertModificationState(project, null, true);
-		// add the ignored file to version control
-		buildResources(project, new String[] {"folder1/ignored/file.txt"}, false);
-		assertModificationState(project, null, true);
-		getProvider(project).add(new IResource[] {project.getFile("folder1/ignored/file.txt")}, IResource.DEPTH_ZERO, DEFAULT_MONITOR);
-		assertModificationState(project, new String[] {".", "folder1/", "folder1/ignored/", "folder1/ignored/file.txt"}, true);
-		commitProject(project);
-		assertModificationState(project, null, true);
-	}
-	
-	public void testFolderDeletions() throws CoreException, TeamException {
-		IProject project = createProject("testFileAdditions", new String[] { "changed.txt", "folder1/", "folder1/deleted.txt", "folder1/a.txt" });
-		// create a folder
-		project.getFolder("folder1/folder2").create(false, true, DEFAULT_MONITOR);
-		assertModificationState(project, new String[] {".", "folder1/", "folder1/folder2/"}, true);
-		// delete the folder
-		project.getFolder("folder1/folder2").delete(false, DEFAULT_MONITOR);
-		assertModificationState(project, null, true);
-		
-		// create a folder
-		project.getFolder("folder1/folder2").create(false, true, DEFAULT_MONITOR);
-		assertModificationState(project, new String[] {".", "folder1/", "folder1/folder2/"}, true);
-		// add some children
-		buildResources(project, new String[] {"folder1/folder2/file.txt"}, false);
-		assertModificationState(project, new String[] {".", "folder1/", "folder1/folder2/", "folder1/folder2/file.txt"}, true);
-		// delete the folder
-		project.getFolder("folder1/folder2").delete(false, DEFAULT_MONITOR);
-		assertModificationState(project, null, true);
-		
-		// delete a shared folder with files
-		project.getFolder("folder1").delete(false, DEFAULT_MONITOR);
-		assertModificationState(project, new String[] {".", "folder1/", "folder1/deleted.txt", "folder1/a.txt"}, true);
-		// recreate folders and files
-		project.getFolder("folder1").create(false, true, DEFAULT_MONITOR);
-		assertModificationState(project, new String[] {".", "folder1/", "folder1/deleted.txt", "folder1/a.txt"}, true);
-		getProvider(project).get(new IResource[] {project.getFile("folder1/deleted.txt"), project.getFile("folder1/a.txt")}, IResource.DEPTH_INFINITE, DEFAULT_MONITOR);
-		assertModificationState(project, null, true);
-		
-		// delete a shared folder with files
-		project.getFolder("folder1").delete(false, DEFAULT_MONITOR);
-		assertModificationState(project, new String[] {".", "folder1/", "folder1/deleted.txt", "folder1/a.txt"}, true);
-		// commit file deletions
-		commitProject(project);
-		assertModificationState(project, null, true);
-	}
-	
-	public void testFolderMoveAndCopy() throws CoreException, TeamException {
-		IProject project = createProject("testFolderMoveAndCopy", new String[] { "changed.txt", "folder1/", "folder2/", "folder1/a.txt" , "folder1/folder3/file.txt"});
-		// move a file
-		project.getFolder("folder1/folder3").move(project.getFolder("folder2/folder3").getFullPath(), false, DEFAULT_MONITOR);
-		assertModificationState(project, new String[] {".", "folder1/", "folder1/folder3", "folder1/folder3/file.txt", "folder2/", "folder2/folder3/", "folder2/folder3/file.txt"}, true);
-		// commit the source
-		commitResources(project, new String[] {"folder1/folder3"});
-		assertModificationState(project, new String[] {".", "folder2/", "folder2/folder3/", "folder2/folder3/file.txt"}, true);
-		// copy the destination back to the source
-		project.getFolder("folder2/folder3/").copy(project.getFolder("folder1/folder3").getFullPath(), false, DEFAULT_MONITOR);
-		assertModificationState(project, new String[] {".", "folder1/", "folder1/folder3", "folder1/folder3/file.txt", "folder2/", "folder2/folder3/", "folder2/folder3/file.txt"}, true);
-		// add the source, delete the destination and commit
-		getProvider(project).add(new IResource[] {project.getFile("folder1/folder3/file.txt")}, IResource.DEPTH_ZERO, DEFAULT_MONITOR);
-		project.getFolder("folder2/folder3").delete(false, DEFAULT_MONITOR);
-		commitProject(project);
-		assertModificationState(project, null, true);
-		// Do the above without committing the source
-		project.getFolder("folder1/folder3").move(project.getFolder("folder2/folder3").getFullPath(), false, DEFAULT_MONITOR);
-		assertModificationState(project, new String[] {".", "folder1/", "folder1/folder3", "folder1/folder3/file.txt", "folder2/", "folder2/folder3/", "folder2/folder3/file.txt"}, true);
-		// copy the destination back to the source
-		project.getFolder("folder2/folder3/").copy(project.getFolder("folder1/folder3").getFullPath(), false, DEFAULT_MONITOR);
-		assertModificationState(project, new String[] {".", "folder2/", "folder2/folder3/", "folder2/folder3/file.txt"}, true);
-		getProvider(project).add(new IResource[] {project.getFolder("folder2/folder3/")}, IResource.DEPTH_INFINITE, DEFAULT_MONITOR);
-		commitProject(project);
-		assertModificationState(project, null, true);
-	}
-	
-	public void testUpdate() throws TeamException, CoreException, IOException {
-		// Create a test project, import it into cvs and check it out
-		IProject project = createProject("testUpdate", new String[] { "changed.txt", "merged.txt", "deleted.txt", "folder1/", "folder1/a.txt" });
-
-		// Check the project out under a different name
-		IProject copy = checkoutCopy(project, "-copy");
-		assertModificationState(copy, null, true);
-
-		// Perform some operations on the copy and commit
-		addResources(copy, new String[] { "added.txt", "folder2/", "folder2/added.txt" }, false);
-		setContentsAndEnsureModified(copy.getFile("changed.txt"));
-		setContentsAndEnsureModified(copy.getFile("merged.txt"));
-		getProvider(copy).delete(new IResource[] {copy.getFile("deleted.txt")}, DEFAULT_MONITOR);
-		assertModificationState(copy, new String[] {".", "added.txt", "folder2/", "folder2/added.txt", "changed.txt", "merged.txt", "deleted.txt"}, true);
-		getProvider(copy).checkin(new IResource[] {copy}, IResource.DEPTH_INFINITE, DEFAULT_MONITOR);
-		assertModificationState(copy, null, true);
-		
-		// update the project and check status
-		setContentsAndEnsureModified(project.getFile("merged.txt"));
-		getProvider(project).update(new IResource[] {project}, Command.NO_LOCAL_OPTIONS, null, true /*createBackups*/, DEFAULT_MONITOR);
-		assertModificationState(project, new String[] {".", "merged.txt"}, true);
-		// can't commit because of merge
-		// commitProject(project);
-		// assertModificationState(project, null, true);
-	}
-	
-	public void testUpdateIgnoreLocal() throws TeamException, CoreException, IOException {
-		// Create a test project, import it into cvs and check it out
-		IProject project = createProject("testUpdateIgnoreLocal", new String[] { "changed.txt", "merged.txt", "deleted.txt", "folder1/", "folder1/a.txt" });
-
-		// modifiy a file
-		setContentsAndEnsureModified(project.getFile("changed.txt"));
-		assertModificationState(project, new String[] {".", "changed.txt"}, true);
-		
-		// peform un update -C
-		getProvider(project).update(new IResource[] {project}, new Command.LocalOption[] {Update.IGNORE_LOCAL_CHANGES}, null, true /*createBackups*/, DEFAULT_MONITOR);
-		assertModificationState(project, null, true);
-	}
-	
-	public void testExternalDeletion() throws CoreException, TeamException {
-		IProject project = createProject("testExternalDeletion", new String[] { "changed.txt", "deleted.txt", "folder1/", "folder1/a.txt", "folder1/folder2/b.txt"});
-		IFile file = project.getFile("folder1/unmanaged.txt");
-		file.create(new ByteArrayInputStream("stuff".getBytes()), false, DEFAULT_MONITOR);
-		file.getLocation().toFile().delete();
-		file.refreshLocal(IResource.DEPTH_ZERO, DEFAULT_MONITOR);
-		assertTrue(!file.exists());
-		assertModificationState(project, null, true);
-	}
-
-}
-
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/LinkResourcesTest.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/LinkResourcesTest.java
deleted file mode 100644
index 6dfd623..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/LinkResourcesTest.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.core.provider;
-
-import java.io.IOException;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.team.core.RepositoryProvider;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.CVSProviderPlugin;
-import org.eclipse.team.internal.ccvs.core.resources.EclipseSynchronizer;
-import org.eclipse.team.tests.ccvs.core.CVSTestSetup;
-import org.eclipse.team.tests.ccvs.core.EclipseTest;
-
-/**
- * Test linked resources
- */
-public class LinkResourcesTest extends EclipseTest {
-
-	/**
-	 * Constructor for CVSProviderTest
-	 */
-	public LinkResourcesTest() {
-		super();
-	}
-
-	/**
-	 * Constructor for CVSProviderTest
-	 */
-	public LinkResourcesTest(String name) {
-		super(name);
-	}
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(LinkResourcesTest.class);
-		return new CVSTestSetup(suite);
-		//return new CVSTestSetup(new WatchEditTest("testReadOnly"));
-	}
-
-	
-	public void testMapSuccess() throws CoreException, TeamException {
-		IProject project = getUniqueTestProject("testLinkSuccess");
-		buildResources(project, new String[] { "changed.txt", "deleted.txt", "folder1/", "folder1/a.txt" }, true);
-		IFolder folder = project.getFolder("link");
-		folder.createLink(new Path("C:/temp"), IResource.ALLOW_MISSING_LOCAL, null);
-		RepositoryProvider.map(project, CVSProviderPlugin.getTypeId());
-	}
-	
-	public void testLinkSuccess() throws CoreException, TeamException {
-		IProject project = createProject("testLinkFailure", new String[] { "changed.txt", "deleted.txt", "folder1/", "folder1/a.txt" });
-		IFolder folder = project.getFolder("link");
-		folder.createLink(new Path("C:/temp"), IResource.ALLOW_MISSING_LOCAL, null);
-		assertIsIgnored(folder, true);
-	}
-	
-	public void testLinkCVSFolder() throws CoreException, TeamException, IOException {
-		IProject source = createProject("testLinkSource", new String[] { "changed.txt", "deleted.txt", "folder1/", "folder1/a.txt" });
-		IProject sourceCopy = checkoutCopy(source, "copy");
-		EclipseSynchronizer.getInstance().flush(source, true, true, DEFAULT_MONITOR);
-		IProject target = createProject("testLinkTarget", new String[] { "changed.txt", "deleted.txt", "folder1/", "folder1/a.txt" });
-		IFolder folder = target.getFolder("link");
-		folder.createLink(source.getLocation(), 0, null);
-		assertEquals(sourceCopy, source);
-	}
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/ModuleTest.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/ModuleTest.java
deleted file mode 100644
index 3d4371d..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/ModuleTest.java
+++ /dev/null
@@ -1,287 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.core.provider;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
-
-import junit.framework.Assert;
-import junit.framework.Test;
-import junit.framework.TestSuite;
-import org.eclipse.core.internal.plugins.PluginDescriptor;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IProjectDescription;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IPluginDescriptor;
-import org.eclipse.core.runtime.IPluginRegistry;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.sync.IRemoteSyncElement;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.ICVSFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSResource;
-import org.eclipse.team.internal.ccvs.core.client.Command;
-import org.eclipse.team.internal.ccvs.core.client.Session;
-import org.eclipse.team.internal.ccvs.core.client.Command.LocalOption;
-import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
-import org.eclipse.team.internal.ccvs.core.resources.RemoteFolder;
-import org.eclipse.team.internal.ccvs.core.resources.RemoteModule;
-import org.eclipse.team.tests.ccvs.core.CVSTestSetup;
-import org.eclipse.team.tests.ccvs.core.EclipseTest;
-
-/**
- * This class tests the Command framework using simple CVS commands
- */
-public class ModuleTest extends EclipseTest {
-	
-	public static final String RESOURCE_PATH = "resources/CommandTest/";
-	
-	public ModuleTest() {
-		super(null);
-	}
-	
-	public ModuleTest(String name) {
-		super(name);
-	}
-	
-	public static Test suite() {
-		TestSuite suite = new TestSuite(ModuleTest.class);
-		//return new CVSTestSetup(suite);
-		return new CVSTestSetup(new ModuleTest("testAliasForFiles"));
-	}
-	
-	private static boolean isSetUp = false;
-	
-	private static RemoteModule[] remoteModules;
-	
-	public void setUp() throws TeamException, CoreException, IOException {
-		if (isSetUp) return;
-		
-		// upload the modules definitions file
-		PluginDescriptor testPlugin = (PluginDescriptor)Platform.getPluginRegistry().getPluginDescriptor("org.eclipse.team.tests.cvs.core");
-		String filePath = testPlugin.getLocation().concat(RESOURCE_PATH + "CVSROOT/modules");
-		URL url = null;
-		try {
-			url = new URL (filePath);
-		} catch (java.net.MalformedURLException e) {
-			assertTrue("Bad URL for " + filePath, true);
-		}
-
-		waitMsec(1000);
-
-		IProject cvsroot = checkoutProject(null, "CVSROOT", null);
-		InputStream in = url.openStream();
-		try {
-			cvsroot.getFile("modules").setContents(in, false, false, DEFAULT_MONITOR);
-		} finally {
-			in.close();
-		}
-		commitProject(cvsroot);
-		
-		uploadProject("common");
-		
-		remoteModules = RemoteModule.getRemoteModules(getRepository(), null, DEFAULT_MONITOR);
-		
-		isSetUp = true;
-	}
-	
-	protected void uploadProject(String projectName) throws TeamException, IOException, CoreException {
-		// locate the test case contents in the plugin resources
-		IPluginRegistry registry = Platform.getPluginRegistry();
-		IPluginDescriptor descriptor = registry.getPluginDescriptor("org.eclipse.team.tests.cvs.core");
-		URL baseURL = descriptor.getInstallURL();
-		URL url = new URL(baseURL, RESOURCE_PATH + projectName);
-		url = Platform.resolve(url);
-		Assert.assertTrue(url.getProtocol().equals("file"));
-		IPath path = new Path(url.getPath());
-		
-		// create a project rooted there
-		IWorkspace workspace = ResourcesPlugin.getWorkspace();
-		IWorkspaceRoot workspaceRoot = workspace.getRoot();
-		IProject project = workspaceRoot.getProject(projectName);
-		IProjectDescription projectDescription = workspace.newProjectDescription(projectName);
-		projectDescription.setLocation(path);
-		project.create(projectDescription, null);
-		project.open(null);
-
-		// import the project into CVS
-		Session s = new Session(getRepository(), CVSWorkspaceRoot.getCVSFolderFor(project));
-		s.open(DEFAULT_MONITOR);
-		try {
-			Command.IMPORT.execute(s, Command.NO_GLOBAL_OPTIONS, 
-				new LocalOption[] {Command.makeArgumentOption(Command.MESSAGE_OPTION, "")},
-				new String[] { projectName, "start", "vendor"},
-				null,
-				DEFAULT_MONITOR);
-		} finally {
-			s.close();
-		}
-
-		// delete the project locally
-		project.delete(false /*deleteContent*/, false /*force*/, null);
-	}
-	
-	// XXX Temporary method of checkout (i.e. with vcm_meta
-	protected IProject checkoutProject(String projectName, CVSTag tag) throws TeamException, CoreException {
-		IProject project = super.checkoutProject(getWorkspace().getRoot().getProject(projectName), null, tag);
-		ICVSFolder parent = (ICVSFolder)CVSWorkspaceRoot.getCVSResourceFor(project);
-		ICVSResource vcmmeta = CVSWorkspaceRoot.getCVSResourceFor(project.getFile(".vcm_meta"));
-		if ( ! vcmmeta.isManaged() && ! parent.getFolderSyncInfo().getIsStatic()) {
-			getProvider(project).add(new IResource[] {project.getFile(".vcm_meta")}, IResource.DEPTH_INFINITE, DEFAULT_MONITOR);
-			waitMsec(1000);
-			commitProject(project);
-		}
-		return project;
-	}
-
-	/*
-	 * Test the following definition
-	 * 
-	 *   # self referencing modules
-	 *   project1 project1
-	 */
-	public void testSelfReferencingModule() throws TeamException, CoreException, IOException {
-		uploadProject("project1");
-		IProject project1 = checkoutProject("project1", null);
-		IRemoteSyncElement tree = CVSWorkspaceRoot.getRemoteSyncTree(project1, CVSTag.DEFAULT, DEFAULT_MONITOR);
-		assertEquals(Path.EMPTY, CVSWorkspaceRoot.getCVSResourceFor(project1), (ICVSResource)tree.getRemote(), false, false);
-		RemoteModule module = getRemoteModule("project1");
-		assertEquals(Path.EMPTY, (RemoteFolder)tree.getRemote(), module, false);
-	}
-	
-	/*
-	 * Test the following definition
-	 * 
-	 * # checkout docs in flattened structure
-	 * docs		-d docs common/docs
-	 * macros common/macros
-	 */
-	public void testFlattenedStructure() throws TeamException, CoreException, IOException {
-		
-		IProject docs = checkoutProject("docs", null);
-		IRemoteSyncElement tree = CVSWorkspaceRoot.getRemoteSyncTree(docs, CVSTag.DEFAULT, DEFAULT_MONITOR);
-		assertEquals(Path.EMPTY, CVSWorkspaceRoot.getCVSResourceFor(docs), (ICVSResource)tree.getRemote(), false, false);
-		RemoteModule module = getRemoteModule("docs");
-		assertEquals(Path.EMPTY, (RemoteFolder)tree.getRemote(), module, false);
-		
-		IProject macros = checkoutProject("macros", null);
-		tree = CVSWorkspaceRoot.getRemoteSyncTree(macros, CVSTag.DEFAULT, DEFAULT_MONITOR);
-		assertEquals(Path.EMPTY, CVSWorkspaceRoot.getCVSResourceFor(macros), (ICVSResource)tree.getRemote(), false, false);
-		module = getRemoteModule("macros");
-		assertEquals(Path.EMPTY, (RemoteFolder)tree.getRemote(), module, false);
-
-	}
-	
-	/*
-	 * Test the following definition
-	 * 
-	 * # include docs with project
-	 * project2		project2 &docs
-	 * # only project2
-	 * project2-only project2
-	 */
-	public void testIncludeAndExcludeDocs() throws TeamException, CoreException, IOException {
-		uploadProject("project2");
-		IProject project2 = checkoutProject("project2", null);
-		IRemoteSyncElement tree = CVSWorkspaceRoot.getRemoteSyncTree(project2, CVSTag.DEFAULT, DEFAULT_MONITOR);
-		assertEquals(Path.EMPTY, CVSWorkspaceRoot.getCVSResourceFor(project2), (ICVSResource)tree.getRemote(), false, false);
-
-		RemoteModule module = getRemoteModule("project2");
-		assertEquals(Path.EMPTY, (RemoteFolder)tree.getRemote(), module, false);
-
-		project2 = checkoutProject("project2-only", null);
-		tree = CVSWorkspaceRoot.getRemoteSyncTree(project2, CVSTag.DEFAULT, DEFAULT_MONITOR);
-		assertEquals(Path.EMPTY, CVSWorkspaceRoot.getCVSResourceFor(project2), (ICVSResource)tree.getRemote(), false, false);
-
-		module = getRemoteModule("project2-only");
-		assertEquals(Path.EMPTY, (RemoteFolder)tree.getRemote(), module, false);
-
-	}
-	
-	/*
-	 * Test the following definition
-	 * 
-	 * # a use of alias
-	 * project3-src  project3/src
-	 * project3-src_file -a project3-src/file.c mc-src/file.h
-	 * project3-sub  project3/sub &project3-src_file
-	 */
-	public void testAliasForFiles() throws TeamException, CoreException, IOException {
-		uploadProject("project3");
-		IProject project3 = checkoutProject("project3-sub", null);
-		IRemoteSyncElement tree = CVSWorkspaceRoot.getRemoteSyncTree(project3, CVSTag.DEFAULT, DEFAULT_MONITOR);
-//		assertEquals("Local does not match remote", Session.getManagedResource(project3), (ICVSResource)tree.getRemote(), false, false);
-
-		project3 = checkoutProject("project3-src", null);
-		tree = CVSWorkspaceRoot.getRemoteSyncTree(project3, CVSTag.DEFAULT, DEFAULT_MONITOR);
-//		assertEquals("Local does not match remote", Session.getManagedResource(project3), (ICVSResource)tree.getRemote(), false, false);
-
-		project3 = checkoutProject("project3-src_file", null);
-		tree = CVSWorkspaceRoot.getRemoteSyncTree(project3, CVSTag.DEFAULT, DEFAULT_MONITOR);
-//		assertEquals("Local does not match remote", Session.getManagedResource(project3), (ICVSResource)tree.getRemote(), false, false);
-	}
-	
-	/*
-	 * Test the following definition
-	 * 
-	 * # using aliases to provide packaging
-	 * project7-common -a project7/common
-	 * project7-pc -a project7-common project7/pc
-	 * project7-linux -a project7-common project7/linux
-	 */
-	public void testAliases() throws TeamException, CoreException, IOException {
-		uploadProject("project7");
-		IProject project7 = checkoutProject("project7-common", null);
-		IRemoteSyncElement tree = CVSWorkspaceRoot.getRemoteSyncTree(project7, CVSTag.DEFAULT, DEFAULT_MONITOR);
-//		assertEquals("Local does not match remote", Session.getManagedResource(project7), (ICVSResource)tree.getRemote(), false, false);
-
-		project7 = checkoutProject("project7-pc", null);
-		tree = CVSWorkspaceRoot.getRemoteSyncTree(project7, CVSTag.DEFAULT, DEFAULT_MONITOR);
-//		assertEquals("Local does not match remote", Session.getManagedResource(project7), (ICVSResource)tree.getRemote(), false, false);
-
-		project7 = checkoutProject("project7-linux", null);
-		tree = CVSWorkspaceRoot.getRemoteSyncTree(project7, CVSTag.DEFAULT, DEFAULT_MONITOR);
-//		assertEquals("Local does not match remote", Session.getManagedResource(project7), (ICVSResource)tree.getRemote(), false, false);
-	}
-	
-
-	/*
-	 * Test the following definition
-	 * 
-	 * # simple use of module alias
-	 * project8-alias -a project8 common
-	 */
-	public void testSimpleAlias() throws TeamException, CoreException, IOException {
-		uploadProject("project8");
-		
-		// XXX Module checkout will not work yet
-		// IProject project8 = checkoutProject("project8-alias", null);
-		
-		RemoteModule module = getRemoteModule("project8-alias");
-	}
-	
-	public RemoteModule getRemoteModule(String moduleName) {
-		for (int i = 0; i < remoteModules.length; i++) {
-			RemoteModule module = remoteModules[i];
-			// XXX shouldn't be getName
-			if (module.getName().equals(moduleName))
-				return module;
-		}
-		return null;
-	}
-}
-
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/RemoteResourceTest.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/RemoteResourceTest.java
deleted file mode 100644
index 9040c8c..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/RemoteResourceTest.java
+++ /dev/null
@@ -1,332 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.core.provider;
-import java.io.IOException;
-import java.io.InputStream;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.sync.IRemoteResource;
-import org.eclipse.team.core.sync.IRemoteSyncElement;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.CVSTeamProvider;
-import org.eclipse.team.internal.ccvs.core.ICVSFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFile;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteResource;
-import org.eclipse.team.internal.ccvs.core.ICVSResource;
-import org.eclipse.team.internal.ccvs.core.ILogEntry;
-import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
-import org.eclipse.team.internal.ccvs.core.resources.RemoteFolder;
-import org.eclipse.team.internal.ccvs.core.resources.RemoteFolderTree;
-import org.eclipse.team.internal.ccvs.core.resources.RemoteFolderTreeBuilder;
-import org.eclipse.team.tests.ccvs.core.CVSTestSetup;
-import org.eclipse.team.tests.ccvs.core.EclipseTest;
-
-public class RemoteResourceTest extends EclipseTest {
-
-	public RemoteResourceTest() {
-		super();
-	}
-	
-	public RemoteResourceTest(String name) {
-		super(name);
-	}
-	
-	public static Test suite() {
-		String testName = System.getProperty("eclipse.cvs.testName");
-		if (testName == null) {
-			TestSuite suite = new TestSuite(RemoteResourceTest.class);
-			return new CVSTestSetup(suite);
-		} else {
-			return new CVSTestSetup(new RemoteResourceTest(testName));
-		}
-	}
-	
-	protected void assertRemoteMatchesLocal(String message, RemoteFolder remote, IContainer container) throws CVSException, IOException, CoreException {
-		assertEquals(Path.EMPTY, (ICVSResource)remote, CVSWorkspaceRoot.getCVSFolderFor(container), false, false);
-	}
-	
-	protected void getMembers(ICVSRemoteFolder folder, boolean deep) throws TeamException {
-		IRemoteResource[] children = folder.members(DEFAULT_MONITOR);
-		if (deep) {
-			for (int i=0;i<children.length;i++) {
-				if (children[i].isContainer())
-					getMembers((ICVSRemoteFolder)children[i], deep);
-			}
-		}
-	}
-	
-	/**
-	 * RemoteFolderTreeBuilder test
-	 * 
-	 * Perform some remote additions, changes and deletions 
-	 */
-	public void testSimpleChanges() throws TeamException, CoreException, IOException {
-		
-		// Create a test project and a copy of it
-		IProject project = createProject("testRemoteTreeBuilder", new String[] { "changed.txt", "deleted.txt", "folder1/", "folder1/a.txt" });
-		IProject copy = checkoutCopy(project, "-copy");
-		
-		// Make some changes to the copy and commit
-		IResource[] newResources = buildResources(copy, new String[] { "added.txt", "folder2/", "folder2/added.txt" }, false);
-		setContentsAndEnsureModified(copy.getFile("changed.txt"));
-		CVSTeamProvider provider = getProvider(copy);
-		provider.add(newResources, IResource.DEPTH_ZERO, DEFAULT_MONITOR);
-		provider.delete(new IResource[] {copy.getFile("deleted.txt")}, DEFAULT_MONITOR);
-		provider.checkin(new IResource[] {copy}, IResource.DEPTH_INFINITE, DEFAULT_MONITOR);
-		
-		// Build the remote tree from the original and ensure it matches the copy
-		RemoteFolderTree tree = RemoteFolderTreeBuilder.buildRemoteTree(getRepository(), project, CVSTag.DEFAULT, DEFAULT_MONITOR);
-		assertRemoteMatchesLocal("testSimpleChanges", tree, copy);
-	}
-	
-	/**
-	 * RemoteFolderTreeBuilder test
-	 * 
-	 * Create a remote tree from a local workspace with no remote changes.
-	 */
-	public void testNoRemoteChanges() throws TeamException, CoreException, IOException {
-		IProject project = createProject("testNoRemoteChanges", new String[] { "file1.txt", "file2.txt", "folder1/a.txt", "folder2/folder3/b.txt"});
-		RemoteFolderTree tree = RemoteFolderTreeBuilder.buildRemoteTree(getRepository(), project, CVSTag.DEFAULT, DEFAULT_MONITOR);
-		assertRemoteMatchesLocal("testNoRemoteChanges", tree, project);
-	}
-	
-	/**
-	 * RemoteFolderTreeBuilder test
-	 * 
-	 * Create a base remote tree from a local workspace with no remote changes.
-	 */
-	public void testGetBase() throws TeamException, CoreException, IOException {
-		IProject project = createProject("testGetBase", new String[] { "file1.txt", "file2.txt", "folder1/a.txt", "folder2/folder3/b.txt"});
-		RemoteFolderTree tree = RemoteFolderTreeBuilder.buildBaseTree(getRepository(), CVSWorkspaceRoot.getCVSFolderFor(project), CVSTag.DEFAULT, DEFAULT_MONITOR);
-		assertRemoteMatchesLocal("testGetBase", tree, project);
-	}
-	
-	/**
-	 * RemoteFolderTreeBuilder test
-	 * 
-	 * Add a nested folder structure remotely and build the remote tree
-	 * from the root.
-	 */
-	public void testFolderAddition() throws TeamException, CoreException, IOException {
-		
-		// Create a test project
-		IProject project = createProject("testFolderAddition", new String[] { "file1.txt", "file2.txt", "folder1/", "folder1/a.txt"});
-		
-		// Checkout and modify a copy
-		IProject copy = checkoutCopy(project, "-copy");
-		addResources(copy, new String[] { "folder2/folder3/b.txt" }, false);
-		getProvider(copy).checkin(new IResource[] {copy}, IResource.DEPTH_INFINITE, DEFAULT_MONITOR);
-
-		// Build the remote tree from the project
-		RemoteFolderTree tree = RemoteFolderTreeBuilder.buildRemoteTree(getRepository(), project, CVSTag.DEFAULT, DEFAULT_MONITOR);
-		assertRemoteMatchesLocal("testFolderAddition", tree, copy);
-	}
-	
-	/**
-	 * RemoteFolderTreeBuilder test
-	 * 
-	 * Add a nested folder structure remotely and build the remote tree
-	 * from a child
-	 */
-	public void testNonRootBuild() throws CoreException, TeamException, IOException {
-		
-		// Create a test project
-		IProject project = createProject("testNonRootBuild", new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder2/", "folder2/a.txt", "folder2/folder3/", "folder2/folder3/b.txt", "folder2/folder3/c.txt"});
-
-		// Checkout and modify a copy
-		IProject copy = checkoutCopy(project, "-copy");
-		setContentsAndEnsureModified(copy.getFile("folder2/folder3/c.txt"));
-		addResources(copy, new String[] { "folder2/folder3/add.txt" }, false);
-		getProvider(copy).delete(new IResource[] {copy.getFile("folder2/folder3/b.txt")}, DEFAULT_MONITOR);
-		getProvider(copy).checkin(new IResource[] {copy}, IResource.DEPTH_INFINITE, DEFAULT_MONITOR);
-
-		// Build the remote tree from the project
-		RemoteFolderTree tree = RemoteFolderTreeBuilder.buildRemoteTree(getRepository(), project.getFolder("folder2"), CVSTag.DEFAULT, DEFAULT_MONITOR);
-		assertRemoteMatchesLocal("testNonRootBuild", tree, copy.getFolder("folder2"));
-	}
-	
-	/**
-	 * RemoteResource test
-	 * 
-	 */
-	public void testGetRemoteResource() throws CoreException, TeamException, IOException {
-		IProject project = createProject("testGetRemoteResource", new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder2/", "folder2/a.txt", "folder2/folder3/", "folder2/folder3/b.txt", "folder2/folder3/c.txt"});
-		ICVSRemoteResource file = CVSWorkspaceRoot.getRemoteResourceFor(project.getFile("folder1/a.txt"));
-		assertTrue("File should exist remotely", file.exists(DEFAULT_MONITOR));
-		assertEquals(Path.EMPTY, (ICVSResource)file, (ICVSResource)CVSWorkspaceRoot.getRemoteResourceFor(project.getFile("folder1/a.txt")), false, false);
-		ICVSRemoteResource folder = CVSWorkspaceRoot.getRemoteResourceFor(project.getFolder("folder2/folder3/"));
-		getMembers((ICVSRemoteFolder)folder, true);
-		assertTrue("Folder should exist remotely", folder.exists(DEFAULT_MONITOR));
-		// XXX this didn't work right. I'll need to check into it later
-//		assertEquals("Remote folder should match local folder", (ICVSResource)folder, (ICVSResource)Client.getManagedFolder(project.getFolder("folder2/folder3/").getLocation().toFile()));
-	}
-	
-	/*
-	 * Test that the fetch of a tagged tree matches what is checked out for that tag
-	 */
-	public void testVersionTag() throws TeamException, CoreException, IOException {
-		// Create a test project and version it
-		CVSTag v1Tag = new CVSTag("v1", CVSTag.VERSION);
-		IProject project = createProject("testVersionTag", new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder1/b.txt", "folder2/folder3/c.txt"});
-		tagProject(project, v1Tag, false);
-
-		// Make some changes, additions (including folders) and deletions and commit
-		IFile file = project.getFile("folder1/a.txt");
-		file.setContents(getRandomContents(), false, false, null);
-		addResources(project, new String[] { "folder2/folder3/add.txt" }, false);
-		deleteResources(project, new String[] {"folder1/b.txt"}, false);
-		getProvider(project).checkin(new IResource[] {project}, IResource.DEPTH_INFINITE, DEFAULT_MONITOR);
-		
-		// Fetch the remote tree for the version
-		IRemoteSyncElement tree = CVSWorkspaceRoot.getRemoteSyncTree(project, v1Tag, DEFAULT_MONITOR);
-
-		// Check out the project version
-		project = checkoutCopy(project, v1Tag);
-		
-		// Compare the two
-		assertEquals(Path.EMPTY, (ICVSResource)tree.getRemote(), (ICVSResource)CVSWorkspaceRoot.getCVSResourceFor(project), false, false);
-	}
-	
-	/*
-	 * Test the fetching of the contents of an empty file
-	 */
-	public void testEmptyFile() throws TeamException, CoreException, IOException {
-	 	
-	 	// Create a project with an empty file
-		IProject project = createProject("testEmptyFile", new String[] { "file.txt"});
-		IFile file = project.getFile("file.txt");
-		setContentsAndEnsureModified(file, "");
-		commitResources(project, new String[] {"file.txt"});
-		
-		ICVSRemoteResource remote = CVSWorkspaceRoot.getRemoteResourceFor(file);
-		InputStream in = remote.getContents(DEFAULT_MONITOR);
-		int count = 0;
-		while(in.read() != -1) {
-			count++;
-		}
-		assertTrue("Remote file should be empty", count==0);
-	 }
-	 
-	 /*
-	  * Test the fetching of the contents from multiple remote revisions of a file
-	  */
-	 public void testFileRevisions() throws TeamException, CoreException, IOException {
-	 	
-	 	// Create a project with an empty file
-		IProject project = createProject("testFileRevisions", new String[] { "file.txt"});
-		setContentsAndEnsureModified(project.getFile("file.txt"), "hi there");
-		commitResources(project, new String[] {"file.txt"});
-		setContentsAndEnsureModified(project.getFile("file.txt"), "bye there");
-		commitResources(project, new String[] {"file.txt"});
-
-		ICVSRemoteFile remote = (ICVSRemoteFile)CVSWorkspaceRoot.getRemoteResourceFor(project.getFile("file.txt"));
-		ILogEntry[] entries = remote.getLogEntries(DEFAULT_MONITOR);
-		for (int i=0;i<entries.length;i++) {
-			InputStream in = entries[i].getRemoteFile().getContents(DEFAULT_MONITOR);
-			
-			if (entries[i].getRevision().equals("1.2")) {
-				int count = 0;
-				byte[] buffer = new byte[1024];
-				int c;
-				while((c = in.read()) != -1) {
-					buffer[count] = (byte)c;
-					count++;
-				}
-				String contents = new String(buffer, 0, count);
-				assertEquals("the contents of revision 1.2 are not equal", contents, "hi there");
-			} else if (entries[i].getRevision().equals("1.3")) {
-				int count = 0;
-				byte[] buffer = new byte[1024];
-				int c;
-				while((c = in.read()) != -1) {
-					buffer[count] = (byte)c;
-					count++;
-				}
-				String contents = new String(buffer, 0, count);
-				assertEquals("the contents of revision 1.3 are not equal", contents, "bye there");
-			}
-		}
-	 }
-	 
-	 public void testTag() throws TeamException, CoreException, IOException {
-	 	IProject project = createProject("testTag", new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder2/folder3/b.txt", "folder2/folder3/c.txt"});
-	 	
-		ICVSRemoteFolder remote = (ICVSRemoteFolder)CVSWorkspaceRoot.getRemoteResourceFor(project);
-		CVSTag tag = new CVSTag("v1", CVSTag.VERSION);
-		tagRemoteResource(remote, tag, false);
-		ICVSRemoteFolder v1 = (ICVSRemoteFolder)CVSWorkspaceRoot.getRemoteTree(project, tag, DEFAULT_MONITOR);
-		assertEquals(Path.EMPTY, remote, v1, false);
-		
-		CVSTag tag2 = new CVSTag("v2", CVSTag.VERSION);
-		tagRemoteResource(v1, tag2, false);
-		ICVSRemoteFolder v2 = (ICVSRemoteFolder)CVSWorkspaceRoot.getRemoteTree(project, tag2, DEFAULT_MONITOR);
-		assertEquals(Path.EMPTY, remote, v2, false);
-		
-		// Test tag with existing
-		setContentsAndEnsureModified(project.getFile("file1.txt"));
-		commitProject(project);
-		remote = (ICVSRemoteFolder)CVSWorkspaceRoot.getRemoteResourceFor(project);
-		tagRemoteResource(remote, tag, true /* force */);
-		v1 = (ICVSRemoteFolder)CVSWorkspaceRoot.getRemoteTree(project, tag, DEFAULT_MONITOR);
-		assertEquals(Path.EMPTY, remote, v1, false);
-		
-		// Test local tag with existing.
-		setContentsAndEnsureModified(project.getFile("file1.txt"));
-		commitProject(project);
-		tagProject(project, tag2, true);
-		IProject copy = checkoutCopy(project, tag2);
-		assertEquals(project, copy, false, false);
-	 }
-	 
-	 public void testExists() throws TeamException, CoreException, IOException, InterruptedException {
-	 	IProject project = createProject("testExists", new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder2/", "folder2/a.txt", "folder2/folder3/", "folder2/folder3/b.txt", "folder2/folder3/c.txt"});
-	 	ICVSRemoteResource resource1 = CVSWorkspaceRoot.getRemoteResourceFor(project.getFile("file1.txt"));
-	 	assertTrue(resource1.exists(DEFAULT_MONITOR));
-	 	ICVSRemoteResource resource2 = (ICVSRemoteFolder)CVSWorkspaceRoot.getRemoteResourceFor(project.getFolder("folder2/folder3/"));
-	 	assertTrue(resource2.exists(DEFAULT_MONITOR));
-	 	deleteResources(project, new String[] {"file1.txt", "folder2/folder3/b.txt", "folder2/folder3/c.txt" }, true);
-	 	assertTrue( ! resource1.exists(DEFAULT_MONITOR));
-	 	assertTrue(resource2.exists(DEFAULT_MONITOR));
-	 	if (CVSTestSetup.INITIALIZE_REPO) {
-	 		CVSTestSetup.executeRemoteCommand(getRepository(), "rm -rf " + ((ICVSFolder)resource2).getFolderSyncInfo().getRemoteLocation());
-	 		assertTrue( ! resource2.exists(DEFAULT_MONITOR));
-	 	}
-	 }
-	 
-//	 /**
-//	  * Test building a sync tree using the RemoteFolderTreeBuilder using a remote resource as the
-//	  * starting point instead of a local one.
-//	  */
-//	 public void testBuildRemoteTree() throws TeamException, CoreException, IOException, InterruptedException {
-//	 	// Create a project and then delete it locally
-//	 	IProject project = createProject("testBuildRemoteTree", new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder2/", "folder2/a.txt", "folder2/folder3/", "folder2/folder3/b.txt", "folder2/folder3/c.txt"});
-//	 	String name = project.getName();
-//	 	project.delete(true, false, DEFAULT_MONITOR);
-//	 	// Create a remote resource for the project and build a sync tree from it
-//	 	RemoteFolder folder = new RemoteFolder(null, getRepository(), new Path(name), null);
-//	 	RemoteFolderTree tree = RemoteFolderTreeBuilder.buildRemoteTree((CVSRepositoryLocation)folder.getRepository(), folder, null, DEFAULT_MONITOR);
-//		// Reload the project from the repository and ensure that the tree and project are equal.
-//		checkoutProject(project, name, null);
-//		assertEquals(Path.EMPTY, CVSWorkspaceRoot.getCVSResourceFor(project), tree, false, true);
-//	 }
-}
-
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/ResourceDeltaTest.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/ResourceDeltaTest.java
deleted file mode 100644
index 8cdcea0..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/ResourceDeltaTest.java
+++ /dev/null
@@ -1,272 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.core.provider;
-
-import java.io.BufferedInputStream;
-import java.io.BufferedOutputStream;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceProxy;
-import org.eclipse.core.resources.IResourceProxyVisitor;
-import org.eclipse.core.resources.IResourceStatus;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.ICVSFile;
-import org.eclipse.team.internal.ccvs.core.ICVSFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSResourceVisitor;
-import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
-import org.eclipse.team.internal.ccvs.core.resources.EclipseSynchronizer;
-import org.eclipse.team.internal.ccvs.core.syncinfo.ResourceSyncInfo;
-import org.eclipse.team.tests.ccvs.core.CVSTestSetup;
-import org.eclipse.team.tests.ccvs.core.EclipseTest;
-
-public class ResourceDeltaTest extends EclipseTest {
-
-	/**
-	 * Constructor for ResourceDeltaTest.
-	 */
-	public ResourceDeltaTest() {
-		super();
-	}
-
-	/**
-	 * Constructor for ResourceDeltaTest.
-	 * @param name
-	 */
-	public ResourceDeltaTest(String name) {
-		super(name);
-	}
-
-	public static Test suite() {
-		String testName = System.getProperty("eclipse.cvs.testName");
-		if (testName == null) {
-			TestSuite suite = new TestSuite(ResourceDeltaTest.class);
-			return new CVSTestSetup(suite);
-		} else {
-			return new CVSTestSetup(new ResourceDeltaTest(testName));
-		}
-	}
-	
-	public void assertNotManaged(ICVSFile cvsFile) throws CVSException {
-		assertTrue("File " + cvsFile.getName() + " should not be managed", ! cvsFile.isManaged());
-	}
-	
-	public void assertNotManaged(ICVSFolder cvsFolder) throws CVSException {
-		assertNotManaged(cvsFolder, false);
-	}
-	
-	public void assertNotManaged(ICVSFolder cvsFolder, boolean rootManaged) throws CVSException {
-		if (!rootManaged)
-			assertTrue("Folder " + cvsFolder.getName() + " should not be managed", ! cvsFolder.isManaged());
-		assertTrue("Folder " + cvsFolder.getName() + " should not be a cvs folder", ! cvsFolder.isCVSFolder());
-		cvsFolder.acceptChildren(new ICVSResourceVisitor() {
-			public void visitFile(ICVSFile file) throws CVSException {
-				assertNotManaged(file);
-			}
-			public void visitFolder(ICVSFolder folder) throws CVSException {
-				assertNotManaged(folder, false);
-			}
-		});
-	}
-	
-	public void assertAdditionMarkerFor(IResource resource, boolean exists) throws CoreException {
-		// Addition markers are no longer used
-	}
-	
-	public void assertDeletionMarkerFor(IResource resource, boolean exists) throws CoreException {
-	}
-	
-	public void testOrphanedSubtree() throws TeamException, CoreException {
-		IProject project = createProject("testOrphanedSubtree", new String[] { "changed.txt", "deleted.txt", "folder1/", "folder1/a.txt", "folder1/folder2/b.txt"});
-		IFolder folder = project.getFolder(new Path("folder1"));
-		folder.move(new Path("moved"), false, false, null);
-		folder = project.getFolder(new Path("moved"));
-		ICVSFolder cvsFolder = CVSWorkspaceRoot.getCVSFolderFor(folder);
-		assertNotManaged(cvsFolder);
-		assertAdditionMarkerFor(folder, true);
-	}
-	
-	public void testOrphanedSubsubtree() throws TeamException, CoreException {
-		IProject project = createProject("testOrphanedSubsubtree", new String[] { "changed.txt", "deleted.txt", "folder1/", "folder1/a.txt", "folder1/folder2/b.txt"});
-		IFolder folder = project.getFolder(new Path("folder1"));
-		IFolder target = project.getFolder("sub");
-		target.create(false, true, null);
-		folder.move(new Path("sub/moved"), false, false, null);
-		folder = project.getFolder(new Path("sub/moved"));
-		ICVSFolder cvsFolder = CVSWorkspaceRoot.getCVSFolderFor(folder);
-		assertNotManaged(cvsFolder);
-		assertAdditionMarkerFor(target, true);
-		assertAdditionMarkerFor(folder, false);
-	}
-	
-	public void testDeletionHandling() throws TeamException, CoreException {
-		IProject project = createProject("testDeletionHandling", new String[] { "changed.txt", "deleted.txt", "folder1/", "folder1/a.txt", "folder1/folder2/b.txt"});
-		addResources(project, new String[] {"added.txt"}, false);
-		assertAdditionMarkerFor(project.getFile("added.txt"), false);
-		deleteResources(project, new String[] {"added.txt", "deleted.txt"}, false);
-		ICVSFile file = CVSWorkspaceRoot.getCVSFileFor(project.getFile("added.txt"));
-		assertNotManaged(file);
-		assertDeletionMarkerFor(project.getFile("added.txt"), false);
-		file = CVSWorkspaceRoot.getCVSFileFor(project.getFile("deleted.txt"));
-		assertTrue("File " + file.getName() + " should be managed", file.isManaged());
-		ResourceSyncInfo info = file.getSyncInfo();
-		assertTrue("File " + file.getName() + " should be marked as deleted", info.isDeleted());
-		assertDeletionMarkerFor(project.getFile("deleted.txt"), true);
-	}
-	
-	public void testFileAdditionHandling() throws TeamException, CoreException {
-		IProject project = createProject("testFileAdditionHandling", new String[] { "changed.txt", "deleted.txt", "folder1/", "folder1/a.txt", "folder1/folder2/b.txt"});
-		deleteResources(project, new String[] {"deleted.txt"}, false);
-		assertDeletionMarkerFor(project.getFile("deleted.txt"), true);
-		addResources(project, new String[] {"deleted.txt"}, false);
-		ICVSFile file = CVSWorkspaceRoot.getCVSFileFor(project.getFile("deleted.txt"));
-		assertTrue("File " + file.getName() + " should be managed", file.isManaged());
-		ResourceSyncInfo info = file.getSyncInfo();
-		assertTrue("File " + file.getName() + " should not be marked as deleted", ! info.isDeleted());
-		assertTrue("File " + file.getName() + " should not be marked as addition", ! info.isAdded());
-		assertDeletionMarkerFor(project.getFile("deleted.txt"), false);
-	}
-	
-	public void testFolderAdditionHandling() throws TeamException, CoreException {
-		IProject project = createProject("testFolderAdditionHandling", new String[] { "changed.txt", "deleted.txt", "folder1/", "folder1/a.txt", "folder1/folder2/b.txt"});
-		IFolder folder = project.getFolder("newfolder");
-		folder.create(false, true, null);
-		assertAdditionMarkerFor(folder, true);
-		getProvider(project).add(new IResource[] {folder}, IResource.DEPTH_ZERO, DEFAULT_MONITOR);
-		assertAdditionMarkerFor(folder, false);
-	}
-	
-	/**
-	 * Method setContents is used to set the contents of a java.io.File so we
-	 * can test out-of-sync situations
-	 * 
-	 * @param ioFile
-	 */
-	private void setContents(File ioFile) throws IOException {
-		// wait to ensure the timestamp differs from the one Core has
-		waitMsec(1500);
-		InputStream in = new BufferedInputStream(getRandomContents());
-		OutputStream out = new BufferedOutputStream(new FileOutputStream(ioFile));
-		try {
-			int next = in.read();
-			while (next != -1) {
-				out.write(next);
-				next = in.read();
-			}
-		} finally {
-			out.close();
-		}
-	}
-	
-	/**
-	 * This tests maks sure that performing a CVS operation on a file that is
-	 * out-of-sync results in the proper exception.
-	 */
-	public void testOperationOnOutOfSync() throws CoreException, TeamException, IOException {
-		IProject project = createProject("testFolderAdditionHandling", new String[] { "changed.txt", "deleted.txt", "folder1/", "folder1/a.txt", "folder1/folder2/b.txt"});
-		IFile file = project.getFile("changed.txt");
-		setContentsAndEnsureModified(file);
-		File ioFile = file.getLocation().toFile();
-		setContents(ioFile);
-		try {
-			updateProject(project, null, false);
-		} catch (CVSException e) {
-			// We expect to get an out-of-sync exception
-			if (e.getStatus().getCode() != IResourceStatus.OUT_OF_SYNC_LOCAL)
-				throw e;
-		}
-	}
-	
-	public void testAllCVSFolderRemoval() throws CoreException, TeamException {
-		IProject project = createProject("testAllCVSFolderRemoval", new String[] { "changed.txt", "deleted.txt", "folder1/", "folder1/a.txt", "folder1/folder2/b.txt"});
-		// ensure that all th sync info is loaded
-		EclipseSynchronizer.getInstance().ensureSyncInfoLoaded(new IResource[] {project}, IResource.DEPTH_INFINITE);
-		// delete the CVS folders from the file system and refresh
-		String[] cvsFolders = new String[] {"CVS", "folder1/CVS", "folder1/folder2/CVS"};
-		deleteIOFiles(project, cvsFolders);
-		// The project should no longer be managed
-		assertNotManaged(CVSWorkspaceRoot.getCVSFolderFor(project));
-	}
-
-	public void testSomeCVSFolderRemoval() throws CoreException, TeamException {
-		IProject project = createProject("testAllCVSFolderRemoval", new String[] { "changed.txt", "deleted.txt", "folder1/", "folder1/a.txt", "folder1/folder2/b.txt"});
-		// ensure that all th sync info is loaded
-		EclipseSynchronizer.getInstance().ensureSyncInfoLoaded(new IResource[] {project}, IResource.DEPTH_INFINITE);
-		// delete the CVS folders from the file system and refresh
-		String[] cvsFolders = new String[] {"folder1/CVS", "folder1/folder2/CVS"};
-		deleteIOFiles(project, cvsFolders);
-		// The project should no longer be managed
-		assertNotManaged(CVSWorkspaceRoot.getCVSFolderFor(project.getFolder("folder1")), true);
-	}
-	
-	public void deleteIOFiles(IProject project, String[] cvsFolders)
-		throws CoreException {
-		IPath rootPath = project.getLocation();
-		for (int i = 0; i < cvsFolders.length; i++) {
-			String childPath = cvsFolders[i];
-			IPath fullPath = rootPath.append(childPath);
-			deepDelete(fullPath.toFile());
-		}
-		project.refreshLocal(IResource.DEPTH_INFINITE, null);
-	}
-
-	private static void deepDelete(File resource) {
-		if (resource.isDirectory()) {
-			File[] fileList = resource.listFiles();
-			for (int i = 0; i < fileList.length; i++) {
-				deepDelete(fileList[i]);
-			}
-		}
-		resource.delete();
-	}
-	
-	public void testCVSFodlersMarkedTeamPrivate() throws CoreException, TeamException {
-		IProject project = createProject("testTeamPrivatefolders", new String[] { "changed.txt", "deleted.txt", "folder1/", "folder1/a.txt", "folder1/folder2/b.txt"});
-		
-		project.delete(false /* preserve contents */, true, null);
-		project.create(null);
-		project.open(null);
-		project.accept(new IResourceProxyVisitor() {
-			public boolean visit(IResourceProxy proxy) throws CoreException {
-				if(proxy.getName().equals("CVS")) {
-					fail("all folders should be marked as team private. This one was not:" + proxy.requestResource().getFullPath());
-				}
-				return true;
-			}
-		}, 0);
-	}
-	
-	public void testExternalDeletion() throws CoreException, TeamException {
-		IProject project = createProject("testExternalDeletion", new String[] { "changed.txt", "deleted.txt", "folder1/", "folder1/a.txt", "folder1/folder2/b.txt"});
-		IFile file = project.getFile("folder1/a.txt");
-		deepDelete(file.getLocation().toFile());
-		file.refreshLocal(IResource.DEPTH_ZERO, DEFAULT_MONITOR);
-		assertTrue(!file.exists());
-		ICVSFile cvsFile = CVSWorkspaceRoot.getCVSFileFor(file);
-		assertTrue(cvsFile.isManaged());
-		byte[] syncBytes = cvsFile.getSyncBytes();
-		assertTrue(ResourceSyncInfo.isDeletion(syncBytes));
-	}
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/SyncElementTest.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/SyncElementTest.java
deleted file mode 100644
index e43324a..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/SyncElementTest.java
+++ /dev/null
@@ -1,840 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.core.provider;
-import java.io.IOException;
-
-import junit.framework.AssertionFailedError;
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IProjectDescription;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.sync.ILocalSyncElement;
-import org.eclipse.team.core.sync.IRemoteResource;
-import org.eclipse.team.core.sync.IRemoteSyncElement;
-import org.eclipse.team.core.sync.RemoteSyncElement;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.ICVSFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSResource;
-import org.eclipse.team.internal.ccvs.core.client.Command;
-import org.eclipse.team.internal.ccvs.core.client.Update;
-import org.eclipse.team.internal.ccvs.core.resources.CVSRemoteSyncElement;
-import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
-import org.eclipse.team.tests.ccvs.core.CVSTestSetup;
-import org.eclipse.team.tests.ccvs.core.EclipseTest;
-
-public class SyncElementTest extends EclipseTest {
-
-	/**
-	 * Constructor for SyncElementTest.
-	 */
-	public SyncElementTest() {
-		super();
-	}
-
-	/**
-	 * Constructor for SyncElementTest.
-	 * @param name
-	 */
-	public SyncElementTest(String name) {
-		super(name);
-	}
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(SyncElementTest.class);
-		return new CVSTestSetup(suite);
-		//return new CVSTestSetup(new SyncElementTest("testAdditionConflicts"));
-	}
-	
-	/*
-	 * Get the child in the sync tree
-	 */
-	protected ILocalSyncElement getChild(ILocalSyncElement tree, IPath path) throws TeamException {
-		if (path.segmentCount() == 0)
-			return tree;
-		ILocalSyncElement[] children = tree.members(DEFAULT_MONITOR);
-		for (int i=0;i<children.length;i++) {
-			if (children[i].getName().equals(path.segment(0)))
-				return getChild(children[i], path.removeFirstSegments(1));
-		}
-		assertTrue("Child " + path.toString() + " does not exist", false);
-		return null;
-	}
-	
-	/*
-	 * Assert that the specified resources in the tree have the specified sync kind
-	 * Ignore conflict types if they are not specified in the assert statement
-	 */
-	public void assertSyncEquals(String message, ILocalSyncElement tree, String[] resources, int[] syncKinds, int granularity) throws TeamException {
-		assertTrue(resources.length == syncKinds.length);
-		for (int i=0;i<resources.length;i++) {
-			int conflictTypeMask = 0x0F; // ignore manual and auto merge sync types for now.
-			ILocalSyncElement child = getChild(tree, new Path(resources[i]));
-			int kind = child.getSyncKind(granularity, DEFAULT_MONITOR) & conflictTypeMask;
-			int kindOther = syncKinds[i] & conflictTypeMask;
-			assertTrue(message + ": improper sync state for " + resources[i] + " expected " + 
-					   RemoteSyncElement.kindToString(kindOther) + " but was " +
-					   RemoteSyncElement.kindToString(kind), kind == kindOther);
-		}
-	}
-
-	public void assertSyncEquals(String message, ILocalSyncElement tree, String[] resources, int[] syncKinds) throws TeamException {
-		assertSyncEquals(message, tree, resources, syncKinds, ILocalSyncElement.GRANULARITY_TIMESTAMP);
-	}
-	
-	/*
-	 * Update the sync info of the resources so they can be committed
-	 */
-	public void makeOutgoing(IRemoteSyncElement tree, String[] hierarchy) throws CoreException, TeamException {
-		for (int i=0;i<hierarchy.length;i++) {
-			((CVSRemoteSyncElement)getChild(tree, new Path(hierarchy[i]))).makeOutgoing(DEFAULT_MONITOR);
-		}
-	}
-	
-	public void makeIncoming(IRemoteSyncElement tree, String[] hierarchy) throws CoreException, TeamException {
-		for (int i=0;i<hierarchy.length;i++) {
-			((CVSRemoteSyncElement)getChild(tree, new Path(hierarchy[i]))).makeIncoming(DEFAULT_MONITOR);
-		}
-	}
-	
-	public void makeInSync(IRemoteSyncElement tree, String[] hierarchy) throws CoreException, TeamException {
-		for (int i=0;i<hierarchy.length;i++) {
-			((CVSRemoteSyncElement)getChild(tree, new Path(hierarchy[i]))).makeInSync(DEFAULT_MONITOR);
-		}
-	}
-	/* 
-	 * Assert that the named resources have no local resource or sync info
-	 */
-	public void assertDeleted(String message, IRemoteSyncElement tree, String[] resources) throws CoreException, TeamException {
-		for (int i=0;i<resources.length;i++) {
-			try {
-				ILocalSyncElement element = getChild(tree, new Path(resources[i]));
-				if (! element.getLocal().exists())
-					break;
-			} catch (AssertionFailedError e) {
-				break;
-			}
-			assertTrue(message + ": resource " + resources[i] + " still exists in some form", false);
-		}
-	}
-	
-	/*
-	 * Perform a simple test that checks for the different types of incoming changes
-	 */
-	public void testIncomingChanges() throws TeamException, CoreException, IOException {
-		// Create a test project
-		IProject project = createProject("testIncomingChanges", new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder1/b.txt"});
-		
-		// Checkout and modify a copy
-		IProject copy = checkoutCopy(project, "-copy");
-		setContentsAndEnsureModified(copy.getFile("folder1/a.txt"));
-		addResources(copy, new String[] { "folder2/folder3/add.txt" }, false);
-		deleteResources(copy, new String[] {"folder1/b.txt"}, false);
-		getProvider(copy).checkin(new IResource[] {copy}, IResource.DEPTH_INFINITE, DEFAULT_MONITOR);
-
-		// Get the sync tree for the project
-		IRemoteSyncElement tree = CVSWorkspaceRoot.getRemoteSyncTree(project, CVSTag.DEFAULT, DEFAULT_MONITOR);
-		assertSyncEquals("testIncomingChanges", tree, 
-			new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder1/b.txt", "folder2/", "folder2/folder3/", "folder2/folder3/add.txt"}, 
-			new int[] {
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.INCOMING | IRemoteSyncElement.CHANGE,
-				IRemoteSyncElement.INCOMING | IRemoteSyncElement.DELETION,
-				IRemoteSyncElement.INCOMING | IRemoteSyncElement.ADDITION,
-				IRemoteSyncElement.INCOMING | IRemoteSyncElement.ADDITION,
-				IRemoteSyncElement.INCOMING | IRemoteSyncElement.ADDITION});
-				
-		// Catch up to the incoming changes
-		// XXX SPECIAL CASE: Update must be run on a resource whose parent is managed at the time of the update.
-		makeInSync(tree, new String[] {"folder2/", "folder2/folder3/"});
-		updateResources(project, new String[] {"folder1/a.txt", "folder1/b.txt", /* "folder2/", "folder2/folder3/", */ "folder2/folder3/add.txt"}, false);
-		
-		// Verify that we are in sync (except for "folder1/b.txt", which was deleted)
-		tree = CVSWorkspaceRoot.getRemoteSyncTree(project, CVSTag.DEFAULT, DEFAULT_MONITOR);
-		assertSyncEquals("testIncomingChanges", tree, 
-			new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder2/", "folder2/folder3/", "folder2/folder3/add.txt"}, 
-			new int[] {
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.IN_SYNC});
-		
-		// Ensure "folder1/b.txt" was deleted
-		assertDeleted("testIncomingChanges", tree, new String[] {"folder1/b.txt"});
-				
-		// Verify that the copy equals the original
-		assertEquals(project, copy);
-	}
-	
-	/*
-	 * Perform a simple test that checks for the different types of outgoing changes
-	 */
-	public void testOutgoingChanges() throws TeamException, CoreException {
-		// Create a test project (which commits it as well)
-		IProject project = createProject("testIncomingChanges", new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder1/b.txt"});
-		
-		// Make some modifications
-		setContentsAndEnsureModified(project.getFile("folder1/a.txt"));
-		addResources(project, new String[] { "folder2/folder3/add.txt" }, false);
-		deleteResources(project, new String[] {"folder1/b.txt"}, false);
-
-		// Get the sync tree for the project
-		IRemoteSyncElement tree = CVSWorkspaceRoot.getRemoteSyncTree(project, CVSTag.DEFAULT, DEFAULT_MONITOR);
-		assertSyncEquals("testOutgoingChanges", tree, 
-			new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder1/b.txt", "folder2/", "folder2/folder3/", "folder2/folder3/add.txt"}, 
-			new int[] {
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.OUTGOING | IRemoteSyncElement.CHANGE,
-				IRemoteSyncElement.OUTGOING | IRemoteSyncElement.DELETION,
-				IRemoteSyncElement.IN_SYNC, /* adding a folder creates it remotely */
-				IRemoteSyncElement.IN_SYNC, /* adding a folder creates it remotely */
-				IRemoteSyncElement.OUTGOING | IRemoteSyncElement.ADDITION});
-				
-		// Commit the changes
-		commitResources(project, new String[] {"folder1/a.txt", "folder1/b.txt", "folder2/folder3/add.txt"});
-		
-		// Ensure we're in sync
-		tree = CVSWorkspaceRoot.getRemoteSyncTree(project, CVSTag.DEFAULT, DEFAULT_MONITOR);
-		assertSyncEquals("testOutgoingChanges", tree, 
-			new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder2/", "folder2/folder3/", "folder2/folder3/add.txt"}, 
-			new int[] {
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.IN_SYNC});
-				
-		// Ensure deleted resource "folder1/b.txt" no longer exists
-		assertDeleted("testOutgoingChanges", tree, new String[] {"folder1/b.txt"});
-	}
-	
-	/*
-	 * Perform a test that checks for outgoing changes that are CVS questionables (no add or remove)
-	 */
-	public void testOutgoingQuestionables() throws TeamException, CoreException {
-		// Create a test project (which commits it as well)
-		IProject project = createProject("testIncomingChanges", new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder1/b.txt"});
-		
-		// Make some modifications
-		buildResources(project, new String[] {"folder2/folder3/add.txt"}, false);
-		IFile file = project.getFile("folder1/b.txt");
-		file.delete(true, DEFAULT_MONITOR);
-
-		// Get the sync tree for the project
-		IRemoteSyncElement tree = CVSWorkspaceRoot.getRemoteSyncTree(project, CVSTag.DEFAULT, DEFAULT_MONITOR);
-		assertSyncEquals("testOutgoingQuestionables", tree, 
-			new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder1/b.txt", "folder2/", "folder2/folder3/", "folder2/folder3/add.txt"}, 
-			new int[] {
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.OUTGOING | IRemoteSyncElement.DELETION,
-				IRemoteSyncElement.OUTGOING | IRemoteSyncElement.ADDITION,
-				IRemoteSyncElement.OUTGOING | IRemoteSyncElement.ADDITION,
-				IRemoteSyncElement.OUTGOING | IRemoteSyncElement.ADDITION});
-				
-		// Update the resource sync info so the resources can be commited
-		// Merge won't work for folders so we'll add them explicilty!!!
-		addResources(project, new String[] {"folder2/", "folder2/folder3/", "folder2/folder3/add.txt"}, false);
-		deleteResources(project, new String[] {"folder1/b.txt"}, false);
-		commitResources(project, new String[] {"folder1/b.txt", "folder2/folder3/add.txt"});
-		
-		// Ensure we are in sync
-		tree = CVSWorkspaceRoot.getRemoteSyncTree(project, CVSTag.DEFAULT, DEFAULT_MONITOR);
-		assertSyncEquals("testOutgoingQuestionables", tree, 
-			new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder2/", "folder2/folder3/", "folder2/folder3/add.txt"}, 
-			new int[] {
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.IN_SYNC});
-				
-		// Ensure "folder1/b.txt" was deleted
-		assertDeleted("testOutgoingQuestionables", tree, new String[] {"folder1/b.txt"});
-	}
-	
-	/*
-	 * Test simple file conflicts
-	 */
-	public void testFileConflict() throws TeamException, CoreException, IOException {
-		// Create a test project (which commits it as well)
-		IProject project = createProject("testFileConflict", new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder1/b.txt"});
-		
-		// Checkout a copy and make some modifications
-		IProject copy = checkoutCopy(project, "-copy");
-		appendText(copy.getFile("file1.txt"), "prefix\n", true);
-		setContentsAndEnsureModified(copy.getFile("folder1/a.txt"), "Use a custom string to avoid intermitant errors!");
-		getProvider(copy).checkin(new IResource[] {copy}, IResource.DEPTH_INFINITE, DEFAULT_MONITOR);
-
-		// Make the same modifications to the original (We need to test both M and C!!!)
-		appendText(project.getFile("file1.txt"), "\npostfix", false); // This will test merges (M)
-		setContentsAndEnsureModified(project.getFile("folder1/a.txt"));
-
-		// Get the sync tree for the project
-		IRemoteSyncElement tree = CVSWorkspaceRoot.getRemoteSyncTree(project, CVSTag.DEFAULT, DEFAULT_MONITOR);
-		assertSyncEquals("testFileConflict", tree, 
-			new String[] { "file1.txt", "folder1/", "folder1/a.txt"}, 
-			new int[] {
-				IRemoteSyncElement.CONFLICTING | IRemoteSyncElement.CHANGE,
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.CONFLICTING | IRemoteSyncElement.CHANGE });
-		
-		// Catch up to the file1.txt conflict using UPDATE with ignoreLocalChanges
-		getProvider(project).update(new IResource[] {project.getFile("file1.txt")}, 
-			new Command.LocalOption[] {Update.IGNORE_LOCAL_CHANGES, Command.DO_NOT_RECURSE}, 
-			null, true /*createBackups*/, DEFAULT_MONITOR);					 
-		tree = CVSWorkspaceRoot.getRemoteSyncTree(project, CVSTag.DEFAULT, DEFAULT_MONITOR);
-		assertSyncEquals("testFileConflict", tree, 
-			new String[] { "file1.txt", "folder1/", "folder1/a.txt"}, 
-			new int[] {
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.CONFLICTING | IRemoteSyncElement.CHANGE });
-				
-		// Release the folder1/a.txt conflict by merging and then committing
-		makeOutgoing(tree, new String[] {"folder1/a.txt"});
-		tree = CVSWorkspaceRoot.getRemoteSyncTree(project, CVSTag.DEFAULT, DEFAULT_MONITOR);
-		assertSyncEquals("testFileConflict", tree, 
-			new String[] { "file1.txt", "folder1/", "folder1/a.txt"}, 
-			new int[] {
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.OUTGOING | IRemoteSyncElement.CHANGE });
-		getProvider(project).checkin(new IResource[] {project.getFile("folder1/a.txt")}, IResource.DEPTH_ZERO, DEFAULT_MONITOR);
-		tree = CVSWorkspaceRoot.getRemoteSyncTree(project, CVSTag.DEFAULT, DEFAULT_MONITOR);
-		assertSyncEquals("testFileConflict", tree, 
-			new String[] { "file1.txt", "folder1/", "folder1/a.txt"}, 
-			new int[] {
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.IN_SYNC });
-	}
-	
-	/*
-	 * Test conflicts involving additions
-	 */
-	public void testAdditionConflicts() throws TeamException, CoreException {
-		
-		// CASE 1: The user adds (using CVS add) a remotely added file
-		//     (a) catchup is simply get?
-		//     (b) release must do a merge
-		// CASE 2: The user adds (but not using cvs add) a remotely added file
-		//     (a) catchup is simply get?
-		//     (b) release must do a merge
-		// CASE 3: The user adds a remotely added then deleted file
-		//     catchup is not applicable
-		//     release is normal
-		
-		// Create a test project (which commits it as well) and add an uncommited resource
-		IProject project = createProject("testAdditionConflicts", new String[] { "file.txt"});
-		addResources(project, new String[] { "add1a.txt", "add1b.txt" }, false);
-		addResources(project, new String[] { "add3.txt" }, false);
-		buildResources(project, new String[] {"add2a.txt", "add2b.txt"}, false);
-		
-		// Checkout a copy, add the same resource and commit
-		IProject copy = checkoutCopy(project, "-copy");
-		addResources(copy, new String[] { "add1a.txt", "add1b.txt", "add2a.txt", "add2b.txt", "add3.txt"}, true);
-		deleteResources(copy, new String[] { "add3.txt"}, true);
-
-		// Get the sync tree for the project
-		IRemoteSyncElement tree = CVSWorkspaceRoot.getRemoteSyncTree(project, CVSTag.DEFAULT, DEFAULT_MONITOR);
-		assertSyncEquals("testAdditionConflicts", tree, 
-			new String[] { "file.txt", "add1a.txt", "add1b.txt", "add2a.txt", "add2b.txt", "add3.txt"}, 
-			new int[] {
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.CONFLICTING | IRemoteSyncElement.ADDITION,
-				IRemoteSyncElement.CONFLICTING | IRemoteSyncElement.ADDITION,
-				IRemoteSyncElement.CONFLICTING | IRemoteSyncElement.ADDITION,
-				IRemoteSyncElement.CONFLICTING | IRemoteSyncElement.ADDITION,
-				IRemoteSyncElement.OUTGOING | IRemoteSyncElement.ADDITION });
-				
-		// Release the conflict cases (MERGE is not required for add3.txt but we do it anyway to ensure it doesn't cause problems)
-		makeOutgoing(tree, new String[]{"add1b.txt", "add2b.txt", "add3.txt"});
-		tree = CVSWorkspaceRoot.getRemoteSyncTree(project, CVSTag.DEFAULT, DEFAULT_MONITOR);
-		assertSyncEquals("testAdditionConflicts", tree, 
-			new String[] { "file.txt", "add1b.txt", "add2b.txt", "add3.txt"}, 
-			new int[] {
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.OUTGOING | IRemoteSyncElement.CHANGE,
-				IRemoteSyncElement.OUTGOING | IRemoteSyncElement.CHANGE,
-				IRemoteSyncElement.OUTGOING | IRemoteSyncElement.ADDITION });
-		getProvider(project).checkin(new IResource[] {project.getFile("add1b.txt"), project.getFile("add2b.txt"), project.getFile("add3.txt")}, IResource.DEPTH_ZERO, DEFAULT_MONITOR);
-		tree = CVSWorkspaceRoot.getRemoteSyncTree(project, CVSTag.DEFAULT, DEFAULT_MONITOR);
-		assertSyncEquals("testAdditionConflicts", tree, 
-			new String[] { "file.txt", "add1b.txt", "add2b.txt", "add3.txt"}, 
-			new int[] {
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.IN_SYNC });
-				
-		// Catch-up to conflicting cases using UPDATE
-		// XXX SPECIAL CASE: We need to unmanage the resources and delete it before getting the remote
-		makeIncoming(tree, new String[] {"add1a.txt"});
-		IFile file = project.getFile("add1a.txt");
-		file.delete(false, DEFAULT_MONITOR);
-		file = project.getFile("add2a.txt");
-		file.delete(false, DEFAULT_MONITOR);
-		getProvider(project).update(new IResource[] {project.getFile("add1a.txt"), project.getFile("add2a.txt")}, 
-			new Command.LocalOption[] {Command.DO_NOT_RECURSE}, 
-			null, true /*createBackups*/, DEFAULT_MONITOR);
-		tree = CVSWorkspaceRoot.getRemoteSyncTree(project, CVSTag.DEFAULT, DEFAULT_MONITOR);
-		assertSyncEquals("testAdditionConflicts", tree, 
-			new String[] { "add1a.txt", "add2a.txt"}, 
-			new int[] {
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.IN_SYNC });
-	}
-	
-	/*
-	 * Test conflicts involving deletions
-	 */
-	public void testDeletionConflicts() throws TeamException, CoreException {
-		
-		// CASE 1: The user deletes a remotely modified file
-		//    (a) catchup must do an update
-		//    (b) release must do a merge
-		// CASE 2: The user deletes (and removes) a remotely modified file	
-		//    (a) catchup must do an unmanage and update
-		//    (b) release must do a merge
-		// CASE 3: The user modified a remotely deleted file
-		//    (a) catchup must do an unmanage and local delete
-		//    (b) release must do a merge
-		// CASE 4: The user deletes a remotely deleted file
-		//    (a) catchup can update (or unmanage?)
-		//    (b) release must unmanage
-		// CASE 5: The user deletes (and removes) a remotely deleted file
-		//    (a) catchup can update (or unmanage?)
-		//    (b) release must unmanage
-		
-		// Perform the test case for case A first
-		
-		// Create a test project (which commits it as well) and delete the resource without committing
-		IProject project = createProject("testDeletionConflictsA", new String[] { "delete1.txt", "delete2.txt", "delete3.txt", "delete4.txt", "delete5.txt"});
-		IFile file = project.getFile("delete1.txt"); // WARNING: This does a "cvs remove"!!!
-		file.delete(false, DEFAULT_MONITOR);
-		deleteResources(project, new String[] {"delete2.txt"}, false);
-		setContentsAndEnsureModified(project.getFile("delete3.txt"));
-		file = project.getFile("delete4.txt");
-		file.delete(false, DEFAULT_MONITOR);
-		deleteResources(project, new String[] {"delete5.txt"}, false);
-		
-		// Checkout a copy and commit the deletion
-		IProject copy = checkoutCopy(project, "-copy");
-		setContentsAndEnsureModified(copy.getFile("delete1.txt"));
-		setContentsAndEnsureModified(copy.getFile("delete2.txt"));
-		deleteResources(copy, new String[] {"delete3.txt", "delete4.txt", "delete5.txt"}, false);
-		getProvider(copy).checkin(new IResource[] {copy}, IResource.DEPTH_INFINITE, DEFAULT_MONITOR);
-		
-		// Get the sync tree for the project
-		IRemoteSyncElement tree = CVSWorkspaceRoot.getRemoteSyncTree(project, CVSTag.DEFAULT, DEFAULT_MONITOR);
-		assertSyncEquals("testDeletionConflictsA", tree, 
-			new String[] { "delete1.txt", "delete2.txt", "delete3.txt", "delete4.txt", "delete5.txt"}, 
-			new int[] {
-				IRemoteSyncElement.CONFLICTING | IRemoteSyncElement.CHANGE,
-				IRemoteSyncElement.CONFLICTING | IRemoteSyncElement.CHANGE,
-				IRemoteSyncElement.CONFLICTING | IRemoteSyncElement.CHANGE,
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.IN_SYNC });
-				
-		// Catch up to remote changes.
-		// XXX SPECIAL CASE: delete1.txt must be unmanaged before the catch-up
-		makeIncoming(tree, new String[] {"delete1.txt"});
-		// XXX SPECIAL CASE: delete2.txt must be unmanaged before the catch-up
-		makeIncoming(tree, new String[] {"delete2.txt"});
-		// XXX SPECIAL CASE: delete3.txt must ignore local changes (and -C doesn't work so we'll unmanage and delete the local resource)
-		makeIncoming(tree, new String[] {"delete3.txt"});
-		project.getFile("delete3.txt").delete(false, DEFAULT_MONITOR);
-		updateResources(project, new String[] {"delete1.txt", "delete2.txt", "delete3.txt", "delete4.txt", "delete5.txt"}, true);
-		tree = CVSWorkspaceRoot.getRemoteSyncTree(project, CVSTag.DEFAULT, DEFAULT_MONITOR);
-		assertSyncEquals("testDeletionConflictsA", tree, 
-			new String[] { "delete1.txt", "delete2.txt"}, 
-			new int[] {
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.IN_SYNC });
-		assertDeleted("testDeletionConflictsA", tree, new String[] {"delete3.txt", "delete4.txt", "delete5.txt"});
-		
-		// Now redo the test case for case B
-		
-		// Create a test project (which commits it as well) and delete the resource without committing
-		project = createProject("testDeletionConflictsB", new String[] { "delete1.txt", "delete2.txt", "delete3.txt", "delete4.txt", "delete5.txt"});
-		file = project.getFile("delete1.txt");
-		file.delete(false, DEFAULT_MONITOR);
-		deleteResources(project, new String[] {"delete2.txt"}, false);
-		setContentsAndEnsureModified(project.getFile("delete3.txt"));
-		file = project.getFile("delete4.txt");
-		file.delete(false, DEFAULT_MONITOR);
-		deleteResources(project, new String[] {"delete5.txt"}, false);
-		
-		// Checkout a copy and commit the deletion
-		copy = checkoutCopy(project, "-copy");
-		setContentsAndEnsureModified(copy.getFile("delete1.txt"));
-		setContentsAndEnsureModified(copy.getFile("delete2.txt"));
-		deleteResources(copy, new String[] {"delete3.txt", "delete4.txt", "delete5.txt"}, false);
-		getProvider(copy).checkin(new IResource[] {copy}, IResource.DEPTH_INFINITE, DEFAULT_MONITOR);
-
-		// Get the sync tree for the project
-		tree = CVSWorkspaceRoot.getRemoteSyncTree(project, CVSTag.DEFAULT, DEFAULT_MONITOR);
-		assertSyncEquals("testDeletionConflictsB", tree, 
-			new String[] { "delete1.txt", "delete2.txt", "delete3.txt", "delete4.txt", "delete5.txt"}, 
-			new int[] {
-				IRemoteSyncElement.CONFLICTING | IRemoteSyncElement.CHANGE,
-				IRemoteSyncElement.CONFLICTING | IRemoteSyncElement.CHANGE,
-				IRemoteSyncElement.CONFLICTING | IRemoteSyncElement.CHANGE,
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.IN_SYNC });
-
-		// Release the resources
-		// XXX SPECIAL CASE: "delete1.txt", "delete2.txt" and "delete3.txt" must be merged
-		makeOutgoing(tree, new String[]{"delete1.txt", "delete2.txt", "delete3.txt"});
-		// XXX SPECIAL CASE: "delete4.txt" and "delete5.txt" must be unmanaged
-		unmanageResources(project, new String[]{"delete4.txt", "delete5.txt"});
-		commitResources(project, new String[] { "delete1.txt", "delete2.txt", "delete3.txt", "delete4.txt", "delete5.txt"});
-		tree = CVSWorkspaceRoot.getRemoteSyncTree(project, CVSTag.DEFAULT, DEFAULT_MONITOR);
-		assertSyncEquals("testDeletionConflictsB", tree, 
-			new String[] { "delete3.txt"}, 
-			new int[] {
-				IRemoteSyncElement.IN_SYNC });
-		assertDeleted("testDeletionConflictsB", tree, new String[] {"delete1.txt", "delete2.txt", "delete4.txt", "delete5.txt"});
-	}
-	
-	/*
-	 * Test the creation and sync of an empty local project that has remote contents
-	 */
-	public void testSyncOnEmptyProject() throws TeamException {
-	}
-	
-	/*
-	 * Test syncing on a folder that has been deleted from the server
-	 */
-	public void testSyncOnDeletedFolder() throws TeamException {
-	}
-	
-	/*
-	 * Test syncing on a folder that is empty on the server and has been pruned, then added locally
-	 */
-	public void testSyncOnPrunedFolder() throws TeamException {
-	}
-	
-	/*
-	 * Test sync involving pruned directories
-	 */
-	public void testSyncWithPruning() throws TeamException {
-	}
-	
-	/*
-	 * Test a conflict with an incomming foler addition and an unmanaqged lcoal folder
-	 */
-	public void testFolderConflict()  throws TeamException, CoreException {
-		
-		// Create a test project (which commits it as well) and delete the resource without committing
-		IProject project = createProject("testFolderConflict", new String[] { "file.txt"});
-		
-		// Checkout a copy and add some folders
-		IProject copy = checkoutCopy(project, "-copy");
-		addResources(copy, new String[] {"folder1/file.txt", "folder2/file.txt"}, true);
-		
-		// Add a folder to the original project (but not using cvs)
-		IResource[] resources = buildResources(project, new String[] {"folder1/"});
-		((IFolder)resources[0]).create(false, true, DEFAULT_MONITOR);
-		
-		IRemoteSyncElement tree = CVSWorkspaceRoot.getRemoteSyncTree(project, CVSTag.DEFAULT, DEFAULT_MONITOR);
-		assertSyncEquals("testFolderConflict", tree, 
-			new String[] { "file.txt", "folder1/", "folder1/file.txt", "folder2/", "folder2/file.txt"}, 
-			new int[] {
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.CONFLICTING | IRemoteSyncElement.ADDITION,
-				IRemoteSyncElement.INCOMING | IRemoteSyncElement.ADDITION,
-				IRemoteSyncElement.INCOMING | IRemoteSyncElement.ADDITION,
-				IRemoteSyncElement.INCOMING | IRemoteSyncElement.ADDITION});
-				
-		makeInSync(tree, new String[] {"folder1/"});
-		tree = CVSWorkspaceRoot.getRemoteSyncTree(project, CVSTag.DEFAULT, DEFAULT_MONITOR);
-		assertSyncEquals("testFolderConflict", tree, 
-			new String[] { "file.txt", "folder1/", "folder1/file.txt", "folder2/", "folder2/file.txt"}, 
-			new int[] {
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.INCOMING | IRemoteSyncElement.ADDITION,
-				IRemoteSyncElement.INCOMING | IRemoteSyncElement.ADDITION,
-				IRemoteSyncElement.INCOMING | IRemoteSyncElement.ADDITION});
-	}
-	 
-	/*
-	 * Test that a deleted file can still be deleted through the team provider
-	 */
-	public void testOutgoingDeletion() throws TeamException, CoreException {
-		
-		// Create a test project (which commits it as well)
-		IProject project = createProject("testOutgoingDeletion", new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder1/b.txt"});
-		
-		// Delete a file
-		IFile file = project.getFile("folder1/b.txt");
-		file.delete(true, DEFAULT_MONITOR); // WARNING: As of 2002/03/05, this is equivalent to a cvs remove
-
-		// Get the sync tree for the project
-		IRemoteSyncElement tree = CVSWorkspaceRoot.getRemoteSyncTree(project, CVSTag.DEFAULT, DEFAULT_MONITOR);
-		assertSyncEquals("testOutgoingDeletion", tree, 
-			new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder1/b.txt"}, 
-			new int[] {
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.OUTGOING | IRemoteSyncElement.DELETION});
-				
-		// Commit the deletion
-		getProvider(file).checkin(new IResource[] {file}, IResource.DEPTH_ZERO, DEFAULT_MONITOR);
-		
-		// Get the sync tree again for the project and ensure others aren't effected
-		tree = CVSWorkspaceRoot.getRemoteSyncTree(project, CVSTag.DEFAULT, DEFAULT_MONITOR);
-		assertSyncEquals("testOutgoingDeletion", tree, 
-			new String[] { "file1.txt", "folder1/", "folder1/a.txt"}, 
-			new int[] {
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.IN_SYNC});
-				
-		// Assert that deletion no longer appears in remote tree
-		assertDeleted("testOutgoingDeletion", tree, new String[] {"folder1/b.txt"});
-	}
-	
-	/*
-	 * Test catching up to an incoming addition
-	 */
-	public void testIncomingAddition() throws TeamException, CoreException {
-		// Create a test project
-		IProject project = createProject("testIncomingAddition", new String[] { "file1.txt", "folder1/", "folder1/a.txt"});
-		
-		// Checkout and modify a copy
-		IProject copy = checkoutCopy(project, "-copy");
-		addResources(copy, new String[] { "folder1/add.txt" }, true);
-
-		// Get the sync tree for the project
-		IRemoteSyncElement tree = CVSWorkspaceRoot.getRemoteSyncTree(project, CVSTag.DEFAULT, DEFAULT_MONITOR);
-		assertSyncEquals("testIncomingAddition", tree, 
-			new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder1/add.txt"}, 
-			new int[] {
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.INCOMING | IRemoteSyncElement.ADDITION});
-		
-		// Get the resource from the tree
-		ILocalSyncElement element = getChild(tree, new Path("folder1/add.txt"));
-		
-		// Catch up to the addition by updating
-		getProvider(project).update(new IResource[] {element.getLocal()}, new Command.LocalOption[] {Command.DO_NOT_RECURSE}, 
-			null, true /*createBackups*/, DEFAULT_MONITOR);
-		
-		// Get the sync tree again for the project and ensure the added resource is in sync
-		tree = CVSWorkspaceRoot.getRemoteSyncTree(project, CVSTag.DEFAULT, DEFAULT_MONITOR);
-		assertSyncEquals("testIncomingAddition", tree, 
-			new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder1/add.txt"}, 
-			new int[] {
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.IN_SYNC});
-	}
-	
-	/* 
-	 * Test changes using a granularity of contents
-	 */
-	 public void testGranularityContents() throws TeamException, CoreException, IOException {
-	 	// Create a test project (which commits it as well)
-		IProject project = createProject("testGranularityContents", new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder1/b.txt"});
-		
-		// Checkout a copy and make some modifications
-		IProject copy = checkoutCopy(project, "-copy");
-		appendText(copy.getFile("file1.txt"), "", true);
-		setContentsAndEnsureModified(copy.getFile("folder1/a.txt"));
-		getProvider(copy).checkin(new IResource[] {copy}, IResource.DEPTH_INFINITE, DEFAULT_MONITOR);
-
-		// Make the same modifications to the original
-		appendText(project.getFile("file1.txt"), "", false);
-		setContentsAndEnsureModified(project.getFile("folder1/a.txt"), "unique text");
-		
-		// Get the sync tree for the project
-		IRemoteSyncElement tree = CVSWorkspaceRoot.getRemoteSyncTree(project, CVSTag.DEFAULT, DEFAULT_MONITOR);
-		assertSyncEquals("testGranularityContents", tree, 
-			new String[] { "file1.txt", "folder1/", "folder1/a.txt"}, 
-			new int[] {
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.IN_SYNC,
-				IRemoteSyncElement.CONFLICTING | IRemoteSyncElement.CHANGE },
-			IRemoteSyncElement.GRANULARITY_CONTENTS);
-	 }
-	 
-	 public void testGetBase() throws TeamException, CoreException, IOException {
-		// Create a test project (which commits it as well)
-		IProject project = createProject("testIncomingChanges", new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder1/b.txt"});
-		
-		// Checkout and modify a copy
-		IProject copy = checkoutCopy(project, "-copy");
-		
-		// Make some modifications
-		setContentsAndEnsureModified(project.getFile("folder1/a.txt"));
-		addResources(project, new String[] { "folder1/add.txt" }, false);
-		deleteResources(project, new String[] {"folder1/b.txt"}, false);
-		
-		// Get the sync tree for the project
-		IRemoteSyncElement tree = CVSWorkspaceRoot.getRemoteSyncTree(project, CVSTag.DEFAULT, DEFAULT_MONITOR);
-		assertEquals(Path.EMPTY, (ICVSResource)tree.getBase(), CVSWorkspaceRoot.getCVSResourceFor(copy), false, false);
-
-	 }
-	 
-	 public void testSimpleMerge() throws TeamException, CoreException, IOException {
-		// Create a test project (which commits it as well)
-		IProject project = createProject("testSimpleMerge", new String[] { "file1.txt", "file2.txt", "file3.txt", "folder1/", "folder1/a.txt", "folder1/b.txt"});
-	
-		// Checkout and modify a copy
-		IProject copy = checkoutCopy(project, "-copy");
-		copy.refreshLocal(IResource.DEPTH_INFINITE, DEFAULT_MONITOR);
-		
-		tagProject(project, new CVSTag("v1", CVSTag.VERSION), false);
-		tagProject(project, new CVSTag("branch1", CVSTag.BRANCH), false);
-		
-		getProvider(copy).update(new IResource[] {copy}, Command.NO_LOCAL_OPTIONS,
-			new CVSTag("branch1", CVSTag.BRANCH), true /*createBackups*/, DEFAULT_MONITOR);
-		
-		// make changes on the branch		
-		addResources(copy, new String[] {"addition.txt", "folderAddition/", "folderAddition/new.txt"}, true);
-		deleteResources(copy, new String[] {"folder1/b.txt"}, true);
-		changeResources(copy, new String[] {"file1.txt", "file2.txt"}, true);
-		
-		// make change to workspace working on HEAD
-		changeResources(project, new String[] {"file2.txt"}, false);
-		changeResources(project, new String[] {"file3.txt"}, true);
-		
-		IRemoteResource base = CVSWorkspaceRoot.getRemoteTree(project, new CVSTag("v1", CVSTag.VERSION), DEFAULT_MONITOR);
-		IRemoteResource remote = CVSWorkspaceRoot.getRemoteTree(project, new CVSTag("branch1", CVSTag.BRANCH), DEFAULT_MONITOR);
-		IRemoteSyncElement tree = new CVSRemoteSyncElement(true /*three way*/, project, base, remote);
-		
-		// watch for empty directories and the prune option!!!
-		assertSyncEquals("testSimpleMerge sync check", tree,
-						 new String[] { "addition.txt", "folderAddition/", "folderAddition/new.txt", 
-						 				 "folder1/b.txt", "file1.txt", "file2.txt", "file3.txt"},
-						 new int[] { IRemoteSyncElement.INCOMING | IRemoteSyncElement.ADDITION,
-						 			  IRemoteSyncElement.INCOMING | IRemoteSyncElement.ADDITION,
-						 			  IRemoteSyncElement.INCOMING | IRemoteSyncElement.ADDITION,
-						 			  IRemoteSyncElement.INCOMING | IRemoteSyncElement.DELETION,
-						 			  IRemoteSyncElement.INCOMING | IRemoteSyncElement.CHANGE,
-						 			  IRemoteSyncElement.CONFLICTING | IRemoteSyncElement.CHANGE,
-						 			  IRemoteSyncElement.OUTGOING | IRemoteSyncElement.CHANGE });				 			  					 			  
-	 }
-	 
-	 public void testSyncOnBranch() throws TeamException, CoreException, IOException {
-	 	
-	 	// Create a test project and a branch
-		IProject project = createProject("testSyncOnBranch", new String[] { "file1.txt", "file2.txt", "file3.txt", "folder1/", "folder1/a.txt", "folder1/b.txt"});
-		CVSTag branch = new CVSTag("branch1", CVSTag.BRANCH);
-		tagProject(project, branch, false);
-		getProvider(project).update(new IResource[] {project}, Command.NO_LOCAL_OPTIONS, branch, true /*createBackups*/, DEFAULT_MONITOR);
-
-		// Checkout and modify a copy
-		IProject copy = checkoutCopy(project, branch);
-		addResources(copy, new String[] {"addition.txt", "folderAddition/", "folderAddition/new.txt"}, true);
-		deleteResources(copy, new String[] {"folder1/b.txt"}, true);
-		changeResources(copy, new String[] {"file1.txt", "file2.txt"}, true);
-		
-		// Sync on the original and assert the result equals the copy
-		IRemoteSyncElement tree = CVSWorkspaceRoot.getRemoteSyncTree(project, null, DEFAULT_MONITOR);
-		assertEquals(Path.EMPTY, (ICVSResource)tree.getRemote(), CVSWorkspaceRoot.getCVSResourceFor(copy), false, false);
-	 }
-	 
- 	public void testRenameProject() throws TeamException, CoreException, IOException {
-		String[] resourceNames = new String[] { "changed.txt", "folder1/", "folder1/a.txt" };
-		int[] inSync = new int[] {IRemoteSyncElement.IN_SYNC, IRemoteSyncElement.IN_SYNC, IRemoteSyncElement.IN_SYNC};
-		IProject project = createProject("testRenameProject", new String[] { "changed.txt", "folder1/", "folder1/a.txt" });
-		
-		IRemoteSyncElement tree = CVSWorkspaceRoot.getRemoteSyncTree(project, CVSTag.DEFAULT, DEFAULT_MONITOR);
-		assertSyncEquals("sync should be in sync", tree, resourceNames, inSync);
-		IProjectDescription desc = project.getDescription();
-		String newName = project.getName() + "_renamed";
-		desc.setName(newName);
-		project.move(desc, false, null);
-		project = ResourcesPlugin.getWorkspace().getRoot().getProject(newName);
-		assertTrue(project.exists());
-		tree = CVSWorkspaceRoot.getRemoteSyncTree(project, CVSTag.DEFAULT, DEFAULT_MONITOR);
-		assertSyncEquals("sync should be in sync", tree, resourceNames, inSync);
-	}
-	
-	public void testFolderDeletion() throws TeamException, CoreException {
-		
-		IProject project = createProject("testFolderDeletion", new String[] { "changed.txt", "deleted.txt", "folder1/", "folder1/a.txt", "folder1/folder2/file.txt"});
-		
-		// Delete a folder and ensure that the file is managed but doesn't exist
-		// (Special behavior is provider by the CVS move/delete hook but this is not part of CVS core)
-		project.getFolder("folder1").delete(false, false, null);
-		ICVSFolder folder = CVSWorkspaceRoot.getCVSFolderFor(project.getFolder("folder1"));
-		assertTrue("Deleted folder not in proper state", ! folder.exists() && folder.isManaged() && folder.isCVSFolder());
-		
-		// The files should show up as outgoing deletions
-		IRemoteSyncElement tree = CVSWorkspaceRoot.getRemoteSyncTree(project, CVSTag.DEFAULT, DEFAULT_MONITOR);
-		assertSyncEquals("testFolderDeletion sync check", tree,
-						 new String[] { "folder1", "folder1/a.txt", "folder1/folder2", "folder1/folder2/file.txt"},
-						 new int[] { IRemoteSyncElement.IN_SYNC,
-						 			  IRemoteSyncElement.OUTGOING | IRemoteSyncElement.DELETION,
-						 			  IRemoteSyncElement.IN_SYNC,
-						 			  IRemoteSyncElement.OUTGOING | IRemoteSyncElement.DELETION});
-		
-		// commit folder1/a.txt
-		commitResources(project, new String[] { "folder1/a.txt" });
-		
-		// Resync and verify that above file is gone and others remain the same
-		tree = CVSWorkspaceRoot.getRemoteSyncTree(project, CVSTag.DEFAULT, DEFAULT_MONITOR);
-		assertSyncEquals("testFolderDeletion sync check", tree,
-						 new String[] { "folder1", "folder1/folder2", "folder1/folder2/file.txt"},
-						 new int[] { IRemoteSyncElement.IN_SYNC,
-						 			  IRemoteSyncElement.IN_SYNC,
-						 			  IRemoteSyncElement.OUTGOING | IRemoteSyncElement.DELETION});
-		assertDeleted("testFolderDeletion", tree, new String[] {"folder1/a.txt"});
-		
-		// Commit folder1/folder2/file.txt
-		commitResources(project, new String[] { "folder1/folder2/file.txt" });
-		
-		// Resync and verify that all are deleted
-		tree = CVSWorkspaceRoot.getRemoteSyncTree(project, CVSTag.DEFAULT, DEFAULT_MONITOR);
-		assertDeleted("testFolderDeletion", tree, new String[] {"folder1", "folder1/folder2", "folder1/folder2/file.txt"});
-	}
-	/**
-	  * There is special handling required when building a sync tree for a tag when there are undiscovered folders
-	  * that only contain other folders.
-	  */
-	 public void testTagRetrievalForFolderWithNoFile() throws TeamException, CoreException {
-	 	IProject project = createProject("testTagRetrievalForFolderWithNoFile", new String[] { "changed.txt", "deleted.txt", "folder1/", "folder1/a.txt"});
-		// Checkout, branch and modify a copy
-		IProject copy = checkoutCopy(project, "-copy");
-		CVSTag version = new CVSTag("v1", CVSTag.BRANCH);
-		CVSTag branch = new CVSTag("branch1", CVSTag.BRANCH);
-		getProvider(copy).makeBranch(new IResource[] {copy}, version, branch, true, DEFAULT_MONITOR);
-		addResources(copy, new String[] {"folder2/folder3/a.txt"}, true);
-		
-		// Fetch the tree corresponding to the branch using the original as the base.
-		// XXX This will fail for CVSNT with directory pruning on
-		IRemoteSyncElement tree = CVSWorkspaceRoot.getRemoteSyncTree(project, branch, DEFAULT_MONITOR);
-	 }
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/WatchEditTest.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/WatchEditTest.java
deleted file mode 100644
index ddade19..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/WatchEditTest.java
+++ /dev/null
@@ -1,146 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.core.provider;
-
-import java.io.IOException;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceVisitor;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.CVSProviderPlugin;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.tests.ccvs.core.CVSTestSetup;
-import org.eclipse.team.tests.ccvs.core.EclipseTest;
-
-/**
- * Test the cvs watch/edit functionality
- */
-public class WatchEditTest extends EclipseTest {
-
-	/**
-	 * Constructor for CVSProviderTest
-	 */
-	public WatchEditTest() {
-		super();
-	}
-
-	/**
-	 * Constructor for CVSProviderTest
-	 */
-	public WatchEditTest(String name) {
-		super(name);
-	}
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(WatchEditTest.class);
-		return new CVSTestSetup(suite);
-		//return new CVSTestSetup(new WatchEditTest("testReadOnly"));
-	}
-	
-	private void setReadOnly(boolean b) {
-		CVSProviderPlugin.getPlugin().getPluginPreferences().setValue(CVSProviderPlugin.READ_ONLY, b);
-	}
-	
-	/**
-	 * Method assertAllFilesReadOnly.
-	 * @param copy
-	 */
-	private void assertAllFilesReadOnly(IContainer folder) throws CoreException {
-		folder.accept(new IResourceVisitor() {
-			public boolean visit(IResource resource) throws CoreException {
-				if (resource.getType() == IResource.FILE) {
-					assertTrue(resource.isReadOnly());
-				}
-				return true;
-			}
-		});
-	}
-	
-	public void testReadOnlyCheckout() throws CoreException, TeamException {
-		// Create a project
-		IProject project = createProject("testReadOnlyCheckout", new String[] { "changed.txt", "deleted.txt", "folder1/", "folder1/a.txt" });
-		// XXX project will not be read-only at this point because "cvs add" followed by a "cvs commit" doesn't set the resource "read-only"
-		IProject copy = checkoutCopy(project, "copy");
-		assertReadOnly(new IResource[] {copy}, true /* isReadOnly */, true /* recurse */);
-	}
-
-	public void testEditUnedit() throws CoreException, TeamException, IOException {
-		// Create a project
-		IProject project = createProject("testEditUnedit", new String[] { "changed.txt", "deleted.txt", "folder1/", "folder1/a.txt" });
-		// XXX project will not be read-only at this point because "cvs add" followed by a "cvs commit" doesn't set the resource "read-only"
-		IProject copy = checkoutCopy(project, "copy");
-		assertReadOnly(new IResource[] {copy}, true /* isReadOnly */, true /* recurse */);
-		editResources(copy, new String[] {"changed.txt", "deleted.txt"});
-		setContentsAndEnsureModified(copy.getFile("changed.txt"));
-		deleteResources(copy, new String[] {"deleted.txt"}, false);
-		uneditResources(copy, new String[] {"changed.txt", "deleted.txt"});
-		assertEquals(project, copy);
-	}
-	
-	public void testCommit() throws CoreException, TeamException, IOException {
-		// Create a project
-		IProject project = createProject("testCommit", new String[] { "changed.txt", "deleted.txt", "folder1/", "folder1/a.txt" });
-		// XXX project will not be read-only at this point because "cvs add" followed by a "cvs commit" doesn't set the resource "read-only"
-		IProject copy = checkoutCopy(project, "copy");
-		editResources(copy, new String[] {"changed.txt"});
-		setContentsAndEnsureModified(copy.getFile("changed.txt"));
-		commitProject(copy);
-		assertReadOnly(new IResource[] {copy.getFile("changed.txt")}, true /* isReadOnly */, true /* recurse */);
-	}
-	
-	public void testEditMergeUnedit() throws CoreException, TeamException, IOException {
-		// Create a project
-		IProject project = createProject("testEditMergeUnedit", new String[] { "changed.txt", "deleted.txt", "folder1/", "folder1/a.txt" });
-		// XXX project will not be read-only at this point because "cvs add" followed by a "cvs commit" doesn't set the resource "read-only"
-		IProject copy = checkoutCopy(project, "copy");
-		IProject copy2 = checkoutCopy(project, "copy2");
-		// Modify the second copy and commit changes
-		editResources(copy2, new String[] {"changed.txt"});
-		setContentsAndEnsureModified(copy2.getFile("changed.txt"));
-		commitProject(copy2);
-		// Edit first copy, merge then unedit
-		editResources(copy, new String[] {"changed.txt"});
-		setContentsAndEnsureModified(copy.getFile("changed.txt"));
-		updateProject(copy, CVSTag.DEFAULT, false);
-		// XXX Update may or may not make the file read-only so it may need to be re-edited
-		if (copy.getFile("changed.txt").isReadOnly()) {
-			editResources(copy, new String[] {"changed.txt"});
-		}
-		uneditResources(copy, new String[] {"changed.txt", "deleted.txt"});
-		IFile backup = copy.getFile(".#changed.txt.1.1");
-		if (backup.exists()) backup.delete(true, false, null);
-		assertEquals(project, copy);
-	}
-	
-	/**
-	 * @see junit.framework.TestCase#setUp()
-	 */
-	protected void setUp() throws Exception {
-		super.setUp();
-		setReadOnly(true);
-	}
-
-	/**
-	 * @see junit.framework.TestCase#tearDown()
-	 */
-	protected void tearDown() throws Exception {
-		super.tearDown();
-		setReadOnly(false);
-	}
-
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/AllTestsTeamSubscriber.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/AllTestsTeamSubscriber.java
deleted file mode 100644
index d84295e..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/AllTestsTeamSubscriber.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.core.subscriber;
-import junit.framework.Test;
-import junit.framework.TestSuite;
-import org.eclipse.team.tests.ccvs.core.CVSTestSetup;
-import org.eclipse.team.tests.ccvs.core.EclipseTest;
-
-public class AllTestsTeamSubscriber extends EclipseTest {
-
-	public AllTestsTeamSubscriber() {
-		super();
-	}
-
-	public AllTestsTeamSubscriber(String name) {
-		super(name);
-	}
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite();
-		suite.addTest(CVSMergeSubscriberTest.suite());
-		suite.addTest(CVSWorkspaceSubscriberTest.suite());
-		return new CVSTestSetup(suite);
-	}
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/CVSMergeSubscriberTest.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/CVSMergeSubscriberTest.java
deleted file mode 100644
index c66c8a7..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/CVSMergeSubscriberTest.java
+++ /dev/null
@@ -1,270 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.core.subscriber;
-
-import java.io.IOException;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.subscribers.SyncInfo;
-import org.eclipse.team.core.subscribers.TeamSubscriber;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSMergeSubscriber;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.client.Command;
-import org.eclipse.team.internal.ccvs.ui.subscriber.MergeUpdateAction;
-import org.eclipse.team.internal.ui.sync.views.SyncResource;
-import org.eclipse.team.tests.ccvs.core.CVSTestSetup;
-import org.eclipse.team.ui.sync.SyncResourceSet;
-
-
-/**
- * Tests the CVSMergeSubscriber
- */
-public class CVSMergeSubscriberTest extends CVSSyncSubscriberTest {
-
-	public static Test suite() {
-		String testName = System.getProperty("eclipse.cvs.testName");
-		if (testName == null) {
-			TestSuite suite = new TestSuite(CVSMergeSubscriberTest.class);
-			return new CVSTestSetup(suite);
-		} else {
-			return new CVSTestSetup(new CVSMergeSubscriberTest(testName));
-		}
-	}
-	
-	public CVSMergeSubscriberTest() {
-		super();
-	}
-
-	public CVSMergeSubscriberTest(String name) {
-		super(name);
-	}
-
-	private IProject branchProject(IProject project, CVSTag root, CVSTag branch) throws TeamException {
-		IProject copy = checkoutCopy(project, "-copy");
-		tagProject(project, root, false);
-		tagProject(project, branch, false);
-		getProvider(copy).update(new IResource[] {copy}, Command.NO_LOCAL_OPTIONS,
-			branch, false /*createBackups*/, DEFAULT_MONITOR);
-		return copy;
-	}
-		
-	/**
-	 * Perform a merge on the given resources
-	 * @param subscriber
-	 * @param project
-	 * @param strings
-	 */
-	private void mergeResources(CVSMergeSubscriber subscriber, IProject project, String[] resourcePaths) throws CoreException, TeamException {
-		IResource[] resources = getResources(project, resourcePaths);
-		SyncResource[] syncResources = createSyncResources(subscriber, resources);
-		mergeResources(subscriber, syncResources);
-	}
-	
-	/**
-	 * @param syncResources
-	 */
-	private void mergeResources(TeamSubscriber subscriber, SyncResource[] syncResources) throws CVSException {
-		MergeUpdateAction action = new MergeUpdateAction() {
-			protected boolean promptForOverwrite(SyncResourceSet syncSet) {
-				// Agree to overwrite any conflicting resources
-				return true;
-			}
-		};
-		action.setSubscriber(subscriber);
-		action.run(new SyncResourceSet(syncResources), DEFAULT_MONITOR);
-	}
-
-	/**
-	 * Test the basic incoming changes cases
-	 * - incoming addition
-	 * - incoming deletion
-	 * - incoming change
-	 * - incoming addition of a folder containing files
-	 */
-	public void testIncomingChanges() throws CoreException, TeamException {
-		// Create a test project
-		IProject project = createProject("testIncomingChanges", new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder1/b.txt"});
-
-		// Checkout and branch a copy
-		CVSTag root = new CVSTag("root_branch1", CVSTag.VERSION);
-		CVSTag branch = new CVSTag("branch1", CVSTag.BRANCH);
-		IProject copy = branchProject(project, root, branch);
-		
-		// Modify the branch
-		addResources(copy, new String[] {"addition.txt", "folderAddition/", "folderAddition/new.txt"}, true);
-		deleteResources(copy, new String[] {"folder1/a.txt"}, true);
-		changeResources(copy, new String[] {"file1.txt"}, true);
-		
-		// create a merge subscriber
-		CVSMergeSubscriber subscriber = new CVSMergeSubscriber(new IResource[] { project }, root, branch);
-		
-		// check the sync states
-		assertSyncEquals("testIncomingChanges", subscriber, project, 
-			new String[] { "file1.txt", "folder1/", "folder1/a.txt", "addition.txt", "folderAddition/", "folderAddition/new.txt"}, 
-			true, new int[] {
-				SyncInfo.INCOMING | SyncInfo.CHANGE,
-				SyncInfo.IN_SYNC,
-				SyncInfo.INCOMING | SyncInfo.DELETION,
-				SyncInfo.INCOMING | SyncInfo.ADDITION,
-				SyncInfo.INCOMING | SyncInfo.ADDITION,
-				SyncInfo.INCOMING | SyncInfo.ADDITION});
-				
-		// Perform a merge
-		mergeResources(subscriber, project, new String[] { 
-			"file1.txt",
-			"folder1/a.txt", 
-			"addition.txt", 
-			"folderAddition/", 
-			"folderAddition/new.txt"});
-			
-		// check the sync states for the workspace subscriber
-		assertSyncEquals("testIncomingChanges", getWorkspaceSubscriber(), project, 
-			new String[] { "file1.txt", "folder1/", "folder1/a.txt", "addition.txt", "folderAddition/", "folderAddition/new.txt"}, 
-			true, new int[] {
-				SyncInfo.OUTGOING | SyncInfo.CHANGE,
-				SyncInfo.IN_SYNC,
-				SyncInfo.OUTGOING  | SyncInfo.DELETION,
-				SyncInfo.OUTGOING | SyncInfo.ADDITION,
-				SyncInfo.IN_SYNC,
-				SyncInfo.OUTGOING | SyncInfo.ADDITION});
-	}
-
-	public void testMergableConflicts() throws TeamException, CVSException, CoreException, IOException {
-		// Create a test project
-		IProject project = createProject("testMergableConflicts", new String[] { "file1.txt", "file2.txt", "folder1/", "folder1/a.txt", "folder1/b.txt"});
-		setContentsAndEnsureModified(project.getFile("file1.txt"), "some text\nwith several lines\n");
-		setContentsAndEnsureModified(project.getFile("file2.txt"), "some text\nwith several lines\n");
-		commitProject(project);
-
-		// Checkout and branch a copy
-		CVSTag root = new CVSTag("root_branch1", CVSTag.VERSION);
-		CVSTag branch = new CVSTag("branch1", CVSTag.BRANCH);
-		IProject branchedProject = branchProject(project, root, branch);
-		
-		// modify the branch
-		appendText(branchedProject.getFile("file1.txt"), "first line\n", true);
-		appendText(branchedProject.getFile("file2.txt"), "last line\n", false);
-		commitProject(branchedProject);
-		
-		// modify HEAD
-		appendText(project.getFile("file1.txt"), "last line\n", false);
-		commitProject(project);
-		// have one local change
-		appendText(project.getFile("file2.txt"), "first line\n", true);
-		
-		// create a merge subscriber
-		CVSMergeSubscriber subscriber = new CVSMergeSubscriber(new IResource[] { project }, root, branch);
-		
-		// check the sync states
-		assertSyncEquals("testMergableConflicts", subscriber, project, 
-			new String[] { "file1.txt", "file2.txt"}, 
-			true, new int[] {
-				SyncInfo.CONFLICTING | SyncInfo.CHANGE, 
-				SyncInfo.CONFLICTING | SyncInfo.CHANGE});
-				
-		// Perform a merge
-		mergeResources(subscriber, project, new String[] { 
-			"file1.txt",
-			"file2.txt"});
-
-		// check the sync states for the workspace subscriber
-		assertSyncEquals("testMergableConflicts", getWorkspaceSubscriber(), project, 
-			new String[] { "file1.txt", "file2.txt"}, 
-			true, new int[] {
-				SyncInfo.OUTGOING | SyncInfo.CHANGE,
-				SyncInfo.OUTGOING  | SyncInfo.CHANGE});
-				
-		//TODO: How do we know if the right thing happened to the file contents?	
-	}
-	
-	public void testUnmergableConflicts() throws TeamException, CVSException, CoreException, IOException {
-		// Create a test project
-		IProject project = createProject("testUnmergableConflicts", new String[] { "delete.txt", "file1.txt", "file2.txt", "folder1/", "folder1/a.txt", "folder1/b.txt"});
-		setContentsAndEnsureModified(project.getFile("file1.txt"), "some text\nwith several lines\n");
-		setContentsAndEnsureModified(project.getFile("file2.txt"), "some text\nwith several lines\n");
-		commitProject(project);
-
-		// Checkout and branch a copy
-		CVSTag root = new CVSTag("root_branch1", CVSTag.VERSION);
-		CVSTag branch = new CVSTag("branch1", CVSTag.BRANCH);
-		IProject branchedProject = branchProject(project, root, branch);
-		
-		// modify the branch
-		appendText(branchedProject.getFile("file1.txt"), "first line\n", true);
-		appendText(branchedProject.getFile("file2.txt"), "last line\n", false);
-		addResources(branchedProject, new String[] {"addition.txt"}, false);
-		deleteResources(branchedProject, new String[] {"delete.txt", "folder1/a.txt"}, false);
-		setContentsAndEnsureModified(branchedProject.getFile("folder1/b.txt"));
-		commitProject(branchedProject);
-		
-		// modify local workspace
-		appendText(project.getFile("file1.txt"), "conflict line\n", true);
-		setContentsAndEnsureModified(project.getFile("folder1/a.txt"));
-		deleteResources(project, new String[] {"delete.txt", "folder1/b.txt"}, false);
-		addResources(project, new String[] {"addition.txt"}, false);
-		appendText(project.getFile("file2.txt"), "conflict line\n", false);
-		
-		// create a merge subscriber
-		CVSMergeSubscriber subscriber = new CVSMergeSubscriber(new IResource[] { project }, root, branch);
-		
-		// check the sync states
-		assertSyncEquals("testUnmergableConflicts", subscriber, project, 
-			new String[] { "delete.txt", "file1.txt", "file2.txt", "addition.txt", "folder1/a.txt", "folder1/b.txt"}, 
-			true, new int[] {
-				SyncInfo.IN_SYNC, /* TODO: is this OK */
-				SyncInfo.CONFLICTING | SyncInfo.CHANGE, 
-				SyncInfo.CONFLICTING | SyncInfo.CHANGE,
-				SyncInfo.CONFLICTING | SyncInfo.ADDITION,
-				SyncInfo.CONFLICTING | SyncInfo.CHANGE,
-				SyncInfo.CONFLICTING | SyncInfo.CHANGE});
-		
-		// TODO: Should actually perform the merge and check the results
-		// However, this would require the changes to be redone
-		
-		// commit to modify HEAD
-		commitProject(project);
-				
-		// check the sync states
-		assertSyncEquals("testUnmergableConflicts", subscriber, project, 
-			new String[] { "delete.txt", "file1.txt", "file2.txt", "addition.txt", "folder1/a.txt", "folder1/b.txt"}, 
-			true, new int[] {
-				SyncInfo.IN_SYNC, /* TODO: is this OK */
-				SyncInfo.CONFLICTING | SyncInfo.CHANGE, 
-				SyncInfo.CONFLICTING | SyncInfo.CHANGE,
-				SyncInfo.CONFLICTING | SyncInfo.ADDITION,
-				SyncInfo.CONFLICTING | SyncInfo.CHANGE,
-				SyncInfo.CONFLICTING | SyncInfo.CHANGE});
-				
-		// Perform a merge
-		mergeResources(subscriber, project, new String[] { "delete.txt", "file1.txt", "file2.txt", "addition.txt", "folder1/a.txt", "folder1/b.txt"});
-			
-		// check the sync states for the workspace subscriber
-		assertSyncEquals("testUnmergableConflicts", getWorkspaceSubscriber(), project, 
-		new String[] { "file1.txt", "file2.txt", "addition.txt", "folder1/a.txt", "folder1/b.txt"}, 
-			true, new int[] {
-				SyncInfo.OUTGOING | SyncInfo.CHANGE,
-				SyncInfo.OUTGOING | SyncInfo.CHANGE,
-				SyncInfo.OUTGOING | SyncInfo.CHANGE,
-				SyncInfo.OUTGOING | SyncInfo.DELETION,
-				SyncInfo.OUTGOING | SyncInfo.ADDITION});
-		assertDeleted("testUnmergableConflicts", project, new String[] { "delete.txt" });
-				
-		//TODO: How do we know if the right thing happend to the file contents?
-	}
-	
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/CVSSyncSubscriberTest.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/CVSSyncSubscriberTest.java
deleted file mode 100644
index 4f55489..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/CVSSyncSubscriberTest.java
+++ /dev/null
@@ -1,224 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.core.subscriber;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import junit.framework.AssertionFailedError;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceVisitor;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.subscribers.ITeamResourceChangeListener;
-import org.eclipse.team.core.subscribers.SyncInfo;
-import org.eclipse.team.core.subscribers.TeamSubscriber;
-import org.eclipse.team.core.subscribers.TeamDelta;
-import org.eclipse.team.core.subscribers.TeamProvider;
-import org.eclipse.team.core.sync.RemoteSyncElement;
-import org.eclipse.team.internal.ccvs.core.CVSProviderPlugin;
-import org.eclipse.team.internal.ui.sync.views.SyncResource;
-import org.eclipse.team.internal.ui.sync.views.SyncSet;
-import org.eclipse.team.tests.ccvs.core.EclipseTest;
-
-/**
- * Provides test methods common to CVS sync subscribers
- */
-public abstract class CVSSyncSubscriberTest extends EclipseTest {
-
-	private ITeamResourceChangeListener listener;
-	private List accumulatedTeamDeltas = new ArrayList();
-	
-	public CVSSyncSubscriberTest() {
-		super();
-	}
-	
-	public CVSSyncSubscriberTest(String name) {
-		super(name);
-	}
-
-	protected TeamSubscriber getWorkspaceSubscriber() throws TeamException {
-		TeamSubscriber subscriber = TeamProvider.getSubscriber(CVSProviderPlugin.CVS_WORKSPACE_SUBSCRIBER_ID);
-		if (subscriber == null) fail("The CVS sync subsciber is not registered");
-		return subscriber;
-	}
-	
-	/*
-	 * Refresh the subscriber for the given resource
-	 */
-	protected void refresh(TeamSubscriber subscriber, IResource resource) throws TeamException {
-		subscriber.refresh(new IResource[] { resource}, IResource.DEPTH_INFINITE, DEFAULT_MONITOR);
-	}
-	
-	/*
-	 * Assert that the specified resources in the subscriber have the specified sync kind
-	 * Ignore conflict types if they are not specified in the assert statement
-	 */
-	protected void assertSyncEquals(String message, TeamSubscriber subscriber, IContainer root, String[] resourcePaths, boolean refresh, int[] syncKinds) throws CoreException, TeamException {
-		assertTrue(resourcePaths.length == syncKinds.length);
-		if (refresh) refresh(subscriber, root);
-		IResource[] resources = getResources(root, resourcePaths);
-		for (int i=0;i<resources.length;i++) {
-			assertSyncEquals(message, subscriber, resources[i], syncKinds[i]);
-		}
-		
-	}
-	
-	protected void assertSyncEquals(String message, TeamSubscriber subscriber, IResource resource, int syncKind) throws TeamException {
-		int conflictTypeMask = 0x0F; // ignore manual and auto merge sync types for now.
-		SyncInfo info = subscriber.getSyncInfo(resource, DEFAULT_MONITOR);
-		int kind;
-		int kindOther = syncKind & conflictTypeMask;
-		if (info == null) {
-			kind = SyncInfo.IN_SYNC;
-		} else {
-			kind = info.getKind() & conflictTypeMask;
-		}
-		assertTrue(message + ": improper sync state for " + resource + " expected " + 
-				   RemoteSyncElement.kindToString(kindOther) + " but was " +
-				   RemoteSyncElement.kindToString(kind), kind == kindOther);
-	}
-	
-	/**
-	 * @param changes
-	 * @param resources
-	 */
-	protected void assertSyncChangesMatch(TeamDelta[] changes, IResource[] resources) {
-		// First, ensure that all the resources appear in the delta
-		for (int i = 0; i < resources.length; i++) {
-			IResource resource = resources[i];
-			boolean found = false;
-			for (int j = 0; j < changes.length; j++) {
-				TeamDelta delta = changes[j];
-				if (delta.getResource().equals(resource)) {
-					found = true;
-					break;
-				}
-			}
-			assertTrue("No change reported for " + resource, found);
-		}
-		// TODO: We'll worry about extra deltas later
-//		// Next, ensure there are no extra deltas
-//		List changedResources = new ArrayList(resources.length);
-//		changedResources.addAll(Arrays.asList(resources));
-//		for (int i = 0; i < changes.length; i++) {
-//			TeamDelta change = changes[i];
-//			IResource resource = change.getResource();
-//			assertTrue("Unanticipated change reported for " + resource, changedResources.contains(resource));
-//		}
-	}
-	
-	/* 
-	 * Assert that the named resources have no local resource or sync info
-	 */
-	protected void assertDeleted(String message, IContainer root, String[] resourcePaths) throws CoreException, TeamException {
-		IResource[] resources = getResources(root, resourcePaths);
-		for (int i=0;i<resources.length;i++) {
-			try {
-				if (! resources[i].exists())
-					break;
-			} catch (AssertionFailedError e) {
-				break;
-			}
-			assertTrue(message + ": resource " + resources[i] + " still exists in some form", false);
-		}
-	}
-	
-	public static class ResourceCondition {
-		public boolean matches(IResource resource) throws CoreException, TeamException {
-			return true;
-		}
-	}
-	
-	protected IResource[] collect(IResource[] resources, final ResourceCondition condition, int depth) throws CoreException, TeamException {
-		final Set affected = new HashSet();
-		for (int i = 0; i < resources.length; i++) {
-			IResource resource = resources[i];
-			if (resource.exists() || resource.isPhantom()) {
-				resource.accept(new IResourceVisitor() {
-					public boolean visit(IResource r) throws CoreException {
-						try {
-							if (condition.matches(r)) {
-								affected.add(r);
-							}
-						} catch (TeamException e) {
-							throw new CoreException(e.getStatus());
-						}
-						return true;
-					}
-				}, depth, true /* include phantoms */);
-			} else {
-				if (condition.matches(resource)) {
-					affected.add(resource);
-				}
-			}
-		}
-		return (IResource[]) affected.toArray(new IResource[affected.size()]);
-	}
-	
-	/**
-	 * @param resources
-	 * @param condition
-	 * @return
-	 */
-	protected IResource[] collectAncestors(IResource[] resources, ResourceCondition condition) throws CoreException, TeamException {
-		Set affected = new HashSet();
-		for (int i = 0; i < resources.length; i++) {
-			IResource resource = resources[i];
-			while (resource.getType() != IResource.ROOT) {
-				if (condition.matches(resource)) {
-					affected.add(resource);
-				} else {
-					break;
-				}
-				resource = resource.getParent();
-			}
-		}
-		return (IResource[]) affected.toArray(new IResource[affected.size()]);
-	}
-	
-	protected TeamDelta[] deregisterSubscriberListener(TeamSubscriber subscriber) throws TeamException {
-		subscriber.removeListener(listener);
-		return (TeamDelta[]) accumulatedTeamDeltas.toArray(new TeamDelta[accumulatedTeamDeltas.size()]);
-	}
-
-	protected ITeamResourceChangeListener registerSubscriberListener(TeamSubscriber subscriber) throws TeamException {
-		listener = new ITeamResourceChangeListener() {
-			public void teamResourceChanged(TeamDelta[] deltas) {
-				accumulatedTeamDeltas.addAll(Arrays.asList(deltas));
-			}
-		};
-		accumulatedTeamDeltas.clear();
-		subscriber.addListener(listener);
-		return listener;
-	}
-	
-	/**
-	 * @param resources
-	 */
-	protected SyncResource[] createSyncResources(TeamSubscriber subscriber, IResource[] resources) throws TeamException {
-		// TODO: SyncResources needs a SyncSet which contains the SyncInfo
-		// but SyncSet is not API
-		SyncSet syncSet = new SyncSet();
-		SyncResource[] result = new SyncResource[resources.length];
-		for (int i = 0; i < resources.length; i++) {
-			IResource resource = resources[i];
-			syncSet.add(subscriber.getSyncInfo(resource, DEFAULT_MONITOR));
-			result[i] = new SyncResource(syncSet, resource);
-		}
-		return result;
-	}
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/CVSWorkspaceSubscriberTest.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/CVSWorkspaceSubscriberTest.java
deleted file mode 100644
index 7983c1e..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/subscriber/CVSWorkspaceSubscriberTest.java
+++ /dev/null
@@ -1,1033 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.core.subscriber;
-
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.Set;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IProjectDescription;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.core.subscribers.SyncInfo;
-import org.eclipse.team.core.subscribers.TeamDelta;
-import org.eclipse.team.core.subscribers.TeamSubscriber;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.ICVSFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSResource;
-import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
-import org.eclipse.team.internal.ccvs.ui.subscriber.SubscriberCommitAction;
-import org.eclipse.team.internal.ccvs.ui.subscriber.WorkspaceUpdateAction;
-import org.eclipse.team.internal.ui.sync.views.SyncResource;
-import org.eclipse.team.tests.ccvs.core.CVSTestSetup;
-import org.eclipse.team.ui.sync.SyncResourceSet;
-
-/**
- * This class tests the CVSWorkspaceSubscriber
- */
-public class CVSWorkspaceSubscriberTest extends CVSSyncSubscriberTest {
-	
-	/**
-	 * Constructor for CVSProviderTest
-	 */
-	public CVSWorkspaceSubscriberTest() {
-		super();
-	}
-
-	/**
-	 * Constructor for CVSProviderTest
-	 */
-	public CVSWorkspaceSubscriberTest(String name) {
-		super(name);
-	}
-
-	public static Test suite() {
-		String testName = System.getProperty("eclipse.cvs.testName");
-		if (testName == null) {
-			TestSuite suite = new TestSuite(CVSWorkspaceSubscriberTest.class);
-			return new CVSTestSetup(suite);
-		} else {
-			return new CVSTestSetup(new CVSWorkspaceSubscriberTest(testName));
-		}
-	}
-	
-	private TeamSubscriber getSubscriber() throws TeamException {
-		return getWorkspaceSubscriber();
-	}
-	
-	/* (non-Javadoc)
-	 * 
-	 * Override to check that the proper sync state is achieved.
-	 * 
-	 * @see org.eclipse.team.tests.ccvs.core.EclipseTest#setContentsAndEnsureModified(org.eclipse.core.resources.IFile)
-	 */
-	protected void setContentsAndEnsureModified(IFile file) throws CoreException, TeamException {
-		// The delta will indicate to any interested parties that the sync state of the
-		// file has changed
-		super.setContentsAndEnsureModified(file);
-		assertSyncEquals("Setting contents: ", file, SyncInfo.OUTGOING | SyncInfo.CHANGE);
-	}
-	
-	private void assertSyncEquals(String string, IProject project, String[] strings, boolean b, int[] is) throws CoreException, TeamException {
-		assertSyncEquals(string, getSubscriber(), project, strings, b, is);
-	}
-	
-	private void assertSyncEquals(String message, IResource resource, int depth) throws TeamException {
-		assertSyncEquals(message, getSubscriber(), resource, depth);
-		
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.team.tests.ccvs.core.EclipseTest#addResources(org.eclipse.core.resources.IResource[])
-	 */
-	protected void addResources(IResource[] resources) throws TeamException, CVSException, CoreException {
-		// first, get affected children
-		IResource[] affectedChildren = collect(resources, new ResourceCondition() {
-			public boolean matches(IResource resource) throws CoreException, TeamException {
-				ICVSResource cvsResource = CVSWorkspaceRoot.getCVSResourceFor(resource);
-				return (!cvsResource.isManaged() && !cvsResource.isIgnored());
-			}
-		}, IResource.DEPTH_INFINITE);
-		// also get affected parents
-		IResource[] affectedParents = collectAncestors(resources, new ResourceCondition() {
-			public boolean matches(IResource resource) throws CoreException, TeamException {
-				if (resource.getType() == IResource.PROJECT) return false;
-				ICVSResource cvsResource = CVSWorkspaceRoot.getCVSResourceFor(resource);
-				return (!cvsResource.isManaged() && !cvsResource.isIgnored());
-			}
-		});
-		Set affected = new HashSet();
-		affected.addAll(Arrays.asList(affectedChildren));
-		affected.addAll(Arrays.asList(affectedParents));
-		
-		registerSubscriberListener();
-		super.addResources(resources);
-		TeamDelta[] changes = deregisterSubscriberListener();
-		assertSyncChangesMatch(changes, (IResource[]) affected.toArray(new IResource[affected.size()]));
-		for (int i = 0; i < resources.length; i++) {
-			IResource resource = resources[i];
-			if (resource.getType() == IResource.FILE) {
-				assertSyncEquals("Add", resource, SyncInfo.OUTGOING | SyncInfo.ADDITION);
-			} else {
-				// TODO: a folder should be in sync but isn't handled properly
-				assertSyncEquals("Add", resource, SyncInfo.IN_SYNC);
-			}
-			
-		}
-	}
-
-	/**
-	 * 
-	 */
-	private void registerSubscriberListener() throws TeamException {
-		registerSubscriberListener(getSubscriber());
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.team.tests.ccvs.core.EclipseTest#deleteResources(org.eclipse.core.resources.IResource[])
-	 */
-	protected void deleteResources(IResource[] resources) throws TeamException, CoreException {
-		IResource[] affected = collect(resources, new ResourceCondition(), IResource.DEPTH_INFINITE);
-		registerSubscriberListener();
-		super.deleteResources(resources);
-		TeamDelta[] changes = deregisterSubscriberListener();
-		assertSyncChangesMatch(changes, affected);
-		for (int i = 0; i < resources.length; i++) {
-			IResource resource = resources[i];
-			assertSyncEquals("Delete", resource, SyncInfo.OUTGOING | SyncInfo.DELETION);
-		}
-	}
-	
-	/**
-	 * @return
-	 */
-	private TeamDelta[] deregisterSubscriberListener() throws TeamException {
-		return deregisterSubscriberListener(getSubscriber());
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.team.tests.ccvs.core.EclipseTest#commitResources(org.eclipse.core.resources.IResource[])
-	 */
-	protected void commitResources(IResource[] resources, int depth) throws TeamException, CVSException, CoreException {
-		IResource[] affected = collect(resources, new ResourceCondition() {
-				public boolean matches(IResource resource) throws CoreException, TeamException {
-					ICVSResource cvsResource = CVSWorkspaceRoot.getCVSResourceFor(resource);
-					return (!cvsResource.isFolder() && cvsResource.isManaged() && cvsResource.isModified(DEFAULT_MONITOR));
-				}
-			}, IResource.DEPTH_INFINITE);
-		registerSubscriberListener();
-		super.commitResources(resources, depth);
-		TeamDelta[] changes = deregisterSubscriberListener();
-		assertSyncChangesMatch(changes, affected);
-		for (int i = 0; i < resources.length; i++) {
-			IResource resource = resources[i];
-			if (resource.exists())
-				assertSyncEquals("Commit", resource, SyncInfo.IN_SYNC);
-		}
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.team.tests.ccvs.core.EclipseTest#unmanageResources(org.eclipse.core.resources.IResource[])
-	 */
-	protected void unmanageResources(IResource[] resources) throws CoreException, TeamException {
-		IResource[] affected = collect(resources, new ResourceCondition() {
-				public boolean matches(IResource resource) throws CoreException, TeamException {
-					ICVSResource cvsResource = CVSWorkspaceRoot.getCVSResourceFor(resource);
-					return (cvsResource.isManaged());
-				}
-			}, IResource.DEPTH_INFINITE);
-		registerSubscriberListener();
-		super.unmanageResources(resources);
-		TeamDelta[] changes = deregisterSubscriberListener();
-		assertSyncChangesMatch(changes, affected);
-		for (int i = 0; i < resources.length; i++) {
-			IResource resource = resources[i];
-			if (resource.exists())
-				assertSyncEquals("Unmanage", resource, SyncInfo.IN_SYNC);
-		}
-	}
-	
-	/**
-	 * Update the resources from an existing container with the changes from the CVS repository.
-	 * This update uses the SubscriberUpdateAction to perform the update so that all special
-	 * cases should be handled properly
-	 */
-	public IResource[] updateResources(IContainer container, String[] hierarchy, boolean ignoreLocalChanges) throws CoreException, TeamException {
-		IResource[] resources = getResources(container, hierarchy);
-		SyncResource[] syncResources = createSyncResources(resources);
-		updateResources(syncResources);
-		return resources;
-	}
-	
-	/**
-	 * @param resources
-	 * @return
-	 */
-	private SyncResource[] createSyncResources(IResource[] resources) throws TeamException {
-		return createSyncResources(getSubscriber(), resources);
-	}
-
-	/**
-	 * Commit the resources from an existing container to the CVS repository.
-	 * This commit uses the SubscriberCommitAction to perform the commit so that all special
-	 * cases should be handled properly
-	 */
-	public IResource[] commitResources(IContainer container, String[] hierarchy) throws CoreException, TeamException {
-		IResource[] resources = getResources(container, hierarchy);
-		SyncResource[] syncResources = createSyncResources(resources);
-		commitResources(syncResources);
-		return resources;
-	}
-
-	/**
-	 * @param syncResources
-	 */
-	private void updateResources(SyncResource[] syncResources) throws CVSException {
-		new WorkspaceUpdateAction().run(new SyncResourceSet(syncResources), DEFAULT_MONITOR);	
-	}
-
-	/**
-	 * @param syncResources
-	 */
-	private void commitResources(SyncResource[] syncResources) throws CVSException {
-		new SubscriberCommitAction().run(new SyncResourceSet(syncResources), DEFAULT_MONITOR);	
-	}
-	
-	/*
-	 * Perform a simple test that checks for the different types of incoming changes
-	 */
-	public void testIncomingChanges() throws IOException, CoreException, TeamException {
-		// Create a test project
-		IProject project = createProject("testIncomingChanges", new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder1/b.txt"});
-		
-		// Checkout and modify a copy
-		IProject copy = checkoutCopy(project, "-copy");
-		setContentsAndEnsureModified(copy.getFile("folder1/a.txt"));
-		addResources(copy, new String[] { "folder2/folder3/add.txt" }, false);
-		deleteResources(copy, new String[] {"folder1/b.txt"}, false);
-		commitProject(copy);
-
-		// Get the sync tree for the project
-		assertSyncEquals("testIncomingChanges", project, 
-			new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder1/b.txt", "folder2/", "folder2/folder3/", "folder2/folder3/add.txt"}, 
-			true, new int[] {
-				SyncInfo.IN_SYNC,
-				SyncInfo.IN_SYNC,
-				SyncInfo.INCOMING | SyncInfo.CHANGE,
-				SyncInfo.INCOMING | SyncInfo.DELETION,
-				SyncInfo.INCOMING | SyncInfo.ADDITION,
-				SyncInfo.INCOMING | SyncInfo.ADDITION,
-				SyncInfo.INCOMING | SyncInfo.ADDITION});
-				
-		// Catch up to the incoming changes
-		updateResources(
-			project, 
-			new String[] {
-				"folder1/a.txt", 
-				"folder1/b.txt", 
-				"folder2/", 
-				"folder2/folder3/", 
-				"folder2/folder3/add.txt"}, 
-			false /* ignore local changes */);
-		
-		// Verify that we are in sync (except for "folder1/b.txt", which was deleted)
-		assertSyncEquals("testIncomingChanges", project, 
-			new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder2/", "folder2/folder3/", "folder2/folder3/add.txt"}, 
-			true, new int[] {
-				SyncInfo.IN_SYNC,
-				SyncInfo.IN_SYNC,
-				SyncInfo.IN_SYNC,
-				SyncInfo.IN_SYNC,
-				SyncInfo.IN_SYNC,
-				SyncInfo.IN_SYNC});
-		
-		// Ensure "folder1/b.txt" was deleted
-		assertDeleted("testIncomingChanges", project, new String[] {"folder1/b.txt"});
-				
-		// Verify that the copy equals the original
-		assertEquals(project, copy);
-	}
-
-	/*
-	 * Perform a simple test that checks for the different types of outgoing changes
-	 */
-	public void testOutgoingChanges() throws TeamException, CoreException {
-		// Create a test project (which commits it as well)
-		IProject project = createProject("testOutgoingChanges", new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder1/b.txt"});
-		
-		// Make some modifications
-		setContentsAndEnsureModified(project.getFile("folder1/a.txt"));
-		addResources(project, new String[] { "folder2/folder3/add.txt" }, false);
-		deleteResources(project, new String[] {"folder1/b.txt"}, false);
-
-		// Get the sync tree for the project
-		assertSyncEquals("testOutgoingChanges", project, 
-			new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder1/b.txt", "folder2/", "folder2/folder3/", "folder2/folder3/add.txt"}, 
-			true, new int[] {
-				SyncInfo.IN_SYNC,
-				SyncInfo.IN_SYNC,
-				SyncInfo.OUTGOING | SyncInfo.CHANGE,
-				SyncInfo.OUTGOING | SyncInfo.DELETION,
-				SyncInfo.IN_SYNC, /* adding a folder creates it remotely */
-				SyncInfo.IN_SYNC, /* adding a folder creates it remotely */
-				SyncInfo.OUTGOING | SyncInfo.ADDITION});
-				
-		// Commit the changes
-		commitResources(project, new String[] {"folder1/a.txt", "folder1/b.txt", "folder2/folder3/add.txt"});
-		
-		// Ensure we're in sync
-		assertSyncEquals("testOutgoingChanges", project, 
-			new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder2/", "folder2/folder3/", "folder2/folder3/add.txt"}, 
-			true, new int[] {
-				SyncInfo.IN_SYNC,
-				SyncInfo.IN_SYNC,
-				SyncInfo.IN_SYNC,
-				SyncInfo.IN_SYNC,
-				SyncInfo.IN_SYNC,
-				SyncInfo.IN_SYNC});
-				
-		// Ensure deleted resource "folder1/b.txt" no longer exists
-		assertDeleted("testOutgoingChanges", project, new String[] {"folder1/b.txt"});
-	}
-	
-	/*
-	 * Perform a simple test that checks for the different types of outgoing changes
-	 */
-	public void testOverrideOutgoingChanges() throws CoreException, TeamException, IOException {
-		// Create a test project (which commits it as well)
-		IProject project = createProject("testOverrideOutgoingChanges", new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder1/b.txt"});
-		// Checkout a copy for later verification
-		IProject original = checkoutCopy(project, "-copy");
-		
-		// Make some modifications
-		setContentsAndEnsureModified(project.getFile("folder1/a.txt"));
-		addResources(project, new String[] { "folder2/folder3/add.txt" }, false);
-		deleteResources(project, new String[] {"folder1/b.txt"}, false);
-
-		// Get the sync tree for the project
-		assertSyncEquals("testOverrideOutgoingChanges", project, 
-			new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder1/b.txt", "folder2/", "folder2/folder3/", "folder2/folder3/add.txt"}, 
-			true, new int[] {
-				SyncInfo.IN_SYNC,
-				SyncInfo.IN_SYNC,
-				SyncInfo.OUTGOING | SyncInfo.CHANGE,
-				SyncInfo.OUTGOING | SyncInfo.DELETION,
-				SyncInfo.IN_SYNC, /* adding a folder creates it remotely */
-				SyncInfo.IN_SYNC, /* adding a folder creates it remotely */
-				SyncInfo.OUTGOING | SyncInfo.ADDITION});
-				
-		// Commit the changes
-		updateResources(
-			project, 
-			new String[] {
-				"folder1/a.txt", 
-				"folder1/b.txt", 
-				"folder2/folder3/add.txt"},
-			true /* ignore local changes */);
-		
-		// Ensure added resources no longer exist
-		assertDeleted("testOverrideOutgoingChanges", project, new String[] {"folder2/", "folder2/folder3/","folder2/folder3/add.txt"});
-		
-		// Ensure other resources are in sync
-		assertSyncEquals("testOverrideOutgoingChanges", project, 
-			new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder1/b.txt", "folder2/"}, 
-			true, new int[] {
-				SyncInfo.IN_SYNC,
-				SyncInfo.IN_SYNC,
-				SyncInfo.IN_SYNC,
-				SyncInfo.IN_SYNC,
-				SyncInfo.IN_SYNC});
-		
-		// Verify that the original has reverted to its original contents
-		assertEquals(project, original);
-	}
-	
-	/*
-	 * Perform a test that checks for outgoing changes that are CVS questionables (no add or remove)
-	 */
-	public void testOutgoingQuestionables() throws TeamException, CoreException {
-		// Create a test project (which commits it as well)
-		IProject project = createProject("testIncomingChanges", new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder1/b.txt"});
-		
-		// Create a new file without adding it to version control
-		buildResources(project, new String[] {"folder2/folder3/add.txt"}, false);
-		
-		// Delete a file without an explicit cvs remove
-		// NOTE: This will result in an implicit cvs remove
-		IFile file = project.getFile("folder1/b.txt");
-		file.delete(true, DEFAULT_MONITOR);
-
-		// Get the sync tree for the project
-		assertSyncEquals("testOutgoingQuestionables", project, 
-			new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder1/b.txt", "folder2/", "folder2/folder3/", "folder2/folder3/add.txt"}, 
-			true, new int[] {
-				SyncInfo.IN_SYNC,
-				SyncInfo.IN_SYNC,
-				SyncInfo.IN_SYNC,
-				SyncInfo.OUTGOING | SyncInfo.DELETION,
-				SyncInfo.OUTGOING | SyncInfo.ADDITION,
-				SyncInfo.OUTGOING | SyncInfo.ADDITION,
-				SyncInfo.OUTGOING | SyncInfo.ADDITION});
-				
-		commitResources(project, new String[] {"folder1/b.txt", "folder2/", "folder2/folder3/", "folder2/folder3/add.txt"});
-		
-		// Ensure we are in sync
-		assertSyncEquals("testOutgoingQuestionables", project, 
-			new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder2/", "folder2/folder3/", "folder2/folder3/add.txt"}, 
-			true, new int[] {
-				SyncInfo.IN_SYNC,
-				SyncInfo.IN_SYNC,
-				SyncInfo.IN_SYNC,
-				SyncInfo.IN_SYNC,
-				SyncInfo.IN_SYNC,
-				SyncInfo.IN_SYNC});
-				
-		// Ensure "folder1/b.txt" was deleted
-		assertDeleted("testOutgoingQuestionables", project, new String[] {"folder1/b.txt"});
-	}
-	
-	/*
-	 * Test simple file conflicts
-	 */
-	public void testFileConflict() throws TeamException, CoreException, IOException {
-		// Create a test project (which commits it as well)
-		IProject project = createProject("testFileConflict", new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder1/b.txt"});
-		
-		// Checkout a copy and make some modifications
-		IProject copy = checkoutCopy(project, "-copy");
-		appendText(copy.getFile("file1.txt"), "prefix\n", true);
-		setContentsAndEnsureModified(copy.getFile("folder1/a.txt"), "Use a custom string to avoid intermitant errors!");
-		commitProject(copy);
-
-		// Make the same modifications to the original (We need to test both M and C!!!)
-		appendText(project.getFile("file1.txt"), "\npostfix", false); // This will test merges (M)
-		setContentsAndEnsureModified(project.getFile("folder1/a.txt"));
-
-		// Get the sync tree for the project
-		assertSyncEquals("testFileConflict", project, 
-			new String[] { "file1.txt", "folder1/", "folder1/a.txt"}, 
-			true, new int[] {
-				SyncInfo.CONFLICTING | SyncInfo.CHANGE,
-				SyncInfo.IN_SYNC,
-				SyncInfo.CONFLICTING | SyncInfo.CHANGE });
-		
-		// Catch up to the file1.txt conflict using UPDATE with ignoreLocalChanges
-		updateResources(
-			project,
-			new String[] {"file1.txt"},
-			true /* ignore local changes */);
-								 
-		assertSyncEquals("testFileConflict", project, 
-			new String[] { "file1.txt", "folder1/", "folder1/a.txt"}, 
-			true, new int[] {
-				SyncInfo.IN_SYNC,
-				SyncInfo.IN_SYNC,
-				SyncInfo.CONFLICTING | SyncInfo.CHANGE });
-				
-		// Release the folder1/a.txt conflict by merging and then committing
-		commitResources(project, new String[] {"folder1/a.txt"});
-		
-		assertSyncEquals("testFileConflict", project, 
-			new String[] { "file1.txt", "folder1/", "folder1/a.txt"}, 
-			true, new int[] {
-				SyncInfo.IN_SYNC,
-				SyncInfo.IN_SYNC,
-				SyncInfo.IN_SYNC });
-	}
-
-	/*
-	 * Test conflicts involving additions
-	 */
-	public void testAdditionConflicts() throws TeamException, CoreException {
-		
-		// CASE 1: The user adds (using CVS add) a remotely added file
-		//     (a) catchup is simply get?
-		//     (b) release must do a merge
-		// CASE 2: The user adds (but not using cvs add) a remotely added file
-		//     (a) catchup is simply get?
-		//     (b) release must do a merge
-		// CASE 3: The user adds a remotely added then deleted file
-		//     catchup is not applicable
-		//     release is normal
-		
-		// Create a test project (which commits it as well) and add an uncommited resource
-		IProject project = createProject("testAdditionConflicts", new String[] { "file.txt"});
-		addResources(project, new String[] { "add1a.txt", "add1b.txt" }, false);
-		addResources(project, new String[] { "add3.txt" }, false);
-		buildResources(project, new String[] {"add2a.txt", "add2b.txt"}, false);
-		
-		// Checkout a copy, add the same resource and commit
-		IProject copy = checkoutCopy(project, "-copy");
-		addResources(copy, new String[] { "add1a.txt", "add1b.txt", "add2a.txt", "add2b.txt", "add3.txt"}, true);
-		deleteResources(copy, new String[] { "add3.txt"}, true);
-
-		// Get the sync tree for the project
-		assertSyncEquals("testAdditionConflicts", project, 
-			new String[] { "file.txt", "add1a.txt", "add1b.txt", "add2a.txt", "add2b.txt", "add3.txt"}, 
-			true, new int[] {
-				SyncInfo.IN_SYNC,
-				SyncInfo.CONFLICTING | SyncInfo.ADDITION,
-				SyncInfo.CONFLICTING | SyncInfo.ADDITION,
-				SyncInfo.CONFLICTING | SyncInfo.ADDITION,
-				SyncInfo.CONFLICTING | SyncInfo.ADDITION,
-				SyncInfo.OUTGOING | SyncInfo.ADDITION });
-		
-		// Commit conflicting add1b.txt and add2b.txt and outgoing add3.txt
-		commitResources(project, new String[]{"add1b.txt", "add2b.txt", "add3.txt"});
-
-		assertSyncEquals("testAdditionConflicts", project, 
-			new String[] { "file.txt", "add1b.txt", "add2b.txt", "add3.txt"}, 
-			true, new int[] {
-				SyncInfo.IN_SYNC,
-				SyncInfo.IN_SYNC,
-				SyncInfo.IN_SYNC,
-				SyncInfo.IN_SYNC });
-				
-		// Catch-up to conflicting cases using UPDATE
-		updateResources(
-			project,
-			new String[] {"add1a.txt", "add2a.txt"},
-			true /* ignore local changes */);
-
-		
-		assertSyncEquals("testAdditionConflicts", project, 
-			new String[] { "add1a.txt", "add2a.txt"}, 
-			true, new int[] {
-				SyncInfo.IN_SYNC,
-				SyncInfo.IN_SYNC });
-	}
-	
-	/*
-	 * Test conflicts involving deletions
-	 */
-	public void testDeletionConflicts() throws TeamException, CoreException {
-		
-		// CASE 1: The user deletes a remotely modified file
-		//    (a) catchup must do an update
-		//    (b) release must do a merge
-		// CASE 2: The user deletes (and removes) a remotely modified file	
-		//    (a) catchup must do an unmanage and update
-		//    (b) release must do a merge
-		// CASE 3: The user modified a remotely deleted file
-		//    (a) catchup must do an unmanage and local delete
-		//    (b) release must do a merge
-		// CASE 4: The user deletes a remotely deleted file
-		//    (a) catchup can update (or unmanage?)
-		//    (b) release must unmanage
-		// CASE 5: The user deletes (and removes) a remotely deleted file
-		//    (a) catchup can update (or unmanage?)
-		//    (b) release must unmanage
-		
-		// Perform the test case for case A first
-		
-		// Create a test project (which commits it as well) and delete the resource without committing
-		IProject project = createProject("testDeletionConflictsA", new String[] { "delete1.txt", "delete2.txt", "delete3.txt", "delete4.txt", "delete5.txt"});
-		IFile file = project.getFile("delete1.txt"); // WARNING: This does a "cvs remove"!!!
-		file.delete(false, DEFAULT_MONITOR);
-		deleteResources(project, new String[] {"delete2.txt"}, false);
-		setContentsAndEnsureModified(project.getFile("delete3.txt"));
-		file = project.getFile("delete4.txt");
-		file.delete(false, DEFAULT_MONITOR);
-		deleteResources(project, new String[] {"delete5.txt"}, false);
-		
-		// Checkout a copy and commit the deletion
-		IProject copy = checkoutCopy(project, "-copy");
-		setContentsAndEnsureModified(copy.getFile("delete1.txt"));
-		setContentsAndEnsureModified(copy.getFile("delete2.txt"));
-		deleteResources(copy, new String[] {"delete3.txt", "delete4.txt", "delete5.txt"}, false);
-		commitProject(copy);
-		
-		// Get the sync tree for the project
-		assertSyncEquals("testDeletionConflictsA", project, 
-			new String[] { "delete1.txt", "delete2.txt", "delete3.txt", "delete4.txt", "delete5.txt"}, 
-			true, new int[] {
-				SyncInfo.CONFLICTING | SyncInfo.CHANGE,
-				SyncInfo.CONFLICTING | SyncInfo.CHANGE,
-				SyncInfo.CONFLICTING | SyncInfo.CHANGE,
-				SyncInfo.IN_SYNC,
-				SyncInfo.IN_SYNC });
-				
-		// Catch up to remote changes.
-		updateResources(
-			project, 
-			new String[] {
-				"delete1.txt", 
-				"delete2.txt", 
-				"delete3.txt", 
-				"delete4.txt", 
-				"delete5.txt"}, 
-			true /* ignore local changes */);
-		
-		assertSyncEquals("testDeletionConflictsA", project, 
-			new String[] { "delete1.txt", "delete2.txt"}, 
-			true, new int[] {
-				SyncInfo.IN_SYNC,
-				SyncInfo.IN_SYNC });
-		
-		assertDeleted("testDeletionConflictsA", project, new String[] {"delete3.txt", "delete4.txt", "delete5.txt"});
-		
-		// Now redo the test case for case B
-		
-		// Create a test project (which commits it as well) and delete the resource without committing
-		project = createProject("testDeletionConflictsB", new String[] { "delete1.txt", "delete2.txt", "delete3.txt", "delete4.txt", "delete5.txt"});
-		file = project.getFile("delete1.txt");
-		file.delete(false, DEFAULT_MONITOR);
-		deleteResources(project, new String[] {"delete2.txt"}, false);
-		setContentsAndEnsureModified(project.getFile("delete3.txt"));
-		file = project.getFile("delete4.txt");
-		file.delete(false, DEFAULT_MONITOR);
-		deleteResources(project, new String[] {"delete5.txt"}, false);
-		
-		// Checkout a copy and commit the deletion
-		copy = checkoutCopy(project, "-copy");
-		setContentsAndEnsureModified(copy.getFile("delete1.txt"));
-		setContentsAndEnsureModified(copy.getFile("delete2.txt"));
-		deleteResources(copy, new String[] {"delete3.txt", "delete4.txt", "delete5.txt"}, false);
-		commitProject(copy);
-
-		// Get the sync tree for the project
-		assertSyncEquals("testDeletionConflictsB", project, 
-			new String[] { "delete1.txt", "delete2.txt", "delete3.txt", "delete4.txt", "delete5.txt"}, 
-			true, new int[] {
-				SyncInfo.CONFLICTING | SyncInfo.CHANGE,
-				SyncInfo.CONFLICTING | SyncInfo.CHANGE,
-				SyncInfo.CONFLICTING | SyncInfo.CHANGE,
-				SyncInfo.IN_SYNC,
-				SyncInfo.IN_SYNC });
-
-		// Release the resources
-		commitResources(project, new String[] { "delete1.txt", "delete2.txt", "delete3.txt", "delete4.txt", "delete5.txt"});
-		
-		assertSyncEquals("testDeletionConflictsB", project, 
-			new String[] { "delete3.txt"}, 
-			true, new int[] {
-				SyncInfo.IN_SYNC });
-		
-		assertDeleted("testDeletionConflictsB", project, new String[] {"delete1.txt", "delete2.txt", "delete4.txt", "delete5.txt"});
-	}
-	
-	/*
-	 * Test the creation and sync of an empty local project that has remote contents
-	 */
-	public void testSyncOnEmptyProject() throws TeamException {
-	}
-	
-	/*
-	 * Test syncing on a folder that has been deleted from the server
-	 */
-	public void testSyncOnDeletedFolder() throws TeamException {
-	}
-	
-	/*
-	 * Test syncing on a folder that is empty on the server and has been pruned, then added locally
-	 */
-	public void testSyncOnPrunedFolder() throws TeamException {
-	}
-	
-	/*
-	 * Test sync involving pruned directories
-	 */
-	public void testSyncWithPruning() throws TeamException {
-	}
-	
-	/*
-	 * Test a conflict with an incomming foler addition and an unmanaqged lcoal folder
-	 */
-	public void testFolderConflict()  throws TeamException, CoreException {
-		
-		// Create a test project (which commits it as well) and delete the resource without committing
-		IProject project = createProject("testFolderConflict", new String[] { "file.txt"});
-		
-		// Checkout a copy and add some folders
-		IProject copy = checkoutCopy(project, "-copy");
-		addResources(copy, new String[] {"folder1/file.txt", "folder2/file.txt"}, true);
-		
-		// Add a folder to the original project (but not using cvs)
-		IResource[] resources = buildResources(project, new String[] {"folder1/"});
-		((IFolder)resources[0]).create(false, true, DEFAULT_MONITOR);
-		
-		assertSyncEquals("testFolderConflict", project, 
-			new String[] { "file.txt", "folder1/", "folder1/file.txt", "folder2/", "folder2/file.txt"}, 
-			true, new int[] {
-				SyncInfo.IN_SYNC,
-				SyncInfo.CONFLICTING | SyncInfo.ADDITION,
-				SyncInfo.INCOMING | SyncInfo.ADDITION,
-				SyncInfo.INCOMING | SyncInfo.ADDITION,
-				SyncInfo.INCOMING | SyncInfo.ADDITION});
-				
-		updateResources(
-			project, 
-			new String[] {"folder1/"}, 
-			false /* ignore local changes */);
-	
-		assertSyncEquals("testFolderConflict", project, 
-			new String[] { "file.txt", "folder1/", "folder1/file.txt", "folder2/", "folder2/file.txt"}, 
-			true, new int[] {
-				SyncInfo.IN_SYNC,
-				SyncInfo.IN_SYNC,
-				SyncInfo.INCOMING | SyncInfo.ADDITION,
-				SyncInfo.INCOMING | SyncInfo.ADDITION,
-				SyncInfo.INCOMING | SyncInfo.ADDITION});
-	}
-	 
-	/*
-	 * Test that a deleted file can still be deleted through the team provider
-	 */
-	public void testOutgoingDeletion() throws TeamException, CoreException {
-		
-		// Create a test project (which commits it as well)
-		IProject project = createProject("testOutgoingDeletion", new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder1/b.txt"});
-		
-		// Delete a file
-		IFile file = project.getFile("folder1/b.txt");
-		file.delete(true, DEFAULT_MONITOR); // WARNING: As of 2002/03/05, this is equivalent to a cvs remove
-
-		// Get the sync tree for the project
-		assertSyncEquals("testOutgoingDeletion", project, 
-			new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder1/b.txt"}, 
-			true, new int[] {
-				SyncInfo.IN_SYNC,
-				SyncInfo.IN_SYNC,
-				SyncInfo.IN_SYNC,
-				SyncInfo.OUTGOING | SyncInfo.DELETION});
-				
-		// Commit the deletion
-		commitResources(project , new String[] {"folder1/b.txt"});
-		
-		// Get the sync tree again for the project and ensure others aren't effected
-		assertSyncEquals("testOutgoingDeletion", project, 
-			new String[] { "file1.txt", "folder1/", "folder1/a.txt"}, 
-			true, new int[] {
-				SyncInfo.IN_SYNC,
-				SyncInfo.IN_SYNC,
-				SyncInfo.IN_SYNC});
-				
-		// Assert that deletion no longer appears in remote tree
-		assertDeleted("testOutgoingDeletion", project, new String[] {"folder1/b.txt"});
-	}
-	
-	/*
-	 * Test catching up to an incoming addition
-	 */
-	public void testIncomingAddition() throws TeamException, CoreException {
-		// Create a test project
-		IProject project = createProject("testIncomingAddition", new String[] { "file1.txt", "folder1/", "folder1/a.txt"});
-		
-		// Checkout and modify a copy
-		IProject copy = checkoutCopy(project, "-copy");
-		addResources(copy, new String[] { "folder1/add.txt" }, true);
-
-		// Get the sync tree for the project
-		assertSyncEquals("testIncomingAddition", project, 
-			new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder1/add.txt"}, 
-			true, new int[] {
-				SyncInfo.IN_SYNC,
-				SyncInfo.IN_SYNC,
-				SyncInfo.IN_SYNC,
-				SyncInfo.INCOMING | SyncInfo.ADDITION});
-		
-		// Catch up to the addition by updating
-		updateResources(
-			project, 
-			new String[] {"folder1/add.txt"}, 
-			false /* ignore local changes */);
-		
-		// Get the sync tree again for the project and ensure the added resource is in sync
-		assertSyncEquals("testIncomingAddition", project, 
-			new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder1/add.txt"}, 
-			true, new int[] {
-				SyncInfo.IN_SYNC,
-				SyncInfo.IN_SYNC,
-				SyncInfo.IN_SYNC,
-				SyncInfo.IN_SYNC});
-	}
-	
-	/* 
-	 * Test changes using a granularity of contents
-	 */
-//	 public void testGranularityContents() throws TeamException, CoreException, IOException {
-//		// Create a test project (which commits it as well)
-//		IProject project = createProject("testGranularityContents", new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder1/b.txt"});
-//		
-//		// Checkout a copy and make some modifications
-//		IProject copy = checkoutCopy(project, "-copy");
-//		appendText(copy.getFile("file1.txt"), "same text", false);
-//		setContentsAndEnsureModified(copy.getFile("folder1/a.txt"));
-//		commitProject(copy);
-//
-//		// Make the same modifications to the original
-//		appendText(project.getFile("file1.txt"), "same text", false);
-//		setContentsAndEnsureModified(project.getFile("folder1/a.txt"), "unique text");
-//		
-//		// Get the sync tree for the project
-//		String oldId = getSubscriber().getCurrentComparisonCriteria().getId();
-//		// TODO: There should be a better way to handle the selection of comparison criteria
-//		getSubscriber().setCurrentComparisonCriteria("org.eclipse.team.comparisoncriteria.content");
-//		assertSyncEquals("testGranularityContents", project, 
-//			new String[] { "file1.txt", "folder1/", "folder1/a.txt"}, 
-//			true, new int[] {
-//				SyncInfo.IN_SYNC,
-//				SyncInfo.IN_SYNC,
-//				SyncInfo.CONFLICTING | SyncInfo.CHANGE });
-//		getSubscriber().setCurrentComparisonCriteria(oldId);
-//
-//	 }
-	 
-//	 public void testSimpleMerge() throws TeamException, CoreException, IOException {
-//		// Create a test project (which commits it as well)
-//		IProject project = createProject("testSimpleMerge", new String[] { "file1.txt", "file2.txt", "file3.txt", "folder1/", "folder1/a.txt", "folder1/b.txt"});
-//	
-//		// Checkout and modify a copy
-//		IProject copy = checkoutCopy(project, "-copy");
-//		copy.refreshLocal(IResource.DEPTH_INFINITE, DEFAULT_MONITOR);
-//		
-//		tagProject(project, new CVSTag("v1", CVSTag.VERSION));
-//		tagProject(project, new CVSTag("branch1", CVSTag.BRANCH));
-//		
-//		getProvider(copy).update(new IResource[] {copy}, Command.NO_LOCAL_OPTIONS,
-//			new CVSTag("branch1", CVSTag.BRANCH), true /*createBackups*/, DEFAULT_MONITOR);
-//		
-//		// make changes on the branch		
-//		addResources(copy, new String[] {"addition.txt", "folderAddition/", "folderAddition/new.txt"}, true);
-//		deleteResources(copy, new String[] {"folder1/b.txt"}, true);
-//		changeResources(copy, new String[] {"file1.txt", "file2.txt"}, true);
-//		
-//		// make change to workspace working on HEAD
-//		changeResources(project, new String[] {"file2.txt"}, false);
-//		changeResources(project, new String[] {"file3.txt"}, true);
-//		
-//		IRemoteResource base = CVSWorkspaceRoot.getRemoteTree(project, new CVSTag("v1", CVSTag.VERSION), DEFAULT_MONITOR);
-//		IRemoteResource remote = CVSWorkspaceRoot.getRemoteTree(project, new CVSTag("branch1", CVSTag.BRANCH), DEFAULT_MONITOR);
-//		SyncInfo tree = new CVSRemoteSyncElement(true /*three way*/, project, base, remote);
-//		
-//		// watch for empty directories and the prune option!!!
-//		assertSyncEquals("testSimpleMerge sync check", tree,
-//						 new String[] { "addition.txt", "folderAddition/", "folderAddition/new.txt", 
-//										 "folder1/b.txt", "file1.txt", "file2.txt", "file3.txt"},
-//						 new int[] { SyncInfo.INCOMING | SyncInfo.ADDITION,
-//									  SyncInfo.INCOMING | SyncInfo.ADDITION,
-//									  SyncInfo.INCOMING | SyncInfo.ADDITION,
-//									  SyncInfo.INCOMING | SyncInfo.DELETION,
-//									  SyncInfo.INCOMING | SyncInfo.CHANGE,
-//									  SyncInfo.CONFLICTING | SyncInfo.CHANGE,
-//									  SyncInfo.OUTGOING | SyncInfo.CHANGE });				 			  					 			  
-//	 }
-//	 
-//	 public void testSyncOnBranch() throws TeamException, CoreException, IOException {
-//	 	
-//		// Create a test project and a branch
-//		IProject project = createProject("testSyncOnBranch", new String[] { "file1.txt", "file2.txt", "file3.txt", "folder1/", "folder1/a.txt", "folder1/b.txt"});
-//		CVSTag branch = new CVSTag("branch1", CVSTag.BRANCH);
-//		tagProject(project, branch);
-//		getProvider(project).update(new IResource[] {project}, Command.NO_LOCAL_OPTIONS, branch, true /*createBackups*/, DEFAULT_MONITOR);
-//
-//		// Checkout and modify a copy
-//		IProject copy = checkoutCopy(project, branch);
-//		addResources(copy, new String[] {"addition.txt", "folderAddition/", "folderAddition/new.txt"}, true);
-//		deleteResources(copy, new String[] {"folder1/b.txt"}, true);
-//		changeResources(copy, new String[] {"file1.txt", "file2.txt"}, true);
-//		
-//		// Sync on the original and assert the result equals the copy
-//		SyncInfo tree = CVSWorkspaceRoot.getRemoteSyncTree(project, null, DEFAULT_MONITOR);
-//		assertEquals(Path.EMPTY, (ICVSResource)tree.getRemote(), CVSWorkspaceRoot.getCVSResourceFor(copy), false, false);
-//	 }
-	 
-	public void testRenameProject() throws TeamException, CoreException, IOException {
-		String[] resourceNames = new String[] { "changed.txt", "folder1/", "folder1/a.txt" };
-		int[] inSync = new int[] {SyncInfo.IN_SYNC, SyncInfo.IN_SYNC, SyncInfo.IN_SYNC};
-		IProject project = createProject("testRenameProject", new String[] { "changed.txt", "folder1/", "folder1/a.txt" });
-		
-		assertSyncEquals("sync should be in sync", project, resourceNames, true, inSync);
-		IProjectDescription desc = project.getDescription();
-		String newName = project.getName() + "_renamed";
-		desc.setName(newName);
-		project.move(desc, false, null);
-		project = ResourcesPlugin.getWorkspace().getRoot().getProject(newName);
-		assertTrue(project.exists());
-		assertSyncEquals("sync should be in sync", project, resourceNames, true, inSync);
-	}
-	
-	public void testFolderDeletion() throws TeamException, CoreException {
-		
-		IProject project = createProject("testFolderDeletion", new String[] { "changed.txt", "deleted.txt", "folder1/", "folder1/a.txt", "folder1/folder2/file.txt"});
-		
-		// Delete a folder and ensure that the file is managed but doesn't exist
-		// (Special behavior is provider by the CVS move/delete hook but this is not part of CVS core)
-		project.getFolder("folder1").delete(false, false, null);
-		ICVSFolder folder = CVSWorkspaceRoot.getCVSFolderFor(project.getFolder("folder1"));
-		assertTrue("Deleted folder not in proper state", ! folder.exists() && folder.isManaged() && folder.isCVSFolder());
-		
-		// The files should show up as outgoing deletions
-		assertSyncEquals("testFolderDeletion sync check", project,
-						 new String[] { "folder1/", "folder1/a.txt", "folder1/folder2/", "folder1/folder2/file.txt"},
-						 true, new int[] { SyncInfo.IN_SYNC,
-									  SyncInfo.OUTGOING | SyncInfo.DELETION,
-									  SyncInfo.IN_SYNC,
-									  SyncInfo.OUTGOING | SyncInfo.DELETION});
-		
-		// commit folder1/a.txt
-		commitResources(project, new String[] { "folder1/a.txt" });
-		
-		// Resync and verify that above file is gone and others remain the same
-		assertSyncEquals("testFolderDeletion sync check", project,
-						 new String[] { "folder1/", "folder1/folder2/", "folder1/folder2/file.txt"},
-						 true, new int[] { SyncInfo.IN_SYNC,
-									  SyncInfo.IN_SYNC,
-									  SyncInfo.OUTGOING | SyncInfo.DELETION});
-		assertDeleted("testFolderDeletion", project, new String[] {"folder1/a.txt"});
-		
-		// Commit folder1/folder2/file.txt
-		commitResources(project, new String[] { "folder1/folder2/file.txt" });
-		
-		// Resync and verify that all are deleted
-		assertDeleted("testFolderDeletion", project, new String[] {"folder1/", "folder1/folder2/", "folder1/folder2/file.txt"});
-	}
-	/**
-	  * There is special handling required when building a sync tree for a tag when there are undiscovered folders
-	  * that only contain other folders.
-	  */
-	 public void testTagRetrievalForFolderWithNoFile() throws TeamException, CoreException {
-		IProject project = createProject("testTagRetrievalForFolderWithNoFile", new String[] { "changed.txt", "deleted.txt", "folder1/", "folder1/a.txt"});
-		// Checkout, branch and modify a copy
-		IProject copy = checkoutCopy(project, "-copy");
-		CVSTag version = new CVSTag("v1", CVSTag.BRANCH);
-		CVSTag branch = new CVSTag("branch1", CVSTag.BRANCH);
-		getProvider(copy).makeBranch(new IResource[] {copy}, version, branch, true, DEFAULT_MONITOR);
-		addResources(copy, new String[] {"folder2/folder3/a.txt"}, true);
-		
-		// Fetch the tree corresponding to the branch using the original as the base.
-		// XXX This will fail for CVSNT with directory pruning on
-		refresh(getSubscriber(), project);
-	 }
-	 
-	 public void testIgnoredResource() throws CoreException, TeamException {
-		// Create a test project (which commits it as well)
-		IProject project = createProject("testIgnoredResource", new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder1/b.txt"});
-		
-		// Create a new file without adding it to version control
-		buildResources(project, new String[] {"ignored.txt"}, false);
-	 	
-		// Get the sync tree for the project
-		assertSyncEquals("testIgnoredResource", project, 
-			new String[] { "ignored.txt"}, 
-			true, new int[] {SyncInfo.OUTGOING | SyncInfo.ADDITION});
-			
-		IFile ignores = project.getFile(".cvsignore");
-		ignores.create(new ByteArrayInputStream("ignored.txt".getBytes()), false, DEFAULT_MONITOR);
-		addResources(new IResource[] {ignores});
-		
-		assertSyncEquals("testIgnoredResource", project, 
-			new String[] { "ignored.txt", ".cvsignore"}, 
-			true, new int[] {
-				SyncInfo.IN_SYNC, 
-				SyncInfo.OUTGOING | SyncInfo.ADDITION});
-	 }
-
-	public void testRenameUnshared() throws CoreException, TeamException {
-	   // Create a test project (which commits it as well)
-	   IProject project = createProject("testRenameUnshared", new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder1/b.txt"});
-		
-	   // Create a new file without adding it to version control
-	   buildResources(project, new String[] {"oldName.txt"}, false);
-	 	
-	   // Get the sync tree for the project
-	   assertSyncEquals("testRenameUnshared", project, 
-		   new String[] { "oldName.txt" }, 
-		   true, new int[] {SyncInfo.OUTGOING | SyncInfo.ADDITION});
-			
-	   IFile rename = project.getFile("oldName.txt");
-	   rename.move(new Path("newName.txt"), false, false, DEFAULT_MONITOR);
-	
-	   assertDeleted("testRenameUnshared", project, new String[] {"oldName.txt"});
-
-	   assertSyncEquals("testRenameUnshared", project, 
-		   new String[] { "newName.txt"}, 
-		   true, new int[] {
-			   SyncInfo.OUTGOING | SyncInfo.ADDITION});
-	}
-	
-	public void testOutgoingEmptyFolder() throws CoreException, TeamException {
-		// Create a test project (which commits it as well)
-		IProject project = createProject("testOutgoingEmptyFolder", new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder1/b.txt"});
-
-		// Create an empty folder without adding it to version control
-		buildResources(project, new String[] {"folder2/"}, false);
-		
-		assertSyncEquals("testOutgoingEmptyFolder", project, 
-			new String[] { "folder2/" }, 
-			true, new int[] {
-				SyncInfo.OUTGOING | SyncInfo.ADDITION});
-				
-		commitResources(project, new String[] { "folder2" });
-		
-		assertSyncEquals("testOutgoingEmptyFolder", project, 
-			new String[] { "folder2/" }, 
-			true, new int[] {
-				SyncInfo.IN_SYNC});
-				
-		// Ensure that the folder still exists (i.e. wasn't pruned)
-		assertTrue("Folder should still exist", project.getFolder("folder2").exists());
-	}
-	
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/CVSUITestCase.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/CVSUITestCase.java
deleted file mode 100644
index 0afb83d..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/CVSUITestCase.java
+++ /dev/null
@@ -1,479 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui;
-
-
-import java.io.File;
-import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.compare.structuremergeviewer.DiffNode;
-import org.eclipse.compare.structuremergeviewer.IDiffContainer;
-import org.eclipse.compare.structuremergeviewer.IDiffElement;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.IWorkspaceDescription;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.team.core.RepositoryProvider;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSProviderPlugin;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFolder;
-import org.eclipse.team.internal.ccvs.core.connection.CVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
-import org.eclipse.team.internal.ccvs.ui.Console;
-import org.eclipse.team.internal.ccvs.ui.ICVSUIConstants;
-import org.eclipse.team.internal.ccvs.ui.actions.AddToWorkspaceAction;
-import org.eclipse.team.internal.ccvs.ui.actions.CommitAction;
-import org.eclipse.team.internal.ccvs.ui.actions.ReplaceWithRemoteAction;
-import org.eclipse.team.internal.ccvs.ui.actions.UpdateAction;
-import org.eclipse.team.internal.ccvs.ui.operations.ITagOperation;
-import org.eclipse.team.internal.ccvs.ui.operations.TagOperation;
-import org.eclipse.team.internal.ccvs.ui.repo.RepositoryManager;
-import org.eclipse.team.internal.ccvs.ui.sync.CVSSyncCompareInput;
-import org.eclipse.team.internal.ccvs.ui.sync.CommitSyncAction;
-import org.eclipse.team.internal.ccvs.ui.sync.ForceCommitSyncAction;
-import org.eclipse.team.internal.ccvs.ui.sync.ForceUpdateSyncAction;
-import org.eclipse.team.internal.ccvs.ui.sync.UpdateSyncAction;
-import org.eclipse.team.internal.ccvs.ui.wizards.SharingWizard;
-import org.eclipse.team.internal.ui.dialogs.IPromptCondition;
-import org.eclipse.team.internal.ui.sync.ITeamNode;
-import org.eclipse.team.internal.ui.sync.SyncSet;
-import org.eclipse.team.internal.ui.sync.SyncView;
-import org.eclipse.team.tests.ccvs.core.CVSTestSetup;
-import org.eclipse.ui.IActionDelegate;
-import org.eclipse.ui.IObjectActionDelegate;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.WorkbenchException;
-
-public class CVSUITestCase extends LoggingTestCase {
-	protected static Set installedTrap = new HashSet();
-	private List testWindows;
-	protected IWorkbenchWindow testWindow;
-	protected CVSRepositoryLocation testRepository;
-	protected boolean USE_CONSOLE = System.getProperty("cvs.tests.use_console") != null;
-	protected boolean SHOW_CONSOLE = System.getProperty("cvs.tests.show_console") != null;
-
-	public CVSUITestCase(String name) {
-		super(name);
-		testWindows = new ArrayList(3);
-	}
-	
-	protected void setUp() throws Exception {
-		super.setUp();
-		testRepository = CVSTestSetup.repository;
-		testWindow = openTestWindow();
-		
-		Display display = testWindow.getShell().getDisplay();
-		if (! installedTrap.contains(display)) {
-			installedTrap.add(display);
-			Util.waitForErrorDialog(display, 10000 /*ms*/, new Waiter() {
-				public boolean notify(Object object) {
-					Dialog dialog = (Dialog) object;
-					printWarning("Encountered error dialog with title: " + dialog.getShell().getText(), null, null);
-					dialog.close();
-					return true;
-				}
-			});
-		}
-
-		// disable auto-build
-		IWorkspace workspace = ResourcesPlugin.getWorkspace();
-		IWorkspaceDescription description = workspace.getDescription();
-		description.setAutoBuilding(false);
-		workspace.setDescription(description);
-						
-		// disable CVS GZIP compression
-		IPreferenceStore store = CVSUIPlugin.getPlugin().getPreferenceStore();
-		store.setValue(ICVSUIConstants.PREF_COMPRESSION_LEVEL, 0);
-		CVSProviderPlugin.getPlugin().setCompressionLevel(0);
-
-		// default case is to not show the console but don't disable it, this is
-		// the typical user experience.
-		if(SHOW_CONSOLE) {
-			showConsole();
-		} else if(!USE_CONSOLE) {
-			CVSProviderPlugin.getPlugin().setConsoleListener(null);			
-		}
-	
-		// wait for UI to settle
-		Util.processEventsUntil(100);
-	}
-	
-	protected void tearDown() throws Exception {
-		// wait for UI to settle
-		Util.processEventsUntil(100);
-		closeAllTestWindows();
-		super.tearDown();
-	}
-
-	protected void showConsole() {
-		try {
-			IWorkbenchPage page = CVSUIPlugin.getActivePage();
-			IViewPart consolePart = page.findView(Console.CONSOLE_ID);
-			if (consolePart == null) {
-				IWorkbenchPart activePart = page.getActivePart();
-				consolePart = page.showView(Console.CONSOLE_ID);
-				//restore focus stolen by the creation of the console
-				if (activePart != null) page.activate(activePart);
-			} else {
-				page.bringToTop(consolePart);
-			}
-		} catch (PartInitException pe) {
-		}
-	}
-	
- 	/** 
-	 * Open a test window with the empty perspective.
-	 */
-	protected IWorkbenchWindow openTestWindow() {
-		try {
-			IWorkbenchWindow win = PlatformUI.getWorkbench().openWorkbenchWindow(
-				EmptyPerspective.PERSP_ID, ResourcesPlugin.getWorkspace());
-			testWindows.add(win);
-			return win;
-		} catch (WorkbenchException e) {
-			fail();
-			return null;
-		}
-	}
-
- 	/**
-	 * Close all test windows.
-	 */
-	protected void closeAllTestWindows() {
-		Iterator iter = testWindows.iterator();
-		IWorkbenchWindow win;
-		while (iter.hasNext()) {
-			win = (IWorkbenchWindow) iter.next();
-			win.close();
-		}
-		testWindows.clear();
-	}
-
-	/**
-	 * Checks out the projects with the specified tags from the test repository.
-	 */
-	protected void actionCheckoutProjects(String[] projectNames, CVSTag[] tags) throws Exception {
-		ICVSRemoteFolder[] projects = lookupRemoteProjects(projectNames, tags);
-		AddToWorkspaceAction action = new AddToWorkspaceAction() {
-			protected IPromptCondition getOverwriteLocalAndFileSystemPrompt() {
-				return new DummyPromptCondition();
-			}
-		};
-		runActionDelegate(action, projects, "Repository View Checkout action");
-		timestampGranularityHiatus();
-	}
-
-	/**
-	 * Replaces the specified resources with the remote contents using the action contribution.
-	 */
-	protected void actionReplaceWithRemote(IResource[] resources) {
-		ReplaceWithRemoteAction action = new ReplaceWithRemoteAction() {
-			protected IPromptCondition getPromptCondition(IResource[] resources) {
-				return new DummyPromptCondition();
-			}
-		};
-		runActionDelegate(action, resources, "Replace with Remote action");
-		timestampGranularityHiatus();
-	}
-		
-	/**
-	 * Shares the specified project with the test repository.
-	 * @param project the project to share
-	 */
-	protected void actionShareProject(IProject project) {
-		final SharingWizard wizard = new SharingWizard();
-		wizard.init(PlatformUI.getWorkbench(), project);
-		Util.waitForWizardToOpen(testWindow.getShell(), wizard, new Waiter() {
-			public boolean notify(Object object) {
-				WizardDialog dialog = (WizardDialog) object;
-				startTask("set sharing, pop up sync viewer");
-				wizard.performFinish();
-				endTask();
-				dialog.close();
-				return false;
-			}
-		});
-		timestampGranularityHiatus();
-	}
-
-	/**
-	 * Updates the specified resources using the action contribution.
-	 */
-	protected void actionCVSCommit(IResource[] resources, final String comment) {
-		assertNotNull(comment);
-		CommitAction action = new CommitAction() {
-			protected String promptForComment() {
-				return comment;
-			}
-		};
-		runActionDelegate(action, resources, "CVS Commit action");
-		timestampGranularityHiatus();
-	}
-	
-	/**
-	 * Tags the specified resources using the action contribution.
-	 */
-	protected void actionCVSTag(IResource[] resources, final String name) {
-		assertNotNull(name);
-		ITagOperation op = new TagOperation(null, resources);
-		op.setTag(new CVSTag(name, CVSTag.VERSION));
-		try {
-			op.executeWithProgress();
-		} catch (InterruptedException e) {
-			printWarning("Tag interrupted", e, null);
-		} catch (CVSException e) {
-			printWarning("Tag failed", e, null);
-		}
-	}
-
-	/**
-	 * Updates the specified resources using the action contribution.
-	 */
-	protected void actionCVSUpdate(IResource[] resources) {
-		runActionDelegate(new UpdateAction(), resources, "CVS Update action");
-		timestampGranularityHiatus();
-	}
-	
-	/**
-	 * Pops up the synchronizer view for the specified resources.
-	 * @param resources the resources to sync
-	 * @return the compare input used
-	 */
-	protected CVSSyncCompareInput syncResources(IResource[] resources) {
-		startTask("Synchronize with Repository action");
-		SyncView syncView = getSyncView();
-		CVSSyncCompareInput input = new CVSSyncCompareInput(resources) {
-			// overridden to prevent "nothing to synchronize" dialog from popping up
-			public void run(IProgressMonitor monitor)
-				throws InvocationTargetException, InterruptedException {
-				super.run(monitor);
-				DiffNode result = getDiffRoot(); // (DiffNode) getCompareResult()
-				if (result == null || Util.isEmpty(result)) throw new InterruptedException();
-			}
-		};
-		syncView.showSync(input);
-		endTask();
-		return input;
-	}
-	
-	/**
-	 * Commits the specified resources using the synchronizer view.
-	 * @param resources the resources to commit
-	 * @param input the compare input for the sync view, or null to create a new one
-	 * @param comment the comment string, or ""
-	 */
-	protected void syncCommitResources(IResource[] resources, CVSSyncCompareInput input, String comment) {
-		if (input == null) input = syncResources(resources);
-		IDiffContainer diffRoot = input.getDiffRoot();
-		if (Util.isEmpty(diffRoot)) {
-			startTask("Nothing to Commit");
-		} else {
-			ITeamNode[] nodes = getTeamNodesForResources(diffRoot, resources);
-			startTask("Sync View Commit action");
-			syncCommitInternal(input, nodes, comment);
-		}
-		endTask();
-		timestampGranularityHiatus();
-	}
-	
-	/**
-	 * Updates the specified resources using the synchronizer view.
-	 * @param resources the resources to update
-	 * @param input the compare input for the sync view, or null to create a new one
-	 * @param comment the comment string, or ""
-	 */
-	protected void syncUpdateResources(IResource[] resources, CVSSyncCompareInput input) {
-		if (input == null) input = syncResources(resources);
-		IDiffContainer diffRoot = input.getDiffRoot();
-		if (Util.isEmpty(diffRoot)) {
-			startTask("Nothing to Update");
-		} else {
-			ITeamNode[] nodes = getTeamNodesForResources(diffRoot, resources);
-			startTask("Sync View Update action");
-			syncGetInternal(input, nodes);
-		}
-		endTask();
-		timestampGranularityHiatus();
-	}
-	
-	/**
-	 * Creates and imports project contents from a zip file.
-	 */
-	protected IProject createAndImportProject(String prefix, File zipFile) throws Exception {
-		IProject project = Util.createUniqueProject(prefix);
-		Util.importZip(project, zipFile);
-		return project;
-	}
-	
-	/**
-	 * Looks up handles for remote projects by name.
-	 */
-	protected ICVSRemoteFolder[] lookupRemoteProjects(String[] projectNames, CVSTag[] tags) throws Exception {
-		ICVSRemoteFolder[] folders = new ICVSRemoteFolder[projectNames.length];
-		for (int i = 0; i < projectNames.length; ++i) {
-			folders[i] = testRepository.getRemoteFolder(projectNames[i], tags[i]);
-		}
-		return folders;
-	}
-	
-	/**
-	 * Gets an instance of the Synchronize view
-	 */
-	protected SyncView getSyncView() {
-		SyncView view = SyncView.findViewInActivePage(null);
-		assertNotNull("Could not obtain a Sync View.", view);
-		return view;
-	}
-	
-	/**
-	 * Runs an IActionDelegate prototype instance on a given selection.
-	 */
-	protected void runActionDelegate(IActionDelegate delegate, Object[] selection, String taskName) {
-		Action action = new Action() { };
-		if (delegate instanceof IObjectActionDelegate) {
-			((IObjectActionDelegate) delegate).setActivePart(action,
-				PlatformUI.getWorkbench().getActiveWorkbenchWindow().getPartService().getActivePart());
-		}
-		delegate.selectionChanged(action, new StructuredSelection(selection));
-		startTask(taskName);
-		delegate.run(action);
-		endTask();
-	}
-	
-	/**
-	 * Commits NON-CONFLICTING and CONFLICTING resources represented by an array of synchronizer nodes.
-	 */
-	private void syncCommitInternal(CVSSyncCompareInput input, ITeamNode[] nodes, final String comment) {
-		FakeSelectionProvider selectionProvider = new FakeSelectionProvider(nodes);
-		// Commit ONLY NON-CONFLICTING changes
-		CommitSyncAction commitAction = new CommitSyncAction(input, selectionProvider, "Commit",
-			testWindow.getShell()) {
-			protected int promptForConflicts(SyncSet syncSet) {
-				return 0; // yes! sync conflicting changes
-			}
-			protected String promptForComment(RepositoryManager manager, IResource[] resourcesToCommit) {
-				return comment;
-			}
-			protected IResource[] promptForResourcesToBeAdded(RepositoryManager manager, IResource[] unadded) {
-				return unadded;
-			}
-		};
-		commitAction.run();
-		// Commit ONLY CONFLICTING changes
-		ForceCommitSyncAction forceCommitAction = new ForceCommitSyncAction(input, selectionProvider, "Force Commit",
-			testWindow.getShell()) {
-			protected int promptForConflicts(SyncSet syncSet) {
-				return 0; // yes! sync conflicting changes
-			}
-			protected String promptForComment(RepositoryManager manager, IResource[] resourcesToCommit) {
-				return comment;
-			}
-			protected IResource[] promptForResourcesToBeAdded(RepositoryManager manager, IResource[] unadded) {
-				return unadded;
-			}
-		};
-		forceCommitAction.run();
-	}
-
-	/**
-	 * Updates NON-CONFLICTING and CONFLICTING resources represented by an array of synchronizer nodes.
-	 */
-	private void syncGetInternal(CVSSyncCompareInput input, ITeamNode[] nodes) {
-		FakeSelectionProvider selectionProvider = new FakeSelectionProvider(nodes);
-		// Update ONLY NON-CONFLICTING changes
-		UpdateSyncAction updateAction = new UpdateSyncAction(input, selectionProvider, "Update",
-			testWindow.getShell()) {
-			protected boolean promptForConflicts() {
-				return true;
-			}
-			protected int promptForMergeableConflicts() {
-				return 2;
-			}
-		};
-		updateAction.run();
-		// Update ONLY CONFLICTING changes
-		ForceUpdateSyncAction forceUpdateAction = new ForceUpdateSyncAction(input, selectionProvider, "Force Update",
-			testWindow.getShell()) {
-			protected boolean promptForConflicts() {
-				return true;
-			}
-			protected int promptForMergeableConflicts() {
-				return 2;
-			}
-		};
-		forceUpdateAction.run();
-	}
-
-	/**
-	 * Gets an array of synchronizer nodes corresponding to an array of resouces.
-	 */
-	protected static ITeamNode[] getTeamNodesForResources(IDiffContainer root, IResource[] resources) {
-		ITeamNode[] nodes = new ITeamNode[resources.length];
-		for (int i = 0; i < resources.length; ++i) {
-			nodes[i] = findTeamNodeForResource(root, resources[i]);
-			assertNotNull(nodes[i]);
-		}
-		return nodes;
-	}
-	
-	private static ITeamNode findTeamNodeForResource(IDiffElement root, IResource resource) {
-		RepositoryProvider provider = RepositoryProvider.getProvider(resource.getProject(), CVSProviderPlugin.getTypeId());
-		assertNotNull("Resource " + resource.getFullPath() + " must have an associated CVSProvider", provider);
-		
-		if (root instanceof ITeamNode) {
-			ITeamNode node = (ITeamNode) root;
-			if (resource.equals(node.getResource())) return node;
-			// prune the backtracking tree
-			IResource parent = resource.getParent();
-			do {
-				if (parent == null) return null; // can't possibly be child of this node
-			} while (! resource.equals(parent));
-		}
-		if (root instanceof IDiffContainer) {
-			IDiffContainer container = (IDiffContainer) root;
-			if (container.hasChildren()) {
-				IDiffElement[] children = container.getChildren();
-				for (int i = 0; i < children.length; ++i) {
-					ITeamNode node = findTeamNodeForResource(children[i], resource);
-					if (node != null) return node;
-				}
-			}
-		}
-		return null;
-	}
-	
-	/**
-	 * Waits for a small amount of time to compensate for file system time stamp granularity.
-	 */
-	private void timestampGranularityHiatus() {
-		//JUnitTestCase.waitMsec(1500);
-		Util.processEventsUntil(1500);
-	}
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/DummyPromptCondition.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/DummyPromptCondition.java
deleted file mode 100644
index c20d8d4..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/DummyPromptCondition.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.team.internal.ui.dialogs.IPromptCondition;
-
-public class DummyPromptCondition implements IPromptCondition {
-	public boolean needsPrompt(IResource resource) {
-		return false;
-	}
-	public String promptMessage(IResource resource) {
-		// this method should never be called
-		return resource.getName();
-	}
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/EclipseUITestHarnessApplication.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/EclipseUITestHarnessApplication.java
deleted file mode 100644
index f387859..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/EclipseUITestHarnessApplication.java
+++ /dev/null
@@ -1,191 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui;
-
-
-import java.io.BufferedOutputStream;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.InputStream;
-import java.io.PrintStream;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Properties;
-
-import junit.framework.Test;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.tests.harness.EclipseTestHarnessApplication;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.internal.Workbench;
-
-/**
- * A test harness with UI and logging support.
- * <pre>
- * Supported arguments:
- *   -test <suite>   : id of suite to run (must be plugged into extension point)
- *   -log <file>     : specify a file for logging
- *   -nolog          : do not write a log file
- *   -repeat <n>     : number of iterations to run
- *   -ignorefirst    : ignore (do not record) results from first iteration
- *   -purge          : purge all projects from the workspace before each iteration
- *   <anything else> : passed verbatim to the org.eclipse.ui.workbench application
- * </pre>
- */
-public class EclipseUITestHarnessApplication extends EclipseTestHarnessApplication {
-	protected boolean purgeWorkspace;
-	protected boolean ignoreFirst;
-	protected int repeatCount;
-	protected LoggingTestResult logResult;
-	
-	/**
-	 * Application entry point.
-	 */
-	public Object run(Object userArgs) throws Exception {
-		PrintStream logStream = System.err;
-		String logFilename = null;
-		purgeWorkspace = false;
-		ignoreFirst = false;
-		repeatCount = 1;
-		if (userArgs instanceof String[]) {
-			// parse args, no error handling
-			String[] args = (String[]) userArgs;
-			List argsList = new ArrayList(args.length);
-			for (int i = 0; i < args.length; ++i) {
-				if ("-repeat".equals(args[i])) {
-					repeatCount = Integer.parseInt(args[++i]);
-				} else if ("-ignorefirst".equals(args[i])) {
-					ignoreFirst = true;
-				} else if ("-nolog".equals(args[i])) {
-					logStream = null;
-				} else if ("-log".equals(args[i])) {
-					logFilename = args[++i];
-				} else if ("-purge".equals(args[i])) {
-					purgeWorkspace = true;
-				} else {
-					argsList.add(args[i]);
-				}
-			}
-			userArgs = argsList.toArray(new String[argsList.size()]);
-		}
-		// setup logging
-		if (logFilename != null) {
-			File file = new File(logFilename);
-			logStream = new PrintStream(new BufferedOutputStream(new FileOutputStream(logFilename)));
-		}
-		logResult = new LoggingTestResult(logStream);
-		try {
-			logResult.startLog(System.currentTimeMillis(), getSDKBuildId());
-			return launchWorkbench(userArgs);
-		} finally {
-			logResult.endLog();
-			if (logFilename != null) logStream.close();
-		}
-	}
-	
-	/**
-	 * Launches the Workbench UI.
-	 */
-	protected Object launchWorkbench(final Object userArgs) throws Exception {
-		final Exception[] exception = new Exception[1];
-		Workbench workbench = new Workbench() {
-			/*** this code should be kept in sync with Workbench.runEventLoop() ***/
-			protected void runEventLoop(Window.IExceptionHandler handler) {
-				// Dispatch all events.
-				Display display = Display.getCurrent();
-				while (true) {
-					try {
-						if (!display.readAndDispatch())
-							break;
-					} catch (Throwable e) {
-						break;
-					}
-				}
-		
-				// Run our hook.
-				try {
-					workbenchHook(this);
-				} catch (Exception e) {
-					exception[0] = e;
-				}
-				
-				// Close the workbench.
-				close();		
-			}
-		};
-		Object result = workbench.run(userArgs);
-		if (exception[0] != null) throw exception[0];
-		return result;
-	}
-
-	/**
-	 * Callback from Workbench if it launched successfully.
-	 */
-	protected Object workbenchHook(Workbench workbench) throws Exception {
-		// run the underlying non-ui test launcher to locate and start the test cases
-		return super.run(workbench.getCommandLineArgs());
-	}
-	
-	/**
-	 * Runs the specified test.  Called from the non-ui test launcher.
-	 */
-	protected void run(Test test) {
-		for (int i = 0; i < repeatCount; ++i) {
-			if (purgeWorkspace) purgeWorkspaceProjects();
-			LoggingTestRunner runner = new LoggingTestRunner();
-			runner.doRun(test, (i == 0 && ignoreFirst) ? null : logResult, false);
-		}
-	}
-	
-	/**
-	 * Purges the projects in the workspace.
-	 */
-	public static void purgeWorkspaceProjects() {
-		IWorkspace workspace = ResourcesPlugin.getWorkspace();
-		// purge all known projects from the workspace
-		IProject[] projects = workspace.getRoot().getProjects();
-		for (int i = 0; i < projects.length; ++i) {
-			IProject project = projects[i];
-			try {
-				project.delete(true, true, null);
-			} catch (CoreException e) {
-				System.err.println("Could not purge project: " + project.getName());
-			}
-		}
-	}
-	
-	/**
-	 * Gets the SDK build id.
-	 */
-	public static String getSDKBuildId() {	
-		try {
-			URL url = Platform.getPluginRegistry().getPluginDescriptor("org.eclipse.sdk").getInstallURL();
-			url = new URL(url, "platform.ini");
-			InputStream is = url.openStream();
-			try {
-				Properties sdkProperties = new Properties();
-				sdkProperties.load(is);
-				String buildId = sdkProperties.getProperty("buildID");
-				if (buildId != null) return buildId;
-			} finally {
-				is.close();
-			}
-		} catch (Exception e) {
-		}
-		return "unknown";
-	}
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/EmptyPerspective.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/EmptyPerspective.java
deleted file mode 100644
index c708f30..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/EmptyPerspective.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui;
-
-
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IPerspectiveFactory;
-
-/**
- * This perspective is used for testing api.  It defines an initial
- * layout with no parts, just an editor area.
- * 
- * Note: originally borrowed from org.eclipse.jdt.junit.eclipse.util
- */
-public class EmptyPerspective implements IPerspectiveFactory {
-	
-	/**
-	 * The perspective id.
-	 */
-	public static final String PERSP_ID = "org.eclipse.team.tests.ccvs.ui.EmptyPerspective";
-	
-	/**
-	 * Constructs a new Default layout engine.
-	 */
-	public EmptyPerspective() {
-		super();
-	}
-	
-	/**
-	 * Defines the initial layout for a perspective.  
-	 *
-	 * Implementors of this method may add additional views to a
-	 * perspective.  The perspective already contains an editor folder
-	 * with <code>ID = ILayoutFactory.ID_EDITORS</code>.  Add additional views
-	 * to the perspective in reference to the editor folder.
-	 *
-	 * This method is only called when a new perspective is created.  If
-	 * an old perspective is restored from a persistence file then
-	 * this method is not called.
-	 *
-	 * @param factory the factory used to add views to the perspective
-	 */
-	public void createInitialLayout(IPageLayout layout) {
-		//layout.addView( MockViewPart.ID, IPageLayout.BOTTOM, 0.5f, layout.getEditorArea() );
-	}
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/FakeSelectionProvider.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/FakeSelectionProvider.java
deleted file mode 100644
index cd7cf4c..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/FakeSelectionProvider.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui;
-
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.StructuredSelection;
-
-/**
- * Serves up fake selections.
- * 
- * Note: originally borrowed from org.eclipse.jdt.ui.tests.actions
- */
-public class FakeSelectionProvider implements ISelectionProvider {
-	private Object[] fElems;
-	public FakeSelectionProvider(Object[] elements){
-		fElems = elements;
-	}
-	
-	public void addSelectionChangedListener(ISelectionChangedListener listener) {
-	}
-
-	public ISelection getSelection() {
-		return new StructuredSelection(fElems);
-	}
-
-	public void removeSelectionChangedListener(ISelectionChangedListener listener) {
-	}
-
-	public void setSelection(ISelection selection) {
-	}
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/ICriteria.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/ICriteria.java
deleted file mode 100644
index d9f4668..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/ICriteria.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui;
-
-
-/**
- * Generic object filter mechanism.
- */
-public interface ICriteria {
-	/**
-	 * Returns true if the candidate object satisfies the specified
-	 * criteria value according to a particular algorithm.
-	 */
-	public boolean test(Object candidate, Object value);
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/LoggingTestCase.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/LoggingTestCase.java
deleted file mode 100644
index ef4decb..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/LoggingTestCase.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui;
-
-
-import junit.framework.Assert;
-import junit.framework.TestCase;
-import junit.framework.TestResult;
-import org.eclipse.core.runtime.IStatus;
-
-public class LoggingTestCase extends TestCase {
-	private LoggingTestResult logResult;
-	private int disableLogStack;
-	
-	/**
-	 * Creates a new logging test case.
-	 */
-	public LoggingTestCase(String name) {
-		super(name);
-	}
-	
-	/**
-	 * Runs a test.
-	 * @param result the result object
-	 */
-	public void run(TestResult result) {
-		// run the garbage collector now to improve benchmark precision
-		for (int i = 0; i < 4; ++i) {
-			System.runFinalization();
-			System.gc();
-		}
-		if (result instanceof LoggingTestResult) {
-			logResult = (LoggingTestResult) result;
-			disableLogStack = 0;
-		} else {
-			logResult = null;
-			disableLogStack = 1;
-		}
-		super.run(result);
-	}
-
-	/**
-	 * Marks the beginning of a new task group.
-	 * @param groupName the name for the group
-	 */
-	protected void startGroup(String groupName) {
-		if (disableLogStack == 0) logResult.startGroup(groupName);		
-	}
-	
-	/**
-	 * Marks the ends of the active task group.
-	 */
-	protected void endGroup() {
-		if (disableLogStack == 0) logResult.endGroup();		
-	}
-
-	/**
-	 * Marks the beginning of a new task.
-	 * @param taskName the name for the task
-	 */
-	protected void startTask(String taskName) {
-		if (disableLogStack == 0) logResult.startTask(taskName);		
-	}
-	
-	/**
-	 * Marks the ends of the active task.
-	 */
-	protected void endTask() {
-		if (disableLogStack == 0) logResult.endTask();		
-	}
-
-	/**
-	 * Disables logging until re-enabled.  (this call nests)
-	 */
-	protected void disableLog() {
-		disableLogStack += 1;
-	}
-
-	/**
-	 * Enables logging when all previous calls to disableLog are matched.
-	 */
-	protected void enableLog() {
-		Assert.assertTrue(disableLogStack > 0);
-		disableLogStack -= 1;
-		Assert.assertTrue(disableLogStack != 0 || logResult != null);
-	}
-	
-	/**
-	 * Prints a warning message to the log.
-	 * @param message the message, or null
-	 * @param error an exception with a stack trace, or null
-	 * @param status a status code, or null
-	 */
-	protected void printWarning(String message, Throwable error, IStatus status) {
-		if (disableLogStack == 0) logResult.printWarning(message, error, status);
-	}
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/LoggingTestResult.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/LoggingTestResult.java
deleted file mode 100644
index f4843ba..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/LoggingTestResult.java
+++ /dev/null
@@ -1,264 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui;
-
-
-import java.io.PrintStream;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.Stack;
-import java.util.StringTokenizer;
-
-import junit.framework.Assert;
-import junit.framework.AssertionFailedError;
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestResult;
-import junit.runner.BaseTestRunner;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.team.core.TeamException;
-
-public class LoggingTestResult extends TestResult {
-	protected Stack groupStack;
-	protected PerformanceTimer currentTask;
-	protected PrintStream logStream;
-	protected Stack /* of String */ elements;
-	protected String indent;
-	
-	/**
-	 * Creates a logging test result.
-	 * @param logStream the output stream, or null to disable logging
-	 */
-	public LoggingTestResult(PrintStream logStream) {
-		this.logStream = logStream;
-		this.elements = new Stack();
-		this.indent = "";
-		groupStack = new Stack();
-		currentTask = null;
-	}
-	
-	/**
-	 * Marks the beginning of a series of log entries.
-	 */
-	public void startLog(long timestamp, String sdkBuild) {
-		println("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
-		startXMLElement("log", new String[] { "timestamp", "sdkbuild" }, new String[] {
-			new SimpleDateFormat("dd/MMM/yyyy HH:mm:ss").format(new Date(timestamp)),
-			sdkBuild });
-	}
-	
-	/**
-	 * Marks the end of a series of log entries.
-	 */
-	public void endLog() {
-		endXMLElement();
-	}
-	
-	/**
-	 * Prints a warning message to the log file.
-	 * @param message the message, or null
-	 * @param error an exception with a stack trace, or null
-	 * @param status a status code, or null
-	 */
-	public void printWarning(String message, Throwable error, IStatus status) {
-		printAbort("warning", message, error, status);
-	}
-	
-	/**
-	 * Called by the JUnit framework when an error occurs.
-	 * @param test the test
-	 * @param error the exception that occurred 
-	 */
-	public void addError(Test test, Throwable error) {
-		printAbort("error", null, error, null);
-		super.addError(test, error);
-	}
-	
-	/**
-	 * Called by the JUnit framework when an assertion failure occurs.
-	 * @param test the test
-	 * @param error the exception that occurred
-	 */
-	public void addFailure(Test test, AssertionFailedError error) {
-		printAbort("failure", null, error, null);
-		super.addFailure(test, error);
-	}
-	
-	/**
-	 * Called by the JUnit framework to mark the beginning of a test case.
-	 * @param test the test
-	 */
-	public void startTest(Test test) {
-		if (test instanceof TestCase) {
-			TestCase testCase = (TestCase) test;
-			startXMLElement("case", new String[] { "class", "name" },
-				new String[] { testCase.getClass().getName(), testCase.getName() });
-			groupStack.clear();
-			currentTask = null;
-		}
-		super.startTest(test);
-	}
-
-	/**
-	 * Called by the JUnit framework to mark the end of a test case.
-	 * @param test the test
-	 */
-	public void endTest(Test test) {
-		if (test instanceof TestCase) {
-			TestCase testCase = (TestCase) test;
-			if (currentTask != null) endTask();
-			while (! groupStack.isEmpty()) endGroup();
-			endXMLElement();
-		}
-		super.endTest(test);
-	}
-	
-	/**
-	 * Marks the beginning of a new task group.
-	 * @param groupName the name for the group
-	 */
-	public void startGroup(String groupName) {
-		Assert.assertNull(currentTask);
-		startXMLElement("group", new String[] { "name" }, new String[] { groupName });
-		groupStack.push(groupName);
-	}
-	
-	/**
-	 * Marks the end of the active task group.
-	 */
-	public void endGroup() {
-		Assert.assertNull(currentTask);
-		Assert.assertTrue(! groupStack.empty());
-		endXMLElement();
-		groupStack.pop();
-	}
-
-	/**
-	 * Marks the beginning of a new task.
-	 * @param taskName the name for the task
-	 */
-	public void startTask(String taskName) {
-		Assert.assertNull(currentTask);
-		startXMLElement("task", new String[] { "name" }, new String[] { taskName });
-		currentTask = new PerformanceTimer(taskName);
-		currentTask.start();
-	}
-	
-	/**
-	 * Marks the end of the active task.
-	 */
-	public void endTask() {
-		Assert.assertNotNull(currentTask);
-		currentTask.stop();
-		printXMLElement("result", new String[] { "elapsed" },
-			new String[] { Integer.toString(currentTask.getTotalMillis()) });
-		endXMLElement();
-		currentTask = null;
-	}
-	
-	protected void startXMLElement(String name, String[] attributes, String[] values) {
-		println(formatXMLElement(name, attributes, values, false));
-		elements.push(name);
-		indent += "  ";
-	}
-		
-	protected void printXMLElement(String name, String[] attributes, String[] values) {
-		println(formatXMLElement(name, attributes, values, true));
-	}
-
-	protected String formatXMLElement(String name, String[] attributes, String[] values, boolean quickEnd) {
-		// XXX need to escape certain characters in attribute values
-		StringBuffer buffer = new StringBuffer("<");
-		buffer.append(name);
-		if (attributes != null && values != null) {
-			for (int i = 0; i < attributes.length; ++i) {
-				buffer.append(' ');
-				buffer.append(attributes[i]);
-				buffer.append("=\"");
-				buffer.append(values[i]);
-				buffer.append('"');
-			}
-		}
-		if (quickEnd) buffer.append('/');
-		buffer.append('>');
-		return buffer.toString();
-	}
-	
-	protected void endXMLElement() {
-		indent = indent.substring(2);
-		String name = (String) elements.pop();
-		println("</" + name + ">");
-	}
-
-	protected void printXMLElementData(String line) {
-		// XXX need to escape certain characters in element data
-		println(line);
-	}
-	
-	protected void printAbort(String type, String message, Throwable error, IStatus status) {
-		if (status == null && error != null) {
-			if (error instanceof CoreException) {
-				status = ((CoreException) error).getStatus();
-			} else if (error instanceof TeamException) {
-				status = ((TeamException) error).getStatus();
-			}
-		}
-		if (message == null && error != null) {
-			message = error.getMessage();
-			if (message == null) {
-				message = error.getClass().getName();
-			}
-		}
-		if (message == null && status != null) {
-			message = status.getMessage();
-		}
-		if (message == null) message = "";
-		startXMLElement("abort", new String[] { "type", "message" },
-			new String[] { type, message });
-		if (status != null) printStatus(status);
-		if (error != null) printStackTrace(error);
-		endXMLElement();
-	}
-	
-	protected void printStatus(IStatus status) {
-		startXMLElement("status", new String[] { "severity", "code", "plugin", "message" },
-			new String[] {
-				Integer.toString(status.getSeverity()),
-				Integer.toString(status.getCode()),
-				status.getPlugin(), status.getMessage() });
-		if (status.isMultiStatus()) {
-			IStatus[] children = status.getChildren();
-			for (int i = 0; i < children.length; ++i) {
-				printStatus(children[i]);
-			}
-		}
-		endXMLElement();
-	}
-	
-	protected void printStackTrace(Throwable error) {
-		// XXX need a better way to serialize the stack trace
-		String trace = BaseTestRunner.getFilteredTrace(error);
-		StringTokenizer tok = new StringTokenizer(trace, "\r\n");
-		if (! tok.hasMoreTokens()) return; // empty trace?
-		tok.nextToken(); // skip message line
-		startXMLElement("trace", null, null);
-		while (tok.hasMoreTokens()) {
-			String frame = tok.nextToken();
-			printXMLElementData(frame);
-		}
-		endXMLElement();
-	}
-	
-	protected void println(String line) {
-		if (logStream != null) logStream.println(indent + line);
-	}
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/LoggingTestRunner.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/LoggingTestRunner.java
deleted file mode 100644
index 395bf1c..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/LoggingTestRunner.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui;
-
-
-import junit.framework.Test;
-import junit.framework.TestResult;
-import junit.textui.TestRunner;
-
-public class LoggingTestRunner extends TestRunner {
-	protected LoggingTestResult logResult;
-	
-	protected TestResult createTestResult() {
-		TestResult result = logResult;
-		logResult = null;
-		if (result == null) result = new LoggingTestResult(null);
-		return result;
-	}
-	
-	/**
-	 * Runs a logging test suite.
-	 * @param suite the test suite
-	 * @param logResult the result object to use, or null to create a new one
-	 * @param wait if true, pauses between test runs
-	 */
-	public void doRun(Test suite, LoggingTestResult logResult, boolean wait) {
-		this.logResult = logResult;
-		super.doRun(suite, wait);
-	}
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/PerformanceTimer.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/PerformanceTimer.java
deleted file mode 100644
index 89bad07..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/PerformanceTimer.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui;
-
-
-public class PerformanceTimer {
-	private long startTime;
-	private int totalMillis;
-	private String name;
-	
-	/**
-	 * Creates a timer, initially not running.
-	 */
-	public PerformanceTimer(String name) {
-		this.totalMillis = 0;
-		this.name = name;
-	}
-	
-	/**
-	 * Starts the timer.  Timer must not be running.
-	 */
-	public void start() {
-		startTime = System.currentTimeMillis();
-	}
-	
-	/**
-	 * Stops the timer.  Timer must be running.
-	 */
-	public void stop() {
-		totalMillis += System.currentTimeMillis() - startTime;
-		startTime = 0;
-	}
-	
-	/**
-	 * Returns the total number of milliseconds elapsed over all measured intervals.
-	 */
-	public int getTotalMillis() {
-		return totalMillis;
-	}
-	
-	/**
-	 * Returns the name of this timer.
-	 */
-	public String getName() {
-		return name;
-	}
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/SequenceGenerator.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/SequenceGenerator.java
deleted file mode 100644
index d1eb6da..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/SequenceGenerator.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui;
-
-
-import java.util.Random;
-
-/**
- * Encapsulates algorithms and state for generating deterministic sequences.
- * The sequence of numbers generated will always follow the same pattern,
- * regardless of the time, place, or platform.
- */
-public class SequenceGenerator {
-	private static long globalSeqNum = System.currentTimeMillis() * 1000;
-	private final Random random;
-	private int uniqueInt;
-
-	/**
-	 * Constructs a new sequence generator with a known seed.
-	 */
-	public SequenceGenerator() {
-		random = new Random(3141592653589793238L); // a known constant
-		uniqueInt = 1000000;
-	}
-	
-	/**
-	 * Returns a globally unique long integer.
-	 */
-	public static long nextGloballyUniqueLong() {
-		return globalSeqNum++;
-	}
-	
-	/**
-	 * Returns a unique 7-digit integer.
-	 */
-	public int nextUniqueInt() {
-		return uniqueInt++;
-	}
-
-	/**
-	 * Returns a pseudo-random integer between 0 and n-1.
-	 * @see Random#nextInt(int)
-	 */
-	public int nextInt(int n) {
-		return random.nextInt(n);
-	}
-	
-	/**
-	 * Returns a pseudo-random real number following a gaussian distribution.
-	 * @see Random#nextGaussian()
-	 */
-	public double nextGaussian() {
-		return random.nextGaussian();
-	}
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/Util.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/Util.java
deleted file mode 100644
index 4135963..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/Util.java
+++ /dev/null
@@ -1,796 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui;
-
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Comparator;
-import java.util.List;
-import java.util.zip.ZipException;
-import java.util.zip.ZipFile;
-
-import junit.framework.Assert;
-import org.eclipse.compare.structuremergeviewer.DiffNode;
-import org.eclipse.compare.structuremergeviewer.IDiffContainer;
-import org.eclipse.compare.structuremergeviewer.IDiffElement;
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IProjectDescription;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.wizard.IWizard;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.team.internal.ccvs.core.CVSStatus;
-import org.eclipse.ui.internal.dialogs.InternalErrorDialog;
-import org.eclipse.ui.wizards.datatransfer.ImportOperation;
-import org.eclipse.ui.wizards.datatransfer.ZipFileStructureProvider;
-
-/**
- * Provides helpers for:
- * <ul>
- *   <li>Resource manipulation</li>
- *   <li>Diff trees</li>
- *   <li>UI automation</li>
- *   <li>Parallel development simulation</li>
- * </ul>
- * 
- * Note: This class is referenced from the VCM 1.0 performance tests.
- */
-public class Util {
-	/*** RESOURCE MANIPULATION SUPPORT ***/
-	
-	/**
-	 * Gets a handle for a project of a given name.
-	 * @param name the project name
-	 * @return the project handle
-	 */
-	public static IProject getProject(String name) throws CoreException {
-		return ResourcesPlugin.getWorkspace().getRoot().getProject(name);
-	}
-	
-	/**
-	 * Creates a new project.
-	 * @param name the project name
-	 * @return the project handle
-	 */
-	public static IProject createProject(String name) throws CoreException {
-		IProject project = getProject(name);
-		if (!project.exists()) project.create(null);
-		if (!project.isOpen()) project.open(null);
-		return project;
-	}
-
-	/**
-	 * Deletes a project.
-	 * @param project the project
-	 */
-	public static void deleteProject(IProject project) throws CoreException {
-		project.delete(false /*force*/, null);
-	}
-	
-	/**
-	 * Deletes a file and prunes empty containing folders.
-	 * @param file the file to delete
-	 */
-	public static void deleteFileAndPrune(IFile file) throws CoreException {
-		file.delete(false /*force*/, null);
-		IContainer container = file.getParent();
-		while (container != null && container instanceof IFolder &&
-			isFolderEmpty((IFolder) container)) {
-			deleteFolder((IFolder) container);
-			container = container.getParent();
-		}
-	}
-	
-	/**
-	 * Deletes a folder.
-	 */
-	public static void deleteFolder(IFolder folder) throws CoreException {
-		try {
-			folder.delete(false /*force*/, null);
-		} catch (CoreException e) {
-			IStatus status = e.getStatus();
-			// ignore errors caused by attempting to delete folders that CVS needs to have around
-			if (findStatusByCode(status, CVSStatus.FOLDER_NEEDED_FOR_FILE_DELETIONS) == null) {
-				throw e;
-			}
-		}
-	}
-	
-	/**
-	 * Finds an IStatus instance in a multi-status by status code.
-	 */
-	public static IStatus findStatusByCode(IStatus status, int code) {
-		if (status.getCode() == code) return status;
-		IStatus[] children = status.getChildren();
-		for (int i = 0; i < children.length; i++) {
-			IStatus found = findStatusByCode(children[i], code);
-			if (found != null) return found;
-		}
-		return null;
-	}
-
-	/**
-	 * Creates a uniquely named project.
-	 * @param prefix a string prepended to the generated name
-	 * @return the new project
-	 */
-	public static IProject createUniqueProject(String prefix) throws CoreException {
-		return createProject(makeUniqueName(null, prefix, null));
-	}
-
-	/**
-	 * Creates a uniquely named file in the parent folder or project with random contents.
-	 * @param gen the sequence generator
-	 * @param parent the parent IFolder or IProject for the new file
-	 * @param meanSize the mean size of file to create (in bytes)
-	 * @param variance 69% of files with be within this amount of the mean
-	 * @param probBinary the probability of a new file being binary as a percentage
-	 * @return the new file
-	 */
-	public static IFile createUniqueFile(SequenceGenerator gen, IContainer parent,
-		int meanSize, int variance, int probBinary) throws IOException, CoreException {
-		int fileSize;
-		do {
-			fileSize = (int) Math.abs(gen.nextGaussian() * variance + meanSize);
-		} while (fileSize > meanSize + variance * 4); // avoid huge files
-		
-		ByteArrayOutputStream os = new ByteArrayOutputStream();
-		String fileName;
-		if (gen.nextInt(100) < probBinary) {
-			fileName = makeUniqueName(gen, "file", "class"); // binary
-			writeRandomBytes(gen, os, fileSize);
-		} else {
-			fileName = makeUniqueName(gen, "file", "txt"); // text
-			writeRandomText(gen, os, fileSize);
-		}
-		IFile file = parent.getFile(new Path(fileName));
-		file.create(new ByteArrayInputStream(os.toByteArray()), true, null);
-		os.close();
-		return file;
-	}
-
-	/**
-	 * Creates a uniquely named folder in the parent folder.
-	 * @param gen the sequence generator
-	 * @param parent the parent IFolder or IProject for the new folder
-	 * @return the new folder
-	 */
-	public static IFolder createUniqueFolder(SequenceGenerator gen, IContainer parent) throws CoreException {
-		IFolder folder = parent.getFolder(new Path(Util.makeUniqueName(gen, "folder", null)));
-		folder.create(false /*force*/, true /*local*/, null);
-		return folder;
-	}
-	
-	/**
-	 * Renames a resource.
-	 * The resource handle becomes invalid.
-	 * @param resource the existing resource
-	 * @param newName the new name for the resource
-	 */
-	public static void renameResource(IResource resource, String newName) throws CoreException {
-		switch (resource.getType()) {
-			case IResource.PROJECT: {
-				IProject project = (IProject) resource;
-				IProjectDescription desc = project.getDescription();
-				desc.setName(newName);
-				project.move(desc, false /*force*/, true /*keepHistory*/, null);
-			} break;
-			case IResource.FOLDER: {
-				try {
-					resource.move(new Path(newName), false /*force*/, null);
-				} catch (CoreException e) {
-					IStatus status = e.getStatus();
-					// ignore errors caused by attempting to delete folders that CVS needs to have around
-					if (findStatusByCode(status, CVSStatus.FOLDER_NEEDED_FOR_FILE_DELETIONS) == null) {
-						throw e;
-					}
-				}
-			} break;
-			default:
-				resource.move(new Path(newName), false /*force*/, null);
-				break;
-		}
-	}
-
-	/**
-	 * Modified a resource.
-	 * @param gen the sequence generator
-	 * @param file the file to modify
-	 */
-	public static void modifyFile(SequenceGenerator gen, IFile file)
-		throws IOException, CoreException {
-		ByteArrayOutputStream os = new ByteArrayOutputStream();
-		try {
-			InputStream is = file.getContents(true);
-			try {
-				byte[] buffer = new byte[8192];
-				int rsize;
-				boolean changed = false;
-				while ((rsize = is.read(buffer)) != -1) {
-					double gaussian;
-					do {
-						gaussian = gen.nextGaussian() * 0.5; // large changes are less likely than small ones
-					} while (gaussian > 1.0 || gaussian < -1.0);
-					int changeSize = (int) (gaussian * rsize);
-					changed = changed || changeSize != 0;
-					os.write(buffer, 0, changeSize < 0 ? - changeSize : rsize); // shrink file
-					writeRandomText(gen, os, changeSize); // enlarge file
-				}
-				if (! changed) os.write('!'); // make sure we actually did change the file
-				file.setContents(new ByteArrayInputStream(os.toByteArray()), false /*force*/, true /*keepHistory*/, null);
-			} finally {
-				is.close();
-			}
-		} finally {
-			os.close();
-		}
-	}
-	
-	/**
-	 * Creates a unique name.
-	 * Ensures that a deterministic sequence of names is generated for all files
-	 * and folders within a project, though not across sessions.
-	 * 
-	 * @param gen the generator, or null if this name is to be globally unique
-	 * @param prefix a string prepended to the generated name
-	 * @param extension the file extension not including the period, null if none
-	 * @return the new name
-	 */
-	public static String makeUniqueName(SequenceGenerator gen, String prefix, String extension)
-		throws CoreException {
-		StringBuffer name = new StringBuffer(prefix);
-		name.append('-');
-		if (gen == null) {
-			name.append(SequenceGenerator.nextGloballyUniqueLong());
-		} else {
-			name.append(gen.nextUniqueInt());
-		}
-		if (extension != null) {
-			name.append('.');
-			name.append(extension);
-		}
-		return name.toString();
-	}
-	
-	/**
-	 * Imports a .zip file into a container's root folder.
-	 * @param container the container
-	 * @param file the path of the .zip file
-	 */
-	public static void importZip(IContainer container, File file)
-		throws IOException, ZipException, InterruptedException, InvocationTargetException {
-		ZipFile zipFile = new ZipFile(file);
-		ZipFileStructureProvider provider = new ZipFileStructureProvider(zipFile);
-		ImportOperation importOperation = new ImportOperation(container.getFullPath(),
-			provider.getRoot(), provider, null);
-		importOperation.setOverwriteResources(true); // don't ask
-		importOperation.run(new NullProgressMonitor());
-		Assert.assertTrue(importOperation.getStatus().isOK());
-	}
-
-	/**
-	 * Writes random text to an output stream.
-	 * @param gen the sequence generator
-	 */
-	public static void writeRandomText(SequenceGenerator gen, OutputStream os, int count) throws IOException {
-		while (count-- > 0) {
-			int c = gen.nextInt(99);
-			os.write((c >= 95) ? '\n' : c + ' ');
-		}
-	}
-
-	/**
-	 * Writes random bytes to an output stream.
-	 * @param gen the sequence generator
-	 */
-	public static void writeRandomBytes(SequenceGenerator gen, OutputStream os, int count) throws IOException {
-		while (count-- > 0) {
-			os.write(gen.nextInt(256));
-		}
-	}
-
-	/**
-	 * Creates a random folder deeply below the root folder.
-	 * @param gen the sequence generator
-	 * @param root the root IFolder or IProject for the operation
-	 * @return the new folder
-	 */
-	public static IFolder createRandomDeepFolder(SequenceGenerator gen, IContainer root) throws CoreException {
-		IContainer container = pickRandomDeepContainer(gen, root);
-		for (;;) {
-			IFolder folder = createUniqueFolder(gen, container);
-			container = folder;
-			// 12.5% chance of creating a nested folder
-			if (gen.nextInt(8) != 0) return folder;
-		}
-	}
-	
-	/**
-	 * Creates several random files deeply below the root folder.
-	 * @param gen the sequence generator
-	 * @param root the root IFolder or IProject for the operation
-	 * @param count the number of files to create
-	 * @param meanSize the mean size of file to create (in bytes)
-	 * @param probBinary the probability of a new file being binary as a percentage
-	 */
-	public static void createRandomDeepFiles(SequenceGenerator gen, IContainer root, int count,
-		int meanSize, int variance, int probBinary) throws IOException, CoreException  {
-		while (count-- > 0) {
-			createUniqueFile(gen, pickRandomDeepContainer(gen, root), meanSize, variance, probBinary);
-		}
-	}
-
-	/**
-	 * Deletes several random files deeply below the root folder.
-	 * @param gen the sequence generator
-	 * @param root the root IFolder or IProject for the operation
-	 * @param count the number of files to delete
-	 */
-	public static void deleteRandomDeepFiles(SequenceGenerator gen, IContainer root, int count) throws CoreException  {
-		while (count-- > 0) {
-			IFile file = pickRandomDeepFile(gen, root);
-			if (file == null) break;
-			deleteFileAndPrune(file);
-		}
-	}
-
-	/**
-	 * Modifies several random files deeply below the root folder.
-	 * @param gen the sequence generator
-	 * @param root the root IFolder or IProject for the operation
-	 * @param count the number of files to modify
-	 */
-	public static void modifyRandomDeepFiles(SequenceGenerator gen, IContainer root, int count)
-		throws IOException, CoreException  {
-		// perhaps we can add a parameter for the "magnitude" of the change
-		while (count-- > 0) {
-			IFile file = pickRandomDeepFile(gen, root);
-			if (file == null) break;
-			modifyFile(gen, file);
-		}
-	}
-	
-	/**
-	 * Touches several random files deeply below the root folder.
-	 * @param gen the sequence generator
-	 * @param root the root IFolder or IProject for the operation
-	 * @param count the number of files to touch
-	 */
-	public static void touchRandomDeepFiles(SequenceGenerator gen, IContainer root, int count) throws CoreException  {
-		while (count-- > 0) {
-			IFile file = pickRandomDeepFile(gen, root);
-			if (file == null) break;
-			file.touch(null);
-		}
-	}
-	
-	/**
-	 * Renames several random files deeply below the root folder.
-	 * @param gen the sequence generator
-	 * @param root the root IFolder or IProject for the operation
-	 * @param count the number of files to touch
-	 */
-	public static void renameRandomDeepFiles(SequenceGenerator gen, IContainer root, int count) throws CoreException  {
-		IProject project = root.getProject();
-		while (count-- > 0) {
-			IFile file = pickRandomDeepFile(gen, root);
-			if (file == null) break;
-			renameResource(file, makeUniqueName(gen, "file", file.getFileExtension()));
-		}
-	}
-	
-	/**
-	 * Picks a random file from the parent folder or project.
-	 * @param gen the sequence generator
-	 * @param parent the parent IFolder or IProject for the operation
-	 * @return the file that was chosen, or null if no suitable files
-	 */
-	public static IFile pickRandomFile(SequenceGenerator gen, IContainer parent) throws CoreException  {
-		IResource[] members = filterResources(parent.members());
-		for (int size = members.length; size != 0; --size) {
-			int elem = gen.nextInt(size);
-			if (members[elem] instanceof IFile) return (IFile) members[elem];			
-			System.arraycopy(members, elem + 1, members, elem, size - elem - 1);
-		}
-		return null;
-	}
-
-	/**
-	 * Picks a random folder from the parent folder or project.
-	 * @param gen the sequence generator
-	 * @param parent the parent IFolder or IProject for the operation
-	 * @return the folder, or null if no suitable folders
-	 */
-	public static IFolder pickRandomFolder(SequenceGenerator gen, IContainer parent) throws CoreException {
-		IResource[] members = filterResources(parent.members());
-		for (int size = members.length; size != 0; --size) {
-			int elem = gen.nextInt(size);
-			if (members[elem] instanceof IFolder) return (IFolder) members[elem];
-			System.arraycopy(members, elem + 1, members, elem, size - elem - 1);
-		}
-		return null;
-	}
-
-	/**
-	 * Picks a random file deeply from the root folder or project.
-	 * @param gen the sequence generator
-	 * @param root the root IFolder or IProject for the operation
-	 * @return the file that was chosen, or null if no suitable files
-	 */
-	public static IFile pickRandomDeepFile(SequenceGenerator gen, IContainer root) throws CoreException  {
-		IResource[] members = filterResources(root.members());
-		for (int size = members.length; size != 0; --size) {
-			int elem = gen.nextInt(size);
-			IResource resource = members[elem];
-			if (resource instanceof IFile) return (IFile) resource;
-			if (resource instanceof IFolder) {
-				IFile file = pickRandomDeepFile(gen, (IFolder) resource);
-				if (file != null) return file;
-			}
-			System.arraycopy(members, elem + 1, members, elem, size - elem - 1);
-		}
-		return null;
-	}
-
-	/**
-	 * Picks a random folder deeply from the root folder or project.
-	 * May pick the project's root container.
-	 * @param gen the sequence generator
-	 * @param root the root IFolder or IProject for the operation
-	 * @return the container that was chosen, never null
-	 */
-	public static IContainer pickRandomDeepContainer(SequenceGenerator gen, IContainer root) throws CoreException {
-		if (gen.nextInt(6) == 0) {
-			IResource[] members = filterResources(root.members());
-			for (int size = members.length; size != 0; --size) {
-				int elem = gen.nextInt(size);
-				IResource resource = members[elem];
-				if (resource instanceof IFolder) {
-					return pickRandomDeepContainer(gen, (IFolder) resource);
-				}
-				System.arraycopy(members, elem + 1, members, elem, size - elem - 1);
-			}
-		}
-		Assert.assertTrue(isValidContainer(root));
-		return root;
-	}
-	
-	/**
-	 * Returns true if the folder does not contain any real files.
-	 */
-	public static boolean isFolderEmpty(IFolder folder) throws CoreException {
-		IResource[] members = folder.members();
-		for (int i = 0; i < members.length; ++i) {
-			if (isValidFile(members[i]) || isValidFolder(members[i])) return false;
-		}
-		return true;
-	}
-
-	/**
-	 * Returns true iff file is a valid IFile (that should not be ignored).
-	 */
-	public static boolean isValidFile(IResource file) throws CoreException {
-		String name = file.getName();
-		return file instanceof IFile
-			&& ! file.isPhantom()
-			&& ! name.equals(".classpath")
-			&& ! name.equals(".project")
-			&& ! name.equals(".vcm_meta");
-	}
-
-	/**
-	 * Returns true iff folder is a valid IFolder (that should not be ignored).
-	 */
-	public static boolean isValidFolder(IResource folder) throws CoreException {
-		String name = folder.getName();
-		return folder instanceof IFolder
-			&& ! folder.isPhantom()
-			&& ! name.equals("CVS")
-			&& ! name.equals("bin");
-	}
-
-	/**
-	 * Returns true iff container is a valid IFolder or IProject (that should not be ignored).
-	 */
-	public static boolean isValidContainer(IResource container) throws CoreException {
-		return container instanceof IProject || isValidFolder(container);
-	}
-	
-	/**
-	 * Returns true iff resource is a valid IFile, IFolder or IProject (that should not be ignored).
-	 */
-	public static boolean isValidResource(IResource resource) throws CoreException {
-		return isValidFile(resource) || isValidContainer(resource);
-	}
-
-	/**
-	 * Filters and sorts an array of resources to ensure deterministic behaviour across
-	 * sessions.  The general idea is to guarantee that given a known sequence of
-	 * pseudo-random numbers, we will always pick the same sequence of files and
-	 * folders each time we repeat the test.
-	 */
-	public static IResource[] filterResources(IResource[] resources) throws CoreException {
-		List list = new ArrayList(resources.length);
-		for (int i = 0; i < resources.length; ++i) {
-			if (isValidResource(resources[i])) list.add(resources[i]);
-		}
-		if (list.size() != resources.length) {
-			resources = (IResource[]) list.toArray(new IResource[list.size()]);
-		}
-		Arrays.sort(resources, new Comparator() {
-			public int compare(Object a, Object b) {
-				return ((IResource) a).getName().compareTo(((IResource) b).getName());
-			}
-		});
-		return resources;
-	}
-	
-	/*** DIFF SUPPORT ***/
-	
-	public static boolean isEmpty(IDiffContainer node) {
-		if (node == null) return true;
-		if (node.getKind() != 0) return false;
-		IDiffElement[] children = node.getChildren();
-		for (int i = 0; i < children.length; i++) {
-			if (!isEmpty(children[i])) return false;
-		}
-		return true;
-	}
-	public static boolean isEmpty(IDiffElement element) {
-		if (element == null) return true;
-		if (element.getKind() != 0) return false;
-		if (element instanceof IDiffContainer) {
-			IDiffElement[] children = ((DiffNode)element).getChildren();
-			for (int i = 0; i < children.length; i++) {
-				if (!isEmpty(children[i])) return false;
-			}
-		}
-		return true;
-	}
-	
-	/*** UI SUPPORT ***/
-	
-	/**
-	 * Opens the specified wizard, then notifies the waiter.
-	 * The WizardDialog instance is passed as argument to notify() in the waiter.
-	 */
-	public static void waitForWizardToOpen(Shell parent, IWizard wizard, final Waiter waiter) {
-		WizardDialog dialog = new WizardDialog(parent, wizard) {
-			public int open() {
-				// create the window's controls
-				create();
-				// hook into the event loop so we get called back when the wizard is up and running
-				final Display display = getContents().getDisplay();
-				final WizardDialog dialog = this;
-				display.asyncExec(new Runnable() {
-					public void run() {
-						while (display.readAndDispatch()); // process any other pending messages first
-						waiter.notify(dialog);
-					}
-				});
-				// call open (does not create the window's controls a second time)
-				return super.open();
-			}
-		};
-		dialog.open();
-	}
-	
-	/**
-	 * Notifies the waiter when a Shell matching the specified criteria opens.
-	 * The Shell instance is passed as argument to notify() in the waiter.
-	 * 
-	 * @param display the root display
-	 * @param pollingPeriod the number of milliseconds to wait between polls
-	 * @param value a value used for matching
-	 * @param criteria a strategy for matching the controls with a value,
-	 *           or null to match any Shell.
-	 * @param waiter the waiter to be notified
-	 */
-	public static void waitForShellToOpen(final Display display, final int pollingPeriod,
-		final Object value, final ICriteria criteria, final Waiter waiter) {
-		final Runnable hook = new Runnable() {
-			public void run() {
-				if (display.isDisposed()) return;
-				Shell[] shells = display.getShells();
-				for (int i = 0; i < shells.length; ++i) {
-					Shell shell = shells[i];
-					if (criteria != null && ! criteria.test(shell, value)) continue;
-					if (! waiter.notify(shell)) return;
-				}
-				// poll again as soon as possible
-				if (waiter.keepWaiting()) {
-					display.timerExec(pollingPeriod, this);
-				}
-			}
-		};
-		hook.run();
-	}
-
-	
-	/**
-	 * Installs a watchdog for JFace error dialogs for the current display.
-	 * The Dialog instance is passed as argument to notify() in the waiter.
-	 * Recognized dialogs:
-	 *   - ErrorDialog
-	 *   - InternalErrorDialog
-	 * 
-	 * @param display the root display
-	 * @param pollingPeriod the number of milliseconds to wait between polls
-	 * @param waiter the waiter to be notified
-	 */
-	public static void waitForErrorDialog(Display display, int pollingPeriod, final Waiter waiter) {
-		ICriteria criteria = new ICriteria() {
-			public boolean test(Object candidate, Object value) {
-				Shell shell = (Shell) candidate;
-				if (shell.isDisposed()) return false;
-				Object data = shell.getData();
-				if (data == null) return false;
-				return data instanceof ErrorDialog || data instanceof InternalErrorDialog;
-			}
-		};
-		waitForShellToOpen(display, pollingPeriod, null, criteria, new Waiter() {
-			public boolean keepWaiting() {
-				return waiter.keepWaiting();
-			}
-
-			public boolean notify(Object object) {
-				return waiter.notify(((Shell) object).getData());
-			}
-		});
-	}
-
-	/**
-	 * Finds a Control in a Composite hierarchy matching the specified criteria.
-	 * 
-	 * @param root the root of the hierarchy to search
-	 * @param clazz the Class representing the precise type of Control to find
-	 * @param value a value used for matching
-	 * @param criteria a strategy for matching the controls with a value,
-	 *           or null to match anything of the right class.
-	 * @return the first matching Control, or null if none found.
-	 */
-	public static Control findControl(Composite root, Class clazz, Object value, ICriteria criteria) {
-		if (clazz.isAssignableFrom(root.getClass())) {
-			if (criteria == null || criteria.test(root, value)) return root;
-		}
-		Control[] children = root.getChildren();
-		for (int i = 0; i < children.length; ++i) {
-			final Control candidate = children[i];
-			if (candidate instanceof Composite) {
-				Control c = findControl((Composite) candidate, clazz, value, criteria);
-				if (c != null) return c;
-			} else {
-				if (clazz.isAssignableFrom(candidate.getClass())) {
-					if (criteria == null || criteria.test(candidate, value)) return candidate;
-				}
-			}
-		}
-		return null;
-	}
-	
-	/**
-	 * Finds a Control in a Composite hierarchy with the specified text string.
-	 * Note: clazz must specify a Control subclass that defines getText()
-	 * 
-	 * @param root the root of the hierarchy to search
-	 * @param clazz the Class representing the precise type of Control to find
-	 * @param text the text string to find
-	 * @return the first matching Control, or null if none found.
-	 */
-	public static Control findControlWithText(Composite root, Class clazz, String text) {
-		return findControl(root, clazz, text, new ICriteria() {
-			public boolean test(Object control, Object value) {
-				// getText is only defined on certain subclasses of Composite
-				// so we must use reflection to find the method
-				try {
-					Method m = control.getClass().getMethod("getText", new Class[0]);
-					String text = (String) m.invoke(control, new Object[0]);
-					return value.equals(stripMnemonicEscapes(text));
-				} catch (Exception e) {
-					e.printStackTrace();
-					Assert.fail("Could not invoke method getText()");
-				}
-				return false;
-			}
-		});
-	}
-
-	/**
-	 * Posts a fake event to the queue.
-	 * Fills in the event type and widget fields.
-	 * @param event the Event
-	 */
-	public static void postEvent(final Widget widget, final int eventType, final Event event) {
-		Display display = widget.getDisplay();
-		event.type = eventType;
-		event.widget = widget;
-		display.asyncExec(new Runnable() {
-			public void run() {
-				widget.notifyListeners(eventType, event);
-			}
-		});
-	}
-	
-	/**
-	 * Strips mnemonic escapes from a text label.
-	 */
-	public static String stripMnemonicEscapes(String label) {
-		StringBuffer buf = new StringBuffer();
-		int length = label.length();
-		for (int i = 0; i < length; ++i) {
-			char c = label.charAt(i);
-			if (c == '&') {
-				i += 1;
-				if (i < length) c = label.charAt(i);
-			}
-			buf.append(c);
-		}
-		return buf.toString();
-	}
-	
-	/**
-	 * Process pending events for the current display, until at least the
-	 * specified number of milliseconds elapses.
-	 */
-	public static void processEventsUntil(int hiatus) {
-		Display display = Display.getCurrent();
-		Assert.assertNotNull(display);
-		final boolean done[] = new boolean[] { hiatus == 0 };
-		if (hiatus != 0) display.timerExec(hiatus, new Runnable() {
-			public void run() { done[0] = true; }
-		});
-		for (;;) {
-			while (display.readAndDispatch());
-			if (done[0]) return;
-			display.sleep();
-		}
-	}
-	
-	/**
-	 * Process pending events for the current display, until resumed by the user.
-	 * Very useful for inspecting intermediate results while debugging.
-	 */
-	public static void processEventsUntilResumed(String title) {
-		Display display = Display.getCurrent();
-		Assert.assertNotNull(display);
-		Shell shell = new Shell(display, SWT.CLOSE);
-		shell.setText("Close me to resume: " + title);
-		shell.setBounds(0, 0, 500, 30);
-		shell.open();
-		while (! shell.isDisposed()) {
-			while (! display.readAndDispatch()) display.sleep();
-		}
-	}
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/Waiter.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/Waiter.java
deleted file mode 100644
index 8fb0204..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/Waiter.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui;
-
-
-
-/**
- * Abstract listener used for the generic problem of waiting for
- * something to happen and retrieving some related information.
- * e.g. Waiting for a window with a given title to open and getting its handle.
- */
-public abstract class Waiter {
-	/**
-	 * Called when the desired event has occurred.
-	 * @param object an object related to the event, type depends on the context
-	 * @return true to keep waiting, otherwise false
-	 */
-	public abstract boolean notify(Object object);
-	
-	/**
-	 * Called after each unsuccessful poll for the event.
-	 * @return true to keep waiting, otherwise false
-	 */
-	public boolean keepWaiting() {
-		return true;
-	}
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/benchmark/AllTests.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/benchmark/AllTests.java
deleted file mode 100644
index 29c6e3f..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/benchmark/AllTests.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui.benchmark;
-
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-public class AllTests extends TestSuite {
-	public static Test suite() {
-		TestSuite suite = new TestSuite();
-		suite.addTestSuite(SyncTests.class);
-		suite.addTestSuite(WorkflowTests.class);
-		//suite.addTestSuite(CommandTests.class);
-    	return new BenchmarkTestSetup(suite);
-	}	
-	
-	public AllTests(String name) {
-		super(name);
-	}
-	public AllTests() {
-		super();
-	}
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/benchmark/BenchmarkTestSetup.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/benchmark/BenchmarkTestSetup.java
deleted file mode 100644
index 4dc5184..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/benchmark/BenchmarkTestSetup.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui.benchmark;
-
-
-import java.io.File;
-import java.io.IOException;
-import java.net.URL;
-
-import junit.framework.Test;
-import org.eclipse.core.runtime.IPluginDescriptor;
-import org.eclipse.core.runtime.IPluginRegistry;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.team.tests.ccvs.core.CVSTestSetup;
-
-public class BenchmarkTestSetup extends CVSTestSetup {
-	public static final File BIG_ZIP_FILE;
-	public static final File SMALL_ZIP_FILE;
-	public static final File TINY_ZIP_FILE;
-
-	// Static initializer for constants
-	static {
-		try {
-			BIG_ZIP_FILE = getTestFile("benchmarkBig.zip");
-			SMALL_ZIP_FILE = getTestFile("benchmarkSmall.zip");
-			TINY_ZIP_FILE = getTestFile("benchmarkTiny.zip");
-		} catch (IOException e) {
-			throw new Error(e.getMessage());
-		}
-	}
-	
-	public static File getTestFile(String name) throws IOException {
-		IPluginRegistry registry = Platform.getPluginRegistry();
-		IPluginDescriptor descriptor = registry.getPluginDescriptor("org.eclipse.team.tests.cvs.core");
-		URL baseURL = descriptor.getInstallURL();
-		URL url = new URL(baseURL, "resources/BenchmarkTest/" + name);
-		url = Platform.asLocalURL(url);
-		if (url.getProtocol().equals("file")) {
-			return new File(url.getFile()).getAbsoluteFile();
-		}
-		throw new IOException("Cannot find test file: " + name);
-	}
-
-	public BenchmarkTestSetup(Test test) {
-		super(test);
-	}
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/benchmark/CommandTests.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/benchmark/CommandTests.java
deleted file mode 100644
index 38b71ec..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/benchmark/CommandTests.java
+++ /dev/null
@@ -1,237 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui.benchmark;
-
-
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Set;
-import java.util.TreeSet;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceVisitor;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.client.Command.KSubstOption;
-import org.eclipse.team.tests.ccvs.core.CommandLineCVSClient;
-import org.eclipse.team.tests.ccvs.core.EclipseCVSClient;
-import org.eclipse.team.tests.ccvs.core.ICVSClient;
-import org.eclipse.team.tests.ccvs.ui.CVSUITestCase;
-import org.eclipse.team.tests.ccvs.ui.Util;
-
-public class CommandTests extends CVSUITestCase {
-	private String baseName;
-	private IProject referenceProject;
-	private IProject eclipseProject;
-	private IProject uiProject;
-	
-	public CommandTests(String name) {
-		super(name);
-	}
-	public CommandTests() {
-		super("");
-	}
-	public static Test suite() {
-    	return new BenchmarkTestSetup(new TestSuite(CommandTests.class));
-	}
-
-	public void setUp() throws Exception {
-		super.setUp();
-		baseName = Util.makeUniqueName(null, getName(), null);
-		referenceProject = Util.createProject(baseName + "-reference");
-		eclipseProject = Util.createProject(baseName + "-eclipse");
-		uiProject = Util.createProject(baseName);
-	}
-	
-	public void testImportAddCommitCheckout() throws Throwable {
-		// import a project using each client
-		new ComparativeTest("import/add/commit big project") {
-			protected void runCommandTest(final IContainer localRoot, ICVSClient client) throws Exception {
-				// use the import command to create a new module
-				IFolder folder = localRoot.getFolder(new Path("empty_folder"));
-				folder.create(false /*force*/, true /*local*/, null);
-				execute(client, "import empty module", folder, "import",
-					new String[] { },
-					new String[] { "-m", "initial import" },
-					new String[] { localRoot.getName(), "vendor", "start" });
-				folder.delete(false /*force*/, null);
-				
-				// checkout the project
-				localRoot.delete(false /*force*/, null);
-				execute(client, "checkout module", localRoot.getParent(), "co",
-					new String[] { },
-					new String[] { },
-					new String[] { localRoot.getName() });
-				
-				// prepare contents
-				prepareContents(localRoot);
-
-				// determine the set of files and folders to be added
-				final Map /* from KSubstOption to String */ files = new HashMap();
-				final Set /* of String */ folders = new TreeSet();
-				final int trim = localRoot.getProjectRelativePath().segmentCount();
-				localRoot.accept(new IResourceVisitor() {
-					public boolean visit(IResource resource) throws CoreException {
-						if (! resource.equals(localRoot)) {
-							String name = resource.getProjectRelativePath().removeFirstSegments(trim).toString();
-							if (resource.getType() == IResource.FILE) {
-								KSubstOption ksubst = KSubstOption.fromFile((IFile) resource);
-									Set set = (Set) files.get(ksubst);
-									if (set == null) {
-										set = new HashSet();
-										files.put(ksubst, set);
-									}
-								set.add(name);
-							} else {
-								folders.add(name);
-							}
-						}
-						return true;
-					}
-				}, IResource.DEPTH_INFINITE, false);
-				
-				// add all folders
-				if (!folders.isEmpty()) {
-					executeInParts(client, "add folders", localRoot, "add",
-						new String[] { },
-						new String[] { },
-						(String[])folders.toArray(new String[folders.size()]));
-				}
-				// add all files
-				for (Iterator it = files.entrySet().iterator(); it.hasNext();) {
-					Map.Entry entry = (Map.Entry) it.next();
-					KSubstOption ksubst = (KSubstOption) entry.getKey();
-					Set set = (Set) entry.getValue();
-					executeInParts(client, "add files (" + ksubst.getShortDisplayText() + ")", localRoot, "add",
-						new String[] { },
-						new String[] { ksubst.toString() },
-						(String[])set.toArray(new String[set.size()]));
-				}
-				
-				// commit everything
-				execute(client, "commit module", localRoot, "ci",
-					new String[] { },
-					new String[] { "-m", "dummy message" },
-					new String[] { });
-			}
-			protected void runUITest(IContainer localRoot) throws Exception {
-				prepareContents(localRoot);
-				actionShareProject(uiProject);
-				syncCommitResources(new IResource[] { uiProject }, null, "initial");
-			}
-			private void prepareContents(IContainer localRoot) throws Exception {
-				Util.importZip(localRoot, BenchmarkTestSetup.BIG_ZIP_FILE);
-			}
-		}.run();
-		
-		// check it out using each client
-		new ComparativeTest("checkout big project") {
-			protected void runCommandTest(IContainer localRoot, ICVSClient client) throws Exception {
-				execute(client, "checkout module", localRoot.getParent(), "co",
-					new String[] { },
-					new String[] { "-P" },
-					new String[] { localRoot.getName() });
-			}
-			protected void runUITest(IContainer localRoot) throws Exception {
-				actionCheckoutProjects(new String[] { localRoot.getName() }, new CVSTag[] { CVSTag.DEFAULT });
-			}
-			protected void setUp(IContainer localRoot) throws Exception {
-				// delete then recreate the container
-				IProject project = (IProject) localRoot;			
-				Util.deleteProject(project);
-				project.create(null);
-				project.open(null);
-				// delete the .project file (avoid .project is in the way error)
-				IFile file = project.getFile(".project");
-				file.delete(false /*force*/, null);
-			}
-		}.run();
-	}
-	
-	protected abstract class ComparativeTest {
-		private String name;
-		public ComparativeTest(String name) {
-			this.name = name;
-		}
-		public void run() throws Exception {
-			startGroup(name);
-			
-			startGroup("command line client");
-			setUp(referenceProject);
-			runCommandTest(referenceProject, CommandLineCVSClient.INSTANCE);
-			tearDown(referenceProject);
-			endGroup();
-			
-			startGroup("eclipse client");
-			setUp(eclipseProject);
-			runCommandTest(eclipseProject, EclipseCVSClient.INSTANCE);
-			tearDown(eclipseProject);
-			endGroup();
-			
-			startGroup("user interface");
-			setUp(uiProject);
-			runUITest(uiProject);
-			tearDown(uiProject);
-			endGroup();
-			
-			endGroup();
-		}
-		protected abstract void runCommandTest(IContainer localRoot, ICVSClient client) throws Exception ;
-		protected abstract void runUITest(IContainer localRoot) throws Exception;
-		protected void setUp(IContainer localRoot) throws Exception {
-		}
-		protected void tearDown(IContainer localRoot) throws Exception {
-		}
-		protected void execute(ICVSClient client, String taskname,
-			IContainer localRoot, String command,
-			String[] globalOptions, String[] localOptions, String[] arguments) throws CVSException {
-			// The execution time for the client will include overhead associated with
-			// computing the command to be run and cleaning up Eclipse state once it has
-			// completed, including notifying resource delta listener.  Since all clients
-			// in the Eclipse environment are subject to this overhead, the theory is that
-			// it will be a constant factor that we can neglect.
-			startTask(taskname);
-			client.executeCommand(testRepository, localRoot, command, globalOptions, localOptions, arguments);
-			endTask();
-		}
-		protected void executeInParts(ICVSClient client, String taskname,
-			IContainer localRoot, String command,
-			String[] globalOptions, String[] localOptions, String[] arguments) throws CVSException {
-			// There are problems executing commands with too many arguments
-			// so we have to break them up into chunks.
-			startTask(taskname);
-			int i = 0;
-			do {
-				int len = Math.min(200, arguments.length - i);
-				String[] args;
-				if (i == 0 && len == arguments.length) {
-					args = arguments;
-				} else {
-					args = new String[len];
-					System.arraycopy(arguments, i, args, 0, len);
-				}
-				client.executeCommand(testRepository, localRoot, command, globalOptions, localOptions, args);
-				i += len;
-			} while (arguments.length - i > 0);
-			endTask();
-		}
-	}
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/benchmark/SyncTests.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/benchmark/SyncTests.java
deleted file mode 100644
index 192e3bd..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/benchmark/SyncTests.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui.benchmark;
-
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.tests.ccvs.ui.CVSUITestCase;
-import org.eclipse.team.tests.ccvs.ui.SequenceGenerator;
-import org.eclipse.team.tests.ccvs.ui.Util;
-
-public class SyncTests extends CVSUITestCase {
-	private static final int FILE_SIZE_MEAN = 16384;
-	private static final int FILE_SIZE_VARIANCE = 0;
-	private static final int PROB_BINARY = 0;
-	
-	public SyncTests(String name) {
-		super(name);
-	}
-	public SyncTests() {
-		super("");
-	}
-
-	public static Test suite() {
-    	return new BenchmarkTestSetup(new TestSuite(SyncTests.class));
-	}
-
-	public void testSync0() throws Exception {
-		// test sync on project with no changes
-		IProject project = setupOutProject();
-		startGroup("test sync with no changes");
-		syncCommitResources(new IResource[] { project }, null, "");
-		endGroup();
-	}
-
-	public void testSync1() throws Exception {
-		runTestSync(1);
-	}
-
-	public void testSync10() throws Exception {
-		runTestSync(10);
-	}
-
-	public void testSync100() throws Exception {
-		runTestSync(100);
-	}
-
-	protected IProject setupOutProject() throws Exception {
-		IProject project = createAndImportProject("testSync", BenchmarkTestSetup.SMALL_ZIP_FILE);
-		disableLog();
-		actionShareProject(project);
-		syncCommitResources(new IResource[] { project }, null, "initial");
-		enableLog();
-		return project;
-	}
-	
-	/**
-	 * Runs a sequence of operations for the synchronizer tests.
-	 * A parallel project is used to generate incoming changes.
-	 */
-	protected void runTestSync(int size) throws Exception {
-		final SequenceGenerator gen = new SequenceGenerator();
-
-		// setup out project then move it out of the way
-		IProject outProject = setupOutProject();
-		String moduleName = outProject.getName();
-		Util.renameResource(outProject, moduleName + "out");
-		outProject = Util.getProject(moduleName + "out");
-
-		// setup in project
-		disableLog();
-		actionCheckoutProjects(new String[] { moduleName }, new CVSTag[] { new CVSTag() });
-		enableLog();
-		IProject inProject = Util.getProject(moduleName);
-		
-		/*** outgoing and incoming changes ***/
-		startGroup("synchronize " + size + " added file(s)");
-		Util.createRandomDeepFiles(gen, outProject, size, FILE_SIZE_MEAN, FILE_SIZE_VARIANCE, PROB_BINARY);
-		startGroup("as outgoing changes");
-		syncCommitResources(new IResource[] { outProject }, null, "");
-		endGroup();
-		startGroup("as incoming changes");
-		syncUpdateResources(new IResource[] { inProject }, null);
-		endGroup();
-		endGroup();
-		
-		startGroup("synchronize " + size + " modified file(s)");
-		Util.modifyRandomDeepFiles(gen, outProject, size);
-		startGroup("as outgoing changes");
-		syncCommitResources(new IResource[] { outProject }, null, "");
-		endGroup();
-		startGroup("as incoming changes");
-		syncUpdateResources(new IResource[] { inProject }, null);
-		endGroup();
-		endGroup();
-
-		startGroup("synchronize " + size + " removed file(s)");
-		Util.deleteRandomDeepFiles(gen, outProject, size);
-		startGroup("as outgoing changes");
-		syncCommitResources(new IResource[] { outProject }, null, "");
-		endGroup();
-		startGroup("as incoming changes");
-		syncUpdateResources(new IResource[] { inProject }, null);
-		endGroup();
-		endGroup();
-	}
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/benchmark/WorkflowTests.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/benchmark/WorkflowTests.java
deleted file mode 100644
index 45f8bca..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/benchmark/WorkflowTests.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui.benchmark;
-
-
-import java.io.File;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.tests.ccvs.ui.CVSUITestCase;
-import org.eclipse.team.tests.ccvs.ui.SequenceGenerator;
-import org.eclipse.team.tests.ccvs.ui.Util;
-
-public class WorkflowTests extends CVSUITestCase {
-	private int FILE_SIZE_MEAN = 16384;
-	private int FILE_SIZE_VARIANCE = 12288;
-	private int PROB_BINARY = 5;
-	public WorkflowTests(String name) {
-		super(name);
-	}
-	public WorkflowTests() {
-		super("");
-	}
-
-	public static Test suite() {
-    	return new BenchmarkTestSetup(new TestSuite(WorkflowTests.class));
-		//return new BenchmarkTestSetup(new WorkflowTests("testTinyWorkflow"));
-	}
-
-	public void testBigWorkflow() throws Exception {
-		runWorkflowTests("testBig", BenchmarkTestSetup.BIG_ZIP_FILE);
-	}
-	
-	public void testSmallWorkflow() throws Exception {
-		runWorkflowTests("testSmall", BenchmarkTestSetup.SMALL_ZIP_FILE);
-	}
-
-	public void testTinyWorkflow() throws Exception {
-		runWorkflowTests("testTiny", BenchmarkTestSetup.TINY_ZIP_FILE);
-	}
-
-	/**
-	 * Runs a series of incoming and outgoing workflow-related tests.
-	 */
-	protected void runWorkflowTests(String name, File initialContents) throws Exception {
-		final SequenceGenerator gen = new SequenceGenerator();
-		IProject outProject = createAndImportProject(name, initialContents);
-		
-		// test project sharing
-		startGroup("test project sharing");
-		actionShareProject(outProject);
-		endGroup();
-		
-		// test initial project commit
-		startGroup("test initial project commit");
-		syncCommitResources(new IResource[] { outProject }, null, "initial");
-		endGroup();
-		
-		// move the project out of the way
-		String moduleName = outProject.getName();
-		Util.renameResource(outProject, moduleName + "out");
-		outProject = Util.getProject(moduleName + "out");
-		
-		// test initial project checkout
-		startGroup("test initial project checkout");
-		actionCheckoutProjects(new String[] { moduleName }, new CVSTag[] { new CVSTag() });
-		endGroup();
-		IProject inProject = Util.getProject(moduleName);
-		
-		// test scenarios
-		startGroup("test incoming and outgoing change scenarios");
-		startGroup("adding a new component - localized additions and some changes");
-		Util.modifyRandomDeepFiles(gen, outProject, 5);
-		Util.touchRandomDeepFiles(gen, outProject, 2);
-		IFolder componentRoot = Util.createRandomDeepFolder(gen, outProject);
-		Util.createRandomDeepFiles(gen, componentRoot, 12, FILE_SIZE_MEAN, FILE_SIZE_VARIANCE, PROB_BINARY);
-		syncCommitResources(new IResource[] { outProject }, null, "");
-		endGroup();		
-
-		startGroup("catching up to a new component - localized additions and some changes");
-		syncUpdateResources(new IResource[] { inProject }, null);
-		endGroup();
-
-		startGroup("fixing a bug - localized changes");
-		Util.modifyRandomDeepFiles(gen, componentRoot, 2);
-		Util.touchRandomDeepFiles(gen, componentRoot, 2);
-		syncCommitResources(new IResource[] { outProject }, null, "");
-		endGroup();
-
-		startGroup("catching up to a bug fix - localized changes");
-		syncUpdateResources(new IResource[] { inProject }, null);
-		endGroup();
-		
-		startGroup("moving a package - scattered changes, files moved");
-		Util.modifyRandomDeepFiles(gen, outProject, 5);        // a few scattered changes
-		Util.modifyRandomDeepFiles(gen, componentRoot, 12); // changes to "package" stmt
-		Util.renameResource(componentRoot, Util.makeUniqueName(gen, "folder", null));
-		syncCommitResources(new IResource[] { outProject }, null, "");
-		endGroup();
-
-		startGroup("catching up to a moved package - scattered changes, files moved");
-		syncUpdateResources(new IResource[] { inProject }, null);
-		endGroup();
-		
-		startGroup("big refactoring - scattered changes, files renamed and balanced additions/deletions");		
-		Util.deleteRandomDeepFiles(gen, outProject, 4);  // some stuff deleted
-		Util.modifyRandomDeepFiles(gen, outProject, 20); // many scattered changes
-		Util.renameRandomDeepFiles(gen, outProject, 5);  // renamed some stuff
-		Util.createRandomDeepFiles(gen, outProject, 4, FILE_SIZE_MEAN, FILE_SIZE_VARIANCE, PROB_BINARY);  // some new stuff added
-		syncCommitResources(new IResource[] { outProject }, null, "");
-		endGroup();
-
-		startGroup("catching up to a big refactoring - scattered changes, files renamed and balanced additions/deletions");		
-		syncUpdateResources(new IResource[] { inProject }, null);
-		endGroup();
-		endGroup();
-
-		// test tagging a project
-		startGroup("tag project");
-		actionCVSTag(new IResource[] { outProject }, "v101");
-		endGroup();
-
-		// replace with remote contents
-		startGroup("test replace with remote contents scenarios");
-		startGroup("no local dirty files, no remote changes");
-		actionReplaceWithRemote(new IResource[] { inProject });
-		endGroup();
-
-		startGroup("abandoning some local work, no remote changes");
-		Util.deleteRandomDeepFiles(gen, inProject, 4); // some stuff locally deleted
-		Util.modifyRandomDeepFiles(gen, inProject, 6); // a few unimportant changes to forget
-		Util.createRandomDeepFiles(gen, inProject, 4, FILE_SIZE_MEAN, FILE_SIZE_VARIANCE, PROB_BINARY); // some new work to abandon
-		actionReplaceWithRemote(new IResource[] { inProject });
-		endGroup();
-
-		startGroup("no local dirty files, many remote changes");
-		// e.g. returning from a long vacation
-		Util.deleteRandomDeepFiles(gen, outProject, 10); // some components obsoleted
-		Util.modifyRandomDeepFiles(gen, outProject, 42); // many changes
-		Util.renameRandomDeepFiles(gen, outProject, 8);  // evidence of some refactoring
-		Util.createRandomDeepFiles(gen, outProject, 10, FILE_SIZE_MEAN, FILE_SIZE_VARIANCE, PROB_BINARY); // a few new components added
-		disableLog();
-		syncCommitResources(new IResource[] { outProject }, null, "");
-		enableLog();
-		actionReplaceWithRemote(new IResource[] { inProject });
-		endGroup();
-		endGroup();
-	}
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/ArgumentParser.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/ArgumentParser.java
deleted file mode 100644
index aa6ca69..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/ArgumentParser.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui.logformatter;
-
-
-public class ArgumentParser {
-	protected ArgumentParser() {
-	}
-	
-	public boolean parse(String[] args) {
-		int index = 0;
-		String option = null;
-		for (int i = 0; i < args.length; i++) {
-			String arg = args[i];
-			if (arg == null) continue;
-			if (arg.charAt(0) == '-') {
-				if (option != null && ! handleOption(option, null)) return false;
-				option = arg;
-			} else if (option != null) {
-				if (! handleOption(option, arg)) return false;
-				option = null;
-			} else {
-				if (! handleArgument(index++, arg)) return false;
-			}
-		}
-		if (option != null && ! handleOption(option, null)) return false;
-		return handleFinished();
-	}
-	
-	protected boolean handleFinished() {
-		return true;
-	}
-	
-	protected boolean handleArgument(int index, String arg) {
-		return false;
-	}
-	
-	protected boolean handleOption(String option, String arg) {
-		return false;
-	}
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/CaseEntry.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/CaseEntry.java
deleted file mode 100644
index 754c680..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/CaseEntry.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui.logformatter;
-
-
-import org.xml.sax.Attributes;
-
-public class CaseEntry extends LogEntryContainer {
-	private String className;
-	
-	public CaseEntry(LogEntryContainer parent, Attributes attributes) {
-		this(parent, attributes.getValue("name"), attributes.getValue("class"));
-	}
-	
-	public CaseEntry(LogEntryContainer parent, String name, String className) {
-		super(parent, name);
-		this.className = (className != null) ? className : "unknown";
-	}
-	
-	public void accept(ILogEntryVisitor visitor) {
-		visitor.visitCaseEntry(this);
-	}
-	
-	/**
-	 * Returns the class name of the test case.
-	 */
-	public String getClassName() {
-		return className;
-	}	
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/DelimitedValuesWriter.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/DelimitedValuesWriter.java
deleted file mode 100644
index 6620435..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/DelimitedValuesWriter.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui.logformatter;
-
-
-import java.io.PrintStream;
-
-public class DelimitedValuesWriter {
-	private static final String BEGIN_QUOTE = "\"";
-	private static final String END_QUOTE = "\"";
-	private PrintStream ps;
-	private String delimiter;
-	private boolean quoted;
-	private boolean firstField;
-	
-	public DelimitedValuesWriter(PrintStream ps, String delimiter, boolean quoted) {
-		this.ps = ps;
-		this.delimiter = delimiter;
-		this.quoted = quoted;
-		this.firstField = true;
-	}
-	
-	public void printField(String field) {
-		if (firstField) {
-			firstField = false;
-		} else {
-			ps.print(delimiter);
-		}
-		if (quoted) ps.print(BEGIN_QUOTE);
-		ps.print(field);
-		if (quoted) ps.print(END_QUOTE);
-	}
-	public void printFields(String[] fields) {
-		for (int i = 0; i < fields.length; i++) {
-			printField(fields[i]);
-		}
-	}
-	public void printRecord(String[] fields) {
-		printFields(fields);
-		endRecord();
-	}
-	public void endRecord() {
-		ps.println();
-		firstField = true;
-	}
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/GroupEntry.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/GroupEntry.java
deleted file mode 100644
index 6a59cdf..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/GroupEntry.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui.logformatter;
-
-
-import org.xml.sax.Attributes;
-
-public class GroupEntry extends LogEntryContainer {
-	public GroupEntry(LogEntryContainer parent, Attributes attributes) {
-		this(parent, attributes.getValue("name"));
-	}
-	
-	public GroupEntry(LogEntryContainer parent, String name) {
-		super(parent, name);
-	}
-	
-	public void accept(ILogEntryVisitor visitor) {
-		visitor.visitGroupEntry(this);
-	}
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/ILogEntryVisitor.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/ILogEntryVisitor.java
deleted file mode 100644
index dce734c..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/ILogEntryVisitor.java
+++ /dev/null
@@ -1,19 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui.logformatter;
-
-
-public interface ILogEntryVisitor {
-	public void visitRootEntry(RootEntry entry);
-	public void visitCaseEntry(CaseEntry entry);
-	public void visitGroupEntry(GroupEntry entry);
-	public void visitTaskEntry(TaskEntry entry);
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/LogEntry.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/LogEntry.java
deleted file mode 100644
index 3650b93..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/LogEntry.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui.logformatter;
-
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-
-import junit.framework.Assert;
-import org.xml.sax.Attributes;
-import org.xml.sax.ContentHandler;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-import org.xml.sax.XMLReader;
-import org.xml.sax.helpers.DefaultHandler;
-import org.xml.sax.helpers.XMLReaderFactory;
-
-public abstract class LogEntry {
-	LogEntryContainer parent;
-	String name;
-	
-	/**
-	 * Creates a new log entry with the specified parent.
-	 * @param parent the parent container
-	 * @param name the name of the entry
-	 */
-	public LogEntry(LogEntryContainer parent, String name) {
-		this.parent = parent;
-		this.name = name != null ? name : "unknown";
-		if (parent != null) parent.addEntry(this);
-	}
-	
-	/**
-	 * Accepts a visitor.
-	 * @param visitor the visitor
-	 */
-	public abstract void accept(ILogEntryVisitor visitor);
-	
-	/**
-	 * Returns the name of this entry.
-	 */
-	public String getName() {
-		return name;
-	}
-	
-	/**
-	 * Returns the parent container of this entry, or null if none.
-	 */
-	public LogEntryContainer getParent() {
-		return parent;
-	}
-	
-	/**
-	 * Reads an array of log entries from a file.
-	 * @return the log entries
-	 */
-	public static RootEntry readLog(File file) throws IOException, SAXException {
-		XMLReader reader = XMLReaderFactory.createXMLReader("org.apache.xerces.parsers.SAXParser");
-		LogContentHandler contentHandler = new LogContentHandler();
-		reader.setContentHandler(contentHandler);
-		reader.parse(new InputSource(new FileInputStream(file)));
-		return contentHandler.getLogEntries();
-	}
-	
-	private static class LogContentHandler extends DefaultHandler implements ContentHandler {
-		private RootEntry root = null;
-		private LogEntry current = null;
-		
-		public RootEntry getLogEntries() {
-			return root;
-		}
-		public void startElement(String uri, String localName, String qName, Attributes attributes)
-			throws SAXException {
-			if ("log".equals(localName)) {
-				Assert.assertNull(current);
-				current = root = new RootEntry(null, attributes);
-			} else if ("case".equals(localName)) {
-				Assert.assertNotNull(current);
-				Assert.assertTrue(current instanceof RootEntry);
-				current = new CaseEntry((LogEntryContainer) current, attributes);
-			} else if ("group".equals(localName)) {
-				Assert.assertNotNull(current);
-				Assert.assertTrue(current instanceof CaseEntry || current instanceof GroupEntry);
-				current = new GroupEntry((LogEntryContainer) current, attributes);
-			} else if ("task".equals(localName)) {
-				Assert.assertNotNull(current);
-				Assert.assertTrue(current instanceof CaseEntry || current instanceof GroupEntry);
-				current = new TaskEntry((LogEntryContainer) current, attributes);
-			} else if ("result".equals(localName)) {
-				Assert.assertNotNull(current);
-				Assert.assertTrue(current instanceof TaskEntry);
-				((TaskEntry) current).addResult(new Result(attributes));
-			} else if ("abort".equals(localName)) {
-				// currently we ignore failure entries
-				// XXX need a good way to represent failures
-			} else if ("trace".equals(localName)) {
-				// currently we ignore stack frames associated with failure entries
-			} else if ("status".equals(localName)) {
-				// currently we ignore status associated with failure entries
-			} else {
-				throw new SAXException("Unrecognized element: " + localName);
-			}
-		}
-		public void endElement(String uri, String localName, String qName)
-			throws SAXException {
-			Assert.assertNotNull(current);
-			if ("result".equals(localName) || "abort".equals(localName) ||
-				"trace".equals(localName) || "status".equals(localName)) {
-				// nothing to do
-			} else {
-				current = current.getParent();
-			}
-		}
-	}
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/LogEntryContainer.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/LogEntryContainer.java
deleted file mode 100644
index 9692f08..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/LogEntryContainer.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui.logformatter;
-
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-public abstract class LogEntryContainer extends LogEntry {
-	private List /* of LogEntry */ list = new ArrayList();
-	
-	public LogEntryContainer(LogEntryContainer parent, String name) {
-		super(parent, name);
-	}
-
-	/**
-	 * Accepts a visitor for each child in the order in which they are listed.
-	 * @param visitor the visitor
-	 */
-	public void acceptChildren(ILogEntryVisitor visitor) {
-		Iterator it = list.iterator();
-		while (it.hasNext()) {
-			LogEntry entry = (LogEntry) it.next();
-			entry.accept(visitor);
-		}
-	}
-	
-	/**
-	 * Returns the list of children in this container.
-	 */
-	public LogEntry[] members() {
-		return (LogEntry[]) list.toArray(new LogEntry[list.size()]);
-	}
-	
-	/**
-	 * Returns the member with the specified name and class.
-	 */
-	public LogEntry findMember(String name, Class clazz) {
-		Iterator it = list.iterator();
-		while (it.hasNext()) {
-			LogEntry entry = (LogEntry) it.next();
-			if (name.equals(entry.getName()) &&
-				clazz.isAssignableFrom(entry.getClass())) return entry;
-		}
-		return null;
-	}
-	
-	/*
-	 * Adds the specified entry to the end of the list.
-	 */
-	void addEntry(LogEntry entry) {
-		list.add(entry);
-	}
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/LogFormatterUIMain.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/LogFormatterUIMain.java
deleted file mode 100644
index 6f12258..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/LogFormatterUIMain.java
+++ /dev/null
@@ -1,188 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui.logformatter;
-
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.FileDialog;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.TabFolder;
-import org.eclipse.swt.widgets.TabItem;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * Quick and dirty UI frontend for the log formatters.
- */
-public class LogFormatterUIMain {
-	
-	public LogFormatterUIMain() {
-	}
-	
-	public static void main(String[] args) {
-		new LogFormatterUIMain().run();
-	}
-	
-	public void run() {
-		Display display = new Display();
-		Shell shell = new Shell(display);
-
-		shell.setText("Log Formatter UI");
-		createContents(shell);
-		
-		shell.setSize(500, 300);
-		shell.open();
-		while (! shell.isDisposed()) {
-			if (! display.readAndDispatch()) display.sleep();
-		}
-		shell.dispose();
-		display.dispose();
-	}
-	
-	protected void createContents(Composite parent) {
-		parent.setLayout(new FillLayout());
-		TabFolder tabFolder = new TabFolder(parent, SWT.NONE);
-		createSummaryTabContents(new TabItem(tabFolder, SWT.NONE));
-		createDiffTabContents(new TabItem(tabFolder, SWT.NONE));
-	}
-	
-	protected void createSummaryTabContents(TabItem item) {
-		Composite top = new Composite(item.getParent(), SWT.NONE);
-		item.setControl(top);
-		item.setText("Create Log Summary");
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 3;
-		top.setLayout(layout);
-		
-		final Text logFileText = createFileSelector(top, "Log file path: ");
-		final Text outputFileText = createFileSelector(top, "Output file path: ");
-
-		final Button csvCheckButton = new Button(top, SWT.CHECK);
-		csvCheckButton.setText("Produce comma separated values data");
-		GridData data = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING | GridData.VERTICAL_ALIGN_CENTER);
-		data.horizontalSpan = 3;
-		csvCheckButton.setLayoutData(data);
-
-		final Button rawCheckButton = new Button(top, SWT.CHECK);
-		rawCheckButton.setText("Do not merge results from successive iterations");
-		data = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING | GridData.VERTICAL_ALIGN_CENTER);
-		data.horizontalSpan = 3;
-		rawCheckButton.setLayoutData(data);
-
-		createRunButton(top, new Runnable() {
-			public void run() {
-				PrintSummaryMain.main(new String[] {
-					logFileText.getText(),
-					"-out", outputFileText.getText(),
-					csvCheckButton.getSelection() ? "-csv" : null,
-					rawCheckButton.getSelection() ? "-raw" : null });
-			}
-		});
-	}
-	
-	protected void createDiffTabContents(TabItem item) {
-		Composite top = new Composite(item.getParent(), SWT.NONE);
-		item.setControl(top);
-		item.setText("Create Log Diff");
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 3;
-		top.setLayout(layout);
-		
-		final Text newerLogFileText = createFileSelector(top, "Newer log file path: ");
-		final Text olderLogFileText = createFileSelector(top, "Older log file path: ");
-		final Text outputFileText = createFileSelector(top, "Output file path: ");
-
-		Label label = new Label(top, SWT.NONE);
-		label.setText("Threshold %");
-		label.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_CENTER));
-		
-		final Text thresholdText = new Text(top, SWT.BORDER);
-		thresholdText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_CENTER));
-		thresholdText.setText("0");
-		
-		new Label(top, SWT.NONE);
-
-		final Button csvCheckButton = new Button(top, SWT.CHECK);
-		csvCheckButton.setText("Produce comma separated values data");
-		GridData data = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING | GridData.VERTICAL_ALIGN_CENTER);
-		data.horizontalSpan = 3;
-		csvCheckButton.setLayoutData(data);
-		
-		final Button ignoreCheckButton = new Button(top, SWT.CHECK);
-		ignoreCheckButton.setText("Ignore negligible changes in results");
-		data = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING | GridData.VERTICAL_ALIGN_CENTER);
-		data.horizontalSpan = 3;
-		ignoreCheckButton.setLayoutData(data);
-
-		createRunButton(top, new Runnable() {
-			public void run() {
-				PrintDiffMain.main(new String[] {
-					newerLogFileText.getText(),
-					olderLogFileText.getText(),
-					"-out", outputFileText.getText(),
-					"-t", thresholdText.getText(),
-					csvCheckButton.getSelection() ? "-csv" : null,
-					ignoreCheckButton.getSelection() ? "-i" : null });
-			}
-		});
-	}
-	
-	protected Text createFileSelector(Composite parent, String labelText) {
-		Label label = new Label(parent, SWT.NONE);
-		label.setText(labelText);
-		label.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_CENTER));
-		
-		final Text text = new Text(parent, SWT.BORDER);
-		text.setLayoutData(new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_CENTER));
-		
-		Button browseButton = new Button(parent, SWT.PUSH);
-		browseButton.setText("Browse...");
-		browseButton.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event event) {
-				FileDialog dialog = new FileDialog(text.getShell(), SWT.OPEN);
-				dialog.setFileName(text.getText());
-				String name = dialog.open();
-				if (name != null) {
-					text.setText(name);
-				}
-			}
-		});
-		browseButton.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));
-		return text;
-	}
-	
-	protected Button createRunButton(Composite parent, final Runnable runnable) {
-		Label separator = new Label(parent, SWT.SEPARATOR | SWT.HORIZONTAL);
-		GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_END | GridData.GRAB_VERTICAL);
-		data.horizontalSpan = 3;
-		separator.setLayoutData(data);
-		
-		final Button runButton = new Button(parent, SWT.PUSH);
-		runButton.setText("Run");
-		data = new GridData(GridData.HORIZONTAL_ALIGN_END | GridData.VERTICAL_ALIGN_FILL);
-		data.horizontalSpan = 3;
-		runButton.setLayoutData(data);
-		runButton.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event event) {
-				runButton.getDisplay().asyncExec(runnable);
-			}
-		});
-		return runButton;
-	}
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/MergeRunsVisitor.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/MergeRunsVisitor.java
deleted file mode 100644
index 1a35031..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/MergeRunsVisitor.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui.logformatter;
-
-
-public class MergeRunsVisitor implements ILogEntryVisitor {
-	private RootEntry defaultRoot;
-	private RootEntry root;
-	private LogEntryContainer parent;
-	
-	/**
-	 * Creates a new visitor to merge series of log entries.
-	 * @param root the root of an existing log to merge into, or null
-	 */
-	public MergeRunsVisitor(RootEntry root) {
-		this.defaultRoot = root;
-		this.parent = null;
-	}
-	
-	/**
-	 * Returns the root of the newly merged log, or null if none.
-	 */
-	public RootEntry getMergedRoot() {
-		return root;
-	}
-	
-	public void visitRootEntry(RootEntry entry) {
-		root = defaultRoot;
-		if (root == null) {
-			root = new RootEntry(null, entry.getName(), entry.getSDKBuildId(), entry.getTimestamp());
-		} 
-		parent = root;
-		entry.acceptChildren(this);
-	}
-
-	public void visitCaseEntry(CaseEntry entry) {
-		LogEntryContainer oldParent = parent; 
-		CaseEntry newEntry = (CaseEntry) parent.findMember(entry.getName(), CaseEntry.class);
-		if (newEntry == null) {
-			newEntry = new CaseEntry(parent, entry.getName(), entry.getClassName());
-		}
-		parent = newEntry;
-		entry.acceptChildren(this);
-		parent = oldParent;
-	}
-
-	public void visitGroupEntry(GroupEntry entry) {
-		LogEntryContainer oldParent = parent;
-		GroupEntry newEntry = (GroupEntry) parent.findMember(entry.getName(), GroupEntry.class);
-		if (newEntry == null) {
-			newEntry = new GroupEntry(parent, entry.getName());
-		}
-		parent = newEntry;
-		entry.acceptChildren(this);
-		parent = oldParent;
-	}
-
-	public void visitTaskEntry(TaskEntry entry) {
-		TaskEntry newEntry = (TaskEntry) parent.findMember(entry.getName(), TaskEntry.class);
-		if (newEntry == null) {
-			newEntry = new TaskEntry(parent, entry.getName());
-		}
-		Result[] results = entry.getResults();
-		for (int i = 0; i < results.length; i++) {
-			newEntry.addResult(results[i]);
-		}
-	}
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/PrintCSVDiffVisitor.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/PrintCSVDiffVisitor.java
deleted file mode 100644
index 07ddb8f..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/PrintCSVDiffVisitor.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui.logformatter;
-
-
-public class PrintCSVDiffVisitor extends PrintDiffVisitor {
-	private static final String GROUP_DELIMITER = " / ";
-	private DelimitedValuesWriter writer;
-	private String caseName;
-	private String groupName;
-
-	/**
-	 * Creates a diff visitor that generates CSV output.
-	 * 
-	 * @param writer the delimited values writer
-	 * @see PrintDiffVisitor
-	 */
-	public PrintCSVDiffVisitor(DelimitedValuesWriter writer, RootEntry olderRoot, int threshold, boolean ignoreNegligible) {
-		super(olderRoot, threshold, ignoreNegligible);
-		this.writer = writer;
-	}
-	
-	protected void visitRootEntry(RootEntry entry, RootEntry olderEntry) {
-		entry.acceptChildren(this);
-	}
-	
-	protected void visitCaseEntry(CaseEntry entry, CaseEntry olderEntry) {
-		caseName = entry.getName();
-		groupName = null;
-		entry.acceptChildren(this);
-	}
-	
-	protected void visitGroupEntry(GroupEntry entry, GroupEntry olderEntry) {
-		String oldGroupName = groupName;
-		if (groupName == null) {
-			groupName = entry.getName();
-		} else {
-			groupName += GROUP_DELIMITER + entry.getName();
-		}
-		entry.acceptChildren(this);
-		groupName = oldGroupName;
-	}
-	
-	protected void visitTaskEntry(TaskEntry entry, TaskEntry olderEntry) {
-		writer.printFields(new String[] {
-			caseName, // case
-			groupName, // group
-			entry.getName() // task
-		});
-		printTaskEntry(entry);
-		printTaskEntry(olderEntry);
-		if (entry.getTotalRuns() != 0 && olderEntry.getTotalRuns() != 0) {
-			int olderMean = olderEntry.getAverageMillis();
-			int diff = entry.getAverageMillis() - olderMean;
-			if (isDifferenceUncertain(entry, olderEntry)) {
-				writer.printField("UNCERTAIN");
-			} else if (isDifferenceNegligible(entry, olderEntry)) {
-				writer.printField("NEGLIGIBLE");
-			} else {
-				writer.printField(diff > 0 ? "SLOWER" : "FASTER"); // change type
-			}
-			writer.printField(Integer.toString(Math.abs(diff))); // change
-			if (olderMean != 0) {
-				writer.printField(Util.formatPercentageRatio(Math.abs(diff), olderMean)); // % change
-			} else {
-				writer.printField("");
-			}
-		} else {
-			writer.printFields(new String[] { "", "", "" });
-		}
-		writer.endRecord();
-	}
-	
-	protected void printTaskEntry(TaskEntry entry) {
-		if (entry.getTotalRuns() != 0) {
-			int mean = entry.getAverageMillis();
-			writer.printFields(new String[] {
-				Integer.toString(entry.getTotalRuns()), // runs
-				Integer.toString(mean) // average
-			});
-			if (entry.getTotalRuns() > 1 && mean != 0) {
-				int confidence = entry.getConfidenceInterval();
-				writer.printFields(new String[] {
-					Integer.toString(confidence), // 95% confidence interval
-					Util.formatPercentageRatio(confidence, mean) // 95% c.i. as a percentage
-				});
-			} else {
-				writer.printFields(new String[] { "", "" });
-			}
-		} else {
-			writer.printFields(new String[] { "0", "", "", "" });
-		}
-	}
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/PrintCSVSummaryVisitor.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/PrintCSVSummaryVisitor.java
deleted file mode 100644
index 1b5dc14..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/PrintCSVSummaryVisitor.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui.logformatter;
-
-
-public class PrintCSVSummaryVisitor implements ILogEntryVisitor {
-	private static final String GROUP_DELIMITER = " / ";
-	private DelimitedValuesWriter writer;
-	private String caseName;
-	private String groupName;
-	
-	/**
-	 * Creates a visitor to print a log as comma-separated values.
-	 * @param writer the delimited values writer
-	 */
-	public PrintCSVSummaryVisitor(DelimitedValuesWriter writer) {
-		this.writer = writer;
-	}
-	
-	public void visitRootEntry(RootEntry entry) {
-		entry.acceptChildren(this);
-	}
-	
-	public void visitCaseEntry(CaseEntry entry) {
-		caseName = entry.getName();
-		groupName = null;
-		entry.acceptChildren(this);
-	}
-
-	public void visitGroupEntry(GroupEntry entry) {
-		String oldGroupName = groupName;
-		if (groupName == null) {
-			groupName = entry.getName();
-		} else {
-			groupName += GROUP_DELIMITER + entry.getName();
-		}
-		entry.acceptChildren(this);
-		groupName = oldGroupName;
-	}
-	
-	public void visitTaskEntry(TaskEntry entry) {
-		writer.printFields(new String[] {
-			caseName, // case
-			groupName, // group
-			entry.getName() // task
-		});
-		if (entry.getTotalRuns() != 0) {
-			int mean = entry.getAverageMillis();
-			writer.printFields(new String[] {
-				Integer.toString(entry.getTotalRuns()), // runs
-				Integer.toString(mean) // average
-			});
-			if (entry.getTotalRuns() > 1 && mean != 0) {
-				int confidence = entry.getConfidenceInterval();
-				writer.printFields(new String[] {
-					Integer.toString(confidence), // 95% confidence interval
-					Util.formatPercentageRatio(confidence, mean) // 95% c.i. as a percentage
-				});
-			} else {
-				writer.printFields(new String[] { "", "" });
-			}
-		} else {
-			writer.printFields(new String[] { "0", "", "", "" });
-		}
-		// append the result fields (ms)
-		Result[] results = entry.getResults();
-		for (int i = 0; i < results.length; i++) {
-			Result result = results[i];
-			if (result.getRuns() == 0) continue;
-			writer.printField(Integer.toString(result.getMillis() / result.getRuns()));
-		}
-		writer.endRecord();
-	}	
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/PrintDiffMain.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/PrintDiffMain.java
deleted file mode 100644
index 0e06a03..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/PrintDiffMain.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui.logformatter;
-
-
-import java.io.BufferedOutputStream;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.PrintStream;
-
-import org.xml.sax.SAXException;
-
-public class PrintDiffMain {
-	public static void main(String[] args) {
-		Parser parser = new Parser();
-		if (! parser.parse(args)) {
-			System.err.println("Usage: <newer log> <older log> [-out <file>] [-csv] [-t <thresh>] [-i]");
-			System.err.println("  -out <file> : specify the output file, default is console");
-			System.err.println("  -csv        : produce comma separated values data");
-			System.err.println("  -t <thresh> : minimum non-negligible absolute % change");
-			System.err.println("  -i          : ignore negligible changes in results");
-			return;
-		}
-		try {
-			PrintStream ps = System.out;
-			try {
-				if (parser.outputFile != null) ps = new PrintStream(new BufferedOutputStream(new FileOutputStream(parser.outputFile)));
-				printDiff(ps, parser.newerLogFile, parser.olderLogFile, parser.csv, parser.thresh, parser.ignore);
-			} finally {
-				if (ps != System.out) ps.close();
-			}
-		} catch (Exception e) {
-			System.err.println("An error occurred:");
-			e.printStackTrace();
-			return;
-		}
-	}
-
-	private static void printDiff(PrintStream ps, File newerLogFile, File olderLogFile,
-		boolean csv, int thresh, boolean ignore) throws IOException, SAXException {
-		// read and merge newer log
-		RootEntry newerRoot = LogEntry.readLog(newerLogFile);
-		MergeRunsVisitor mergeVisitor = new MergeRunsVisitor(null);
-		newerRoot.accept(mergeVisitor);
-		newerRoot = mergeVisitor.getMergedRoot();
-
-		// read and merge older log
-		RootEntry olderRoot = LogEntry.readLog(olderLogFile);
-		olderRoot.accept(mergeVisitor);
-		olderRoot = mergeVisitor.getMergedRoot();
-
-		// format options
-		StringBuffer options = new StringBuffer();
-		if (thresh != 0) {
-			options.append("-t ");
-			options.append(Integer.toString(thresh));
-			options.append(" ");
-		}
-		if (ignore) options.append("-i ");
-
-		// format log file
-		if (csv) {
-			DelimitedValuesWriter writer = new DelimitedValuesWriter(ps, ",", true /*quoted*/);
-			// print header
-			writer.printRecord(new String[] { "", "Newer", "Older" });
-			writer.printRecord(new String[] { "Log File", newerLogFile.toString(), olderLogFile.toString() });
-			writer.printRecord(new String[] { "Generated", newerRoot.getTimestamp(), olderRoot.getTimestamp() });
-			writer.printRecord(new String[] { "SDK Build", newerRoot.getSDKBuildId(), olderRoot.getSDKBuildId() });
-			writer.endRecord();
-			writer.printRecord(new String[] { "Options", "'" + options.toString() });
-			writer.endRecord();
-			writer.printRecord(new String[] { "", "", "",
-				"Newer", "", "", "",
-				"Older", "", "", "",
-				"", "", "" });
-			writer.printRecord(new String[] { "Case", "Group", "Task",
-				"Runs", "Avg. (ms)", "95% C.I. (ms)", "95% C.I. (%)",
-				"Runs", "Avg. (ms)", "95% C.I. (ms)", "95% C.I. (%)",
-				"Change", "Diff (ms)", "Diff (%)" });
-			// print quoted CSV data
-			PrintCSVDiffVisitor diffVisitor = new PrintCSVDiffVisitor(writer, olderRoot, thresh, ignore);
-			newerRoot.accept(diffVisitor);
-		} else {
-			// print header
-			ps.println("=== LOG DIFF ===");
-			ps.println("Newer File: " + newerLogFile);
-			ps.println("  Generated: " + newerRoot.getTimestamp());
-			ps.println("  SDK Build: " + newerRoot.getSDKBuildId());
-			ps.println("Older File: " + olderLogFile);
-			ps.println("  Generated: " + olderRoot.getTimestamp());
-			ps.println("  SDK Build: " + olderRoot.getSDKBuildId());
-			ps.println("Options: " + options.toString());
-			ps.println();
-			// compute and print the differences
-			PrintTextDiffVisitor diffVisitor = new PrintTextDiffVisitor(ps, olderRoot, thresh, ignore);
-			newerRoot.accept(diffVisitor);
-		}
-	}
-	
-	private static class Parser extends ArgumentParser {
-		public File newerLogFile = null;
-		public File olderLogFile = null;
-		public File outputFile = null;
-		public boolean csv = false;
-		public int thresh = 0;
-		public boolean ignore = false;
-
-		protected boolean handleFinished() {
-			return newerLogFile != null && olderLogFile != null;
-		}
-		protected boolean handleArgument(int index, String arg) {
-			if (index == 0) {
-				newerLogFile = new File(arg);
-			} else if (index == 1) {
-				olderLogFile = new File(arg);
-			} else {
-				return false;
-			}
-			return true;
-		}
-		protected boolean handleOption(String option, String arg) {
-			if ("-out".equals(option)) {
-				if (arg == null) return false;
-				outputFile = new File(arg);
-			} else if ("-csv".equals(option)) {
-				if (arg != null) return false;
-				csv = true;
-			} else if ("-t".equals(option)) {
-				if (arg == null) return false;
-				try {
-					thresh = Integer.parseInt(arg, 10);
-				} catch (NumberFormatException e) {
-					return false;
-				}
-				if (thresh < 0) return false;
-			} else if ("-i".equals(option)) {
-				if (arg != null) return false;
-				ignore = true;
-			} else {
-				return false;
-			}
-			return true;
-		}
-	}
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/PrintDiffVisitor.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/PrintDiffVisitor.java
deleted file mode 100644
index ca75be1..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/PrintDiffVisitor.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui.logformatter;
-
-
-public abstract class PrintDiffVisitor implements ILogEntryVisitor {
-	protected RootEntry olderRoot;
-	protected int threshold; // threshold for negligible changes
-	protected boolean ignoreNegligible; // if true, ignores negligible changes
-	protected LogEntryContainer olderParent; // corresponding parent in older root
-
-	/**
-	 * Creates a visitor to print a summary of the changes between a log
-	 * and an older one.  Optionally ignores differences within a certain threshold.
-	 * Does not print older entries for which there are no corresponding newer ones.
-	 * 
-	 * @param olderRoot the root of the older log
-	 * @param threshold the minimum non-negligible % change
-	 * @param ignoreNegligible if true, does not display negligible changes
-	 */
-	public PrintDiffVisitor(RootEntry olderRoot, int threshold, boolean ignoreNegligible) {
-		this.olderRoot = olderRoot;
-		this.olderParent = null;
-		this.threshold = threshold;
-		this.ignoreNegligible = ignoreNegligible;
-	}
-	
-	protected abstract void visitRootEntry(RootEntry entry, RootEntry olderEntry);
-	protected abstract void visitCaseEntry(CaseEntry entry, CaseEntry olderEntry);
-	protected abstract void visitGroupEntry(GroupEntry entry, GroupEntry olderEntry);
-	protected abstract void visitTaskEntry(TaskEntry entry, TaskEntry olderEntry);
-
-	public void visitRootEntry(RootEntry entry) {
-		olderParent = olderRoot;
-		visitRootEntry(entry, olderRoot);
-	}
-	
-	public void visitCaseEntry(CaseEntry entry) {
-		LogEntryContainer prevOlderParent = olderParent;
-		if (olderParent != null) {
-			olderParent = (LogEntryContainer) olderParent.findMember(entry.getName(), CaseEntry.class);
-		}
-		visitCaseEntry(entry, (CaseEntry) olderParent);
-		olderParent = prevOlderParent;
-	}
-
-	public void visitGroupEntry(GroupEntry entry) {
-		LogEntryContainer prevOlderParent = olderParent;
-		if (olderParent != null) {
-			olderParent = (LogEntryContainer) olderParent.findMember(entry.getName(), GroupEntry.class);
-		}
-		visitGroupEntry(entry, (GroupEntry) olderParent);
-		olderParent = prevOlderParent;
-	}
-
-	public void visitTaskEntry(TaskEntry entry) {
-		TaskEntry olderEntry = null;
-		if (olderParent != null) {
-			olderEntry = (TaskEntry) olderParent.findMember(entry.getName(), TaskEntry.class);
-		}
-		if (ignoreNegligible && isDifferenceNegligible(entry, olderEntry)) return;
-		visitTaskEntry(entry, olderEntry);
-	}
-	
-	protected boolean isDifferenceNegligible(TaskEntry newerEntry, TaskEntry olderEntry) {
-		if (newerEntry.getTotalRuns() == 0 || olderEntry.getTotalRuns() == 0) return false;
-		int olderMean = olderEntry.getAverageMillis();
-		if (olderMean == 0) return false;
-		int newerMean = newerEntry.getAverageMillis();
-		int diff = Math.abs(newerMean - olderMean);
-		return diff * 100 / olderMean < threshold;
-	}
-	
-	protected boolean isDifferenceUncertain(TaskEntry newerEntry, TaskEntry olderEntry) {
-		if (newerEntry.getTotalRuns() == 0 || olderEntry.getTotalRuns() == 0) return false;
-		int olderMean = olderEntry.getAverageMillis();
-		int newerMean = newerEntry.getAverageMillis();
-		int diff = Math.abs(newerMean - olderMean);
-		int diffCI = newerEntry.getConfidenceInterval() + olderEntry.getConfidenceInterval();
-		return diff < diffCI;
-	}
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/PrintSummaryMain.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/PrintSummaryMain.java
deleted file mode 100644
index e3bfb40..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/PrintSummaryMain.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui.logformatter;
-
-
-import java.io.BufferedOutputStream;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.PrintStream;
-
-import org.xml.sax.SAXException;
-
-public class PrintSummaryMain {
-	public static void main(String[] args) {
-		Parser parser = new Parser();
-		if (! parser.parse(args)) {
-			System.err.println("Usage: <log file> [-out <file>] [-csv] [-raw]");
-			System.err.println("  -out <file> : specify the output file, default is console");
-			System.err.println("  -csv        : produce comma separated values data");
-			System.err.println("  -raw        : do not merge results from successive iterations");
-			return;
-		}
-		try {
-			PrintStream ps = System.out;
-			try {
-				if (parser.outputFile != null) ps = new PrintStream(new BufferedOutputStream(new FileOutputStream(parser.outputFile)));
-				printLog(ps, parser.logFile, parser.csv, parser.raw);
-			} finally {
-				if (ps != System.out) ps.close();
-			}
-		} catch (Exception e) {
-			System.err.println("An error occurred:");
-			e.printStackTrace();
-			return;
-		}
-	}
-
-	private static void printLog(PrintStream ps, File logFile, boolean csv, boolean raw)
-		throws IOException, SAXException {
-		// read and merge the log
-		RootEntry root = LogEntry.readLog(logFile);
-		if (! raw) {
-			MergeRunsVisitor mergeVisitor = new MergeRunsVisitor(null);
-			root.accept(mergeVisitor);
-			root = mergeVisitor.getMergedRoot();
-		}
-
-		// format options
-		StringBuffer options = new StringBuffer();
-		if (raw) options.append("-raw ");
-
-		// format log file
-		if (csv) {
-			DelimitedValuesWriter writer = new DelimitedValuesWriter(ps, ",", true /*quoted*/);
-			// print header
-			writer.printRecord(new String[] { "Log File", logFile.toString() });
-			writer.printRecord(new String[] { "Generated", root.getTimestamp() });
-			writer.printRecord(new String[] { "SDK Build", root.getSDKBuildId() });
-			writer.endRecord();
-			writer.printRecord(new String[] { "Options", "'" + options.toString() });
-			writer.endRecord();
-			writer.printRecord(new String[] { "Case", "Group", "Task",
-				"Runs", "Avg. (ms)", "95% C.I. (ms)", "95% C.I. (%)", "Results (ms)" });
-			// print quoted CSV data
-			PrintCSVSummaryVisitor visitor = new PrintCSVSummaryVisitor(writer);
-			root.accept(visitor);
-		} else {
-			// print header
-			ps.println("=== LOG SUMMARY ===");
-			ps.println("File: " + logFile);
-			ps.println("  Generated: " + root.getTimestamp());
-			ps.println("  SDK Build: " + root.getSDKBuildId());
-			ps.println("Options: " + options.toString());
-			ps.println();
-			// print the log summary
-			root.accept(new PrintTextSummaryVisitor(ps));
-		}
-	}
-	
-	private static class Parser extends ArgumentParser {
-		public File logFile = null;
-		public File outputFile = null;
-		public boolean csv = false;
-		public boolean raw = false;
-
-		protected boolean handleFinished() {
-			return logFile != null;
-		}
-		protected boolean handleArgument(int index, String arg) {
-			if (index == 0) {
-				logFile = new File(arg);
-			} else {
-				return false;
-			}
-			return true;
-		}
-		protected boolean handleOption(String option, String arg) {
-			if ("-out".equals(option)) {
-				if (arg == null) return false;
-				outputFile = new File(arg);
-			} else if ("-csv".equals(option)) {
-				if (arg != null) return false;
-				csv = true;
-			} else if ("-raw".equals(option)) {
-				if (arg != null) return false;
-				raw = true;
-			} else {
-				return false;
-			}
-			return true;
-		}
-	}
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/PrintTextDiffVisitor.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/PrintTextDiffVisitor.java
deleted file mode 100644
index 98091b2..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/PrintTextDiffVisitor.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui.logformatter;
-
-
-import java.io.PrintStream;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-
-public class PrintTextDiffVisitor extends PrintDiffVisitor {
-	private PrintStream os;
-	private List diffText; // list of things to print
-	private String indent;
-	
-	/**
-	 * Creates a diff visitor that generates text output.
-	 * 
-	 * @param os the output stream
-	 * @see PrintDiffVisitor
-	 */
-	public PrintTextDiffVisitor(PrintStream os, RootEntry olderRoot, int threshold, boolean ignoreNegligible) {
-		super(olderRoot, threshold, ignoreNegligible);
-		this.os = os;
-		this.diffText = null;
-		this.indent = "";
-	}
-
-	protected void visitRootEntry(RootEntry entry, RootEntry olderEntry) {
-		entry.acceptChildren(this);
-	}
-	
-	protected void visitCaseEntry(CaseEntry entry, CaseEntry olderEntry) {
-		String oldIndent = indent;
-		indent += "  ";
-		StringBuffer line = new StringBuffer(indent);
-		line.append("%%% ");
-		line.append(entry.getName());
-		line.append(", class=");
-		line.append(entry.getClassName());
-		line.append(':');
-		os.println(line);
-		diffText = null;
-		entry.acceptChildren(this);
-		if (diffText != null) {
-			Iterator it = diffText.iterator();
-			while (it.hasNext()) os.println((String) it.next());
-		}
-		diffText = null;
-		os.println();
-		indent = oldIndent;
-	}
-
-	protected void visitGroupEntry(GroupEntry entry, GroupEntry olderEntry) {
-		String oldIndent = indent;
-		List oldDiffText = diffText;
-		indent += "  ";
-		diffText = null;
-		entry.acceptChildren(this);
-		indent = oldIndent;
-		if (diffText != null) {			
-			StringBuffer line = new StringBuffer(indent);
-			line.append("+ ");
-			line.append(entry.getName());
-			line.append(':');
-			diffText.add(0, line.toString());
-			if (oldDiffText != null) diffText.addAll(0, oldDiffText);
-		} else {
-			diffText = oldDiffText;
-		}
-	}
-	
-	protected void visitTaskEntry(TaskEntry entry, TaskEntry olderEntry) {
-		// print task description
-		if (diffText == null) diffText = new LinkedList(); // using a list for speedy prepending
-		StringBuffer line = new StringBuffer(indent);
-		line.append("- ");
-		line.append(entry.getName());
-		line.append(": ");
-		diffText.add(line.toString());
-		
-		// print new entry performance
-		printTaskEntry("  newer: ", entry);
-		
-		// print older entry performance
-		if (olderEntry == null) return;
-		printTaskEntry("  older: ", olderEntry);
-		
-		// print difference
-		if (entry.getTotalRuns() == 0 || olderEntry.getTotalRuns() == 0) return;
-		int olderMean = olderEntry.getAverageMillis();
-		int diff = entry.getAverageMillis() - olderMean;
-		line = new StringBuffer(indent);
-		line.append("  diff : ");
-		
-		if (isDifferenceUncertain(entry, olderEntry)) {
-			line.append("UNCERTAIN");
-		} else if (isDifferenceNegligible(entry, olderEntry)) {
-			line.append("NEGLIGIBLE");
-		} else {
-			line.append(diff > 0 ? "SLOWER" : "FASTER");
-			line.append(" by ");
-			line.append(Integer.toString(Math.abs(diff)));
-			line.append(" ms");
-			if (olderEntry.getAverageMillis() != 0) {
-				line.append(" = ");
-				line.append(Util.formatPercentageRatio(Math.abs(diff), olderMean));
-			}
-			line.append(" avg.");
-		}
-		diffText.add(line.toString());
-	}
-	
-	protected void printTaskEntry(String prefix, TaskEntry task) {
-		StringBuffer line = new StringBuffer(indent);
-		line.append(prefix);
-		if (task.getTotalRuns() != 0) {
-			int averageTime = task.getAverageMillis();
-			line.append(Integer.toString(averageTime));
-			line.append(" ms");
-			if (task.getTotalRuns() > 1) {
-				line.append(" avg. over ");
-				line.append(Integer.toString(task.getTotalRuns()));
-				line.append(" runs");
-				if (averageTime != 0) {
-					int confidence = task.getConfidenceInterval();
-					line.append(" (95% C.I. +/- ");
-					line.append(Integer.toString(confidence));
-					line.append(" ms = ");
-					line.append(Util.formatPercentageRatio(confidence, averageTime));
-					line.append(")");
-				}
-			}
-		} else {
-			line.append("skipped!");
-		}
-		diffText.add(line.toString());
-	}
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/PrintTextSummaryVisitor.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/PrintTextSummaryVisitor.java
deleted file mode 100644
index a535019..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/PrintTextSummaryVisitor.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui.logformatter;
-
-
-import java.io.PrintStream;
-
-public class PrintTextSummaryVisitor implements ILogEntryVisitor {
-	private PrintStream os;
-	private String indent;
-	private int totalAverageTime;
-	
-	/**
-	 * Creates a visitor to print a summary of all entries contained in a log.
-	 * @param os the output stream
-	 */
-	public PrintTextSummaryVisitor(PrintStream os) {
-		this.os = os;
-		this.indent = "";
-		this.totalAverageTime = 0;
-	}
-	
-	protected void visitContainer(LogEntryContainer container) {
-		int oldTotalAverageTime = totalAverageTime;
-		indent += "  ";
-		container.acceptChildren(this);
-		int averageTime = totalAverageTime - oldTotalAverageTime;
-		StringBuffer line = new StringBuffer(indent);
-		line.append("* total: ");
-		line.append(Integer.toString(averageTime));
-		line.append(" ms");
-		os.println(line);
-		indent = indent.substring(2);
-	}
-
-	/**
-	 * Prints the root entry information.
-	 */
-	public void visitRootEntry(RootEntry entry) {
-		entry.acceptChildren(this);
-	}
-	
-	/**
-	 * Prints the total average time spent by all subgroups and subtasks.
-	 */
-	public void visitCaseEntry(CaseEntry entry) {
-		StringBuffer line = new StringBuffer(indent);
-		line.append("%%% ");
-		line.append(entry.getName());
-		line.append(", class=");
-		line.append(entry.getClassName());
-		line.append(':');
-		os.println(line);
-		visitContainer(entry);
-		os.println();
-	}
-
-	/**
-	 * Prints the total average time spent by all subtasks.
-	 */
-	public void visitGroupEntry(GroupEntry entry) {		
-		StringBuffer line = new StringBuffer(indent);
-		line.append("+ ");
-		line.append(entry.getName());
-		line.append(':');
-		os.println(line);
-		visitContainer(entry);
-	}
-	
-	/**
-	 * Prints the average amount of time spent by a task.
-	 */
-	public void visitTaskEntry(TaskEntry task) {
-		StringBuffer line = new StringBuffer(indent);
-		line.append("- ");
-		line.append(task.getName());
-		line.append(": ");
-		if (task.getTotalRuns() != 0) {
-			int averageTime = task.getAverageMillis();
-			totalAverageTime += averageTime;
-			line.append(Integer.toString(averageTime));
-			line.append(" ms");
-			if (task.getTotalRuns() > 1) {
-				line.append(" avg. over ");
-				line.append(Integer.toString(task.getTotalRuns()));
-				line.append(" runs");
-				if (averageTime != 0) {
-					int confidence = task.getConfidenceInterval();
-					line.append(" (95% C.I. +/- ");
-					line.append(Integer.toString(confidence));
-					line.append(" ms = ");
-					line.append(Util.formatPercentageRatio(confidence, averageTime));
-					line.append(")");
-				}
-			}
-		} else {
-			line.append("skipped!");
-		}
-		os.println(line);
-	}
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/Result.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/Result.java
deleted file mode 100644
index b0899f7..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/Result.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui.logformatter;
-
-
-import org.xml.sax.Attributes;
-
-/**
- * Holds the result of one iteration of tests.
- * Note that a test might be run multiple times per iteration, particularly if it
- * is of very short duration to reduce sampling error.  This behaviour is not supported
- * at this time, but will likely be of value in the future.
- */
-public class Result {
-	private int runs;
-	private int millis;
-
-	public Result(Attributes attributes) {
-		this(1, Integer.parseInt(attributes.getValue("elapsed")));
-	}
-	public Result(int runs, int millis) {
-		this.runs = runs;
-		this.millis = millis;
-	}
-	public int getRuns() {
-		return runs;
-	}
-	public int getMillis() {
-		return millis;
-	}
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/RootEntry.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/RootEntry.java
deleted file mode 100644
index 12496c4..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/RootEntry.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui.logformatter;
-
-
-import org.xml.sax.Attributes;
-
-public class RootEntry extends LogEntryContainer {
-	private String sdkBuildId;
-	private String timestamp;
-	
-	public RootEntry(LogEntryContainer parent, Attributes attributes) {
-		this(parent, attributes.getValue("name"),
-			attributes.getValue("sdkbuild"), attributes.getValue("timestamp"));
-	}
-	
-	public RootEntry(LogEntryContainer parent, String name, String sdkBuildId, String timestamp) {
-		super(parent, name);
-		this.sdkBuildId = (sdkBuildId != null) ? sdkBuildId : "unknown";
-		this.timestamp = (timestamp != null) ? timestamp : "unknown";
-	}
-	
-	public void accept(ILogEntryVisitor visitor) {
-		visitor.visitRootEntry(this);
-	}
-	
-	/**
-	 * Returns the SDK Build id.
-	 */
-	public String getSDKBuildId() {
-		return sdkBuildId;
-	}
-	
-	/**
-	 * Returns the class name of the test case.
-	 */
-	public String getTimestamp() {
-		return timestamp;
-	}
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/TaskEntry.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/TaskEntry.java
deleted file mode 100644
index 71797e1..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/TaskEntry.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui.logformatter;
-
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.xml.sax.Attributes;
-
-public class TaskEntry extends LogEntry {
-	private List /* of Result */ results = new ArrayList();
-	
-	public TaskEntry(LogEntryContainer parent, Attributes attributes) {
-		this(parent, attributes.getValue("name"));
-	}
-	
-	public TaskEntry(LogEntryContainer parent, String name) {
-		super(parent, name);
-	}
-	
-	public void accept(ILogEntryVisitor visitor) {
-		visitor.visitTaskEntry(this);
-	}
-	
-	/**
-	 * Returns the average number of milliseconds elapsed, or -1 if unknown.
-	 */
-	public int getAverageMillis() {
-		int totalMillis = 0;
-		int totalRuns = 0;
-		for (Iterator it = results.iterator(); it.hasNext();) {
-			Result result = (Result) it.next();
-			totalMillis += result.getMillis();
-			totalRuns += result.getRuns();
-		}
-		if (totalRuns == 0) return -1;
-		return totalMillis / totalRuns;
-	}
-	
-	/**
-	 * Returns the standard deviation of the sample.
-	 * sqrt((n * sum(X^2) - sum(X)^2) / (n * (n-1)))
-	 */
-	public double getStandardDeviation() {
-		double sumOfSquares = 0.0, sum = 0.0;
-		int totalRuns = 0;
-		for (Iterator it = results.iterator(); it.hasNext();) {
-			Result result = (Result) it.next();
-			if (result.getRuns() == 0) continue;
-			totalRuns += result.getRuns();
-			sum += result.getMillis();
-			double average = (double)result.getMillis() / result.getRuns();
-			sumOfSquares += average * average * result.getRuns();
-		}
-		if (totalRuns == 0) return 0;
-		return Math.sqrt((sumOfSquares * totalRuns - sum * sum) / (totalRuns * (totalRuns - 1)));
-	}
-	
-	/**
-	 * Returns a 95% confidence interval from the mean represented by getAverageMillis()
-	 * Uses the formula:
-	 *   1.960 * stdev() / sqrt(n)
-	 */
-	public int getConfidenceInterval() {
-		return (int) (1.960 * getStandardDeviation() / Math.sqrt(getTotalRuns()));
-	}
-	
-	/**
-	 * Returns the number of times this task was run.
-	 */
-	public int getTotalRuns() {
-		int totalRuns = 0;
-		for (Iterator it = results.iterator(); it.hasNext();) {
-			Result result = (Result) it.next();
-			totalRuns += result.getRuns();
-		}
-		return totalRuns;
-	}
-	
-	/**
-	 * Returns an array of all Results for this task.
-	 */
-	public Result[] getResults() {
-		return (Result[]) results.toArray(new Result[results.size()]);
-	}
-	
-	/**
-	 * Adds a result.
-	 * @param result the result
-	 */
-	public void addResult(Result result) {
-		results.add(result);
-	}
-	
-
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/Util.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/Util.java
deleted file mode 100644
index b86a962..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/logformatter/Util.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui.logformatter;
-
-
-import java.text.DecimalFormat;
-import java.text.NumberFormat;
-
-public class Util {
-	private static final NumberFormat percentageFormat = new DecimalFormat("####0.00%");
-	
-	public static String formatPercentageRatio(int numerator, int denominator) {
-		return percentageFormat.format((double)numerator / denominator);
-	}
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/unit/CheckoutOperationTests.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/unit/CheckoutOperationTests.java
deleted file mode 100644
index c52bd94..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/unit/CheckoutOperationTests.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui.unit;
-
-import java.io.IOException;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.ICVSFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFolder;
-import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot;
-import org.eclipse.team.internal.ccvs.core.syncinfo.FolderSyncInfo;
-import org.eclipse.team.internal.ccvs.ui.operations.CheckoutMultipleProjectsOperation;
-import org.eclipse.team.tests.ccvs.core.CVSTestSetup;
-import org.eclipse.team.tests.ccvs.core.EclipseTest;
-
-public class CheckoutOperationTests extends EclipseTest {
-
-	public CheckoutOperationTests() {
-	}
-
-	public CheckoutOperationTests(String name) {
-		super(name);
-	}
-
-	public static Test suite() {
-		String testName = System.getProperty("eclipse.cvs.testName");
-		if (testName == null) {
-			TestSuite suite = new TestSuite(CheckoutOperationTests.class);
-			return new CVSTestSetup(suite);
-		} else {
-			return new CVSTestSetup(new CheckoutOperationTests(testName));
-		}
-	}
-	public void testSimpleCheckout() throws CoreException, TeamException, IOException {
-		IProject project = createProject("testSimpleCheckout", new String[] { "changed.txt", "deleted.txt", "folder1/", "folder1/a.txt" });
-		
-		// move the created project so we can do a simple checkout
-		project.move(new Path("moved-project"), false /* force */, DEFAULT_MONITOR);
-		IProject movedProject = ResourcesPlugin.getWorkspace().getRoot().getProject("moved-project");
-		
-		// checkout the project to the default location		
-		try {
-			new CheckoutMultipleProjectsOperation(
-				null /* shell */, 
-				new ICVSRemoteFolder[] { (ICVSRemoteFolder)CVSWorkspaceRoot.getRemoteResourceFor(movedProject) },
-				null /*target location*/).execute(DEFAULT_MONITOR);
-		} catch (InterruptedException e) {
-			fail("Operation should not have been interrupted");
-		}
-		
-		assertEquals(project, movedProject);
-	}
-	
-	public void testNonRootCheckout() throws CoreException, TeamException, IOException {
-		IProject project = createProject("testNonRootCheckout", new String[] { "changed.txt", "deleted.txt", "folder1/", "folder1/a.txt" });
-		
-		// checkout the non-root folder as a project to the default location		
-		try {
-			new CheckoutMultipleProjectsOperation(
-				null /* shell */, 
-				new ICVSRemoteFolder[] { (ICVSRemoteFolder)CVSWorkspaceRoot.getRemoteResourceFor(project.getFolder("folder1")) },
-				null /*target location*/).execute(DEFAULT_MONITOR);
-		} catch (InterruptedException e) {
-			fail("Operation should not have been interrupted");
-		}
-		
-		IProject newProject = ResourcesPlugin.getWorkspace().getRoot().getProject("folder1");
-		assertTrue(newProject.exists());
-		ICVSFolder cvsFolder = CVSWorkspaceRoot.getCVSFolderFor(newProject);
-		FolderSyncInfo projectInfo = cvsFolder.getFolderSyncInfo();
-		assertTrue(projectInfo != null);
-		ICVSFolder cvsFolder2 = CVSWorkspaceRoot.getCVSFolderFor(project.getFolder("folder1"));
-		FolderSyncInfo folderInfo = cvsFolder2.getFolderSyncInfo();
-		assertTrue(folderInfo != null);
-		assertTrue(projectInfo.equals(folderInfo));
-	}
-	
-	public void testMulitpleCheckout() throws CoreException, TeamException {
-		IProject project1 = createProject("testNonRootCheckout1", new String[] { "file.txt", "folder1/", "folder1/a.txt" });
-		IProject project2 = createProject("testNonRootCheckout2", new String[] { "file2.txt", "folder2/", "folder2/b.txt" });
-
-		// move the created project so we can do a simple checkout
-		project1.move(new Path("moved-project1"), false /* force */, DEFAULT_MONITOR);
-		IProject movedProject1 = ResourcesPlugin.getWorkspace().getRoot().getProject("moved-project1");
-		project2.move(new Path("moved-project2"), false /* force */, DEFAULT_MONITOR);
-		IProject movedProject2 = ResourcesPlugin.getWorkspace().getRoot().getProject("moved-project2");
-
-
-		// checkout the project to the default location		
-		try {
-			new CheckoutMultipleProjectsOperation(
-				null /* shell */, 
-				new ICVSRemoteFolder[] { 
-					(ICVSRemoteFolder)CVSWorkspaceRoot.getRemoteResourceFor(movedProject1),
-					(ICVSRemoteFolder)CVSWorkspaceRoot.getRemoteResourceFor(movedProject2)
-				},
-				null /*target location*/).execute(DEFAULT_MONITOR);
-		} catch (InterruptedException e) {
-			fail("Operation should not have been interrupted");
-		}
-		
-	}
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/unit/MenuEnablementTest.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/unit/MenuEnablementTest.java
deleted file mode 100644
index 5896454..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/unit/MenuEnablementTest.java
+++ /dev/null
@@ -1,533 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui.unit;
-
-import java.io.ByteArrayInputStream;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.List;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.resources.EclipseSynchronizer;
-import org.eclipse.team.internal.ccvs.ui.actions.AddAction;
-import org.eclipse.team.internal.ccvs.ui.actions.BranchAction;
-import org.eclipse.team.internal.ccvs.ui.actions.CommitAction;
-import org.eclipse.team.internal.ccvs.ui.actions.CompareWithRemoteAction;
-import org.eclipse.team.internal.ccvs.ui.actions.CompareWithRevisionAction;
-import org.eclipse.team.internal.ccvs.ui.actions.CompareWithTagAction;
-import org.eclipse.team.internal.ccvs.ui.actions.GenerateDiffFileAction;
-import org.eclipse.team.internal.ccvs.ui.actions.IgnoreAction;
-import org.eclipse.team.internal.ccvs.ui.actions.MergeAction;
-import org.eclipse.team.internal.ccvs.ui.actions.ReplaceWithRemoteAction;
-import org.eclipse.team.internal.ccvs.ui.actions.ReplaceWithTagAction;
-import org.eclipse.team.internal.ccvs.ui.actions.SetKeywordSubstitutionAction;
-import org.eclipse.team.internal.ccvs.ui.actions.ShowResourceInHistoryAction;
-import org.eclipse.team.internal.ccvs.ui.actions.SyncAction;
-import org.eclipse.team.internal.ccvs.ui.actions.TagLocalAction;
-import org.eclipse.team.internal.ccvs.ui.actions.UnmanageAction;
-import org.eclipse.team.internal.ccvs.ui.actions.UpdateAction;
-import org.eclipse.team.tests.ccvs.core.CVSTestSetup;
-import org.eclipse.team.tests.ccvs.core.EclipseTest;
-import org.eclipse.ui.IActionDelegate;
-
-/**
- * Test the menu enablement code for the CVS menus
- */
-public class MenuEnablementTest extends EclipseTest {
-	
-	private static final int MANAGED = 1;
-	private static final int ADDED = 2;
-	private static final int UNMANAGED = 4;
-	private static final int IGNORED = 8;
-	private static final int SINGLE_ONLY = 16;
-	private static final int FOLDERS = 32;
-	private static final int FILES = 64;
-	private static final int UNMANAGED_PARENT = 128;
-	
-	/**
-	 * Constructor for CVSProviderTest
-	 */
-	public MenuEnablementTest() {
-		super();
-	}
-
-	/**
-	 * Constructor for CVSProviderTest
-	 */
-	public MenuEnablementTest(String name) {
-		super(name);
-	}
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(MenuEnablementTest.class);
-		return new CVSTestSetup(suite);
-		//return new CVSTestSetup(new MenuEnablementTest("testReadOnly"));
-	}
-	
-	/**
-	 * Create a test project for the given action delegate. The structure of
-	 * this test project is used by the get resource methods to return resources
-	 * of the proper type.
-	 * 
-	 * @param actionDelegate
-	 * @throws CoreException
-	 * @throws TeamException
-	 */
-	private IProject createTestProject(IActionDelegate actionDelegate) throws CoreException, TeamException {
-		String actionName = getName(actionDelegate);
-		return createProject(actionName, new String[] { "file.txt", "folder1/", "folder1/a.txt" });
-	}
-	
-	private List getManagedResources(IProject testProject, boolean includeFolders, boolean multiple) {
-		List result = new ArrayList();
-		if (includeFolders) {
-			result.add(testProject.getFolder("folder1"));
-		} else {
-			result.add(testProject.getFile("folder1/a.txt"));
-		}
-		if (multiple) {
-			result.add(testProject.getFile("file.txt"));
-		}
-		return result;
-	}
-	
-	private List getAddedResources(IProject testProject) throws CoreException, TeamException {
-		List result = new ArrayList();
-		IFile file = testProject.getFile("added.txt");
-		if (!file.exists()) {
-			addResources(testProject, new String[] {"added.txt"}, false);
-		}
-		result.add(file);
-		return result;
-	}
-	
-	private List getIgnoredResources(IProject testProject) throws CoreException, TeamException {
-		List result = new ArrayList();
-		IFile file = testProject.getFile("ignored.txt");
-		if (!file.exists()) {
-			file.create(getRandomContents(), false, null);
-		}
-		result.add(file);
-		IFile ignoreFile = testProject.getFile(".cvsignore");
-		InputStream contents = new ByteArrayInputStream("ignored.txt".getBytes());
-		if (ignoreFile.exists()) {
-			ignoreFile.setContents(contents, false, false, null);
-		} else {
-			ignoreFile.create(contents, false, null);
-		}
-		return result;
-	}
-	
-	private List getUnmanagedResources(IProject testProject) throws CoreException, TeamException {
-		List result = new ArrayList();
-		IFile file = testProject.getFile("unmanaged.txt");
-		if (!file.exists()) {
-			file.create(getRandomContents(), false, null);
-		}
-		result.add(file);
-		return result;
-	}
-
-	/**
-	 * Method getResourceWithUnmanagedParent.
-	 * @param project
-	 * @return Collection
-	 */
-	private List getResourceWithUnmanagedParent(IProject project) throws CoreException {
-		List result = new ArrayList();
-		IFolder folder = project.getFolder("newFolder");
-		if(!folder.exists()) folder.create(false, true, null);
-		IFile file = folder.getFile("unmanaged.txt");
-		if (!file.exists()) {
-			file.create(getRandomContents(), false, null);
-		}
-		result.add(file);
-		return result;
-	}
-		
-	private List getOverlappingResources(IProject testProject, boolean includeFiles) {
-		List result = new ArrayList();
-		result.add(testProject);
-		result.add(testProject.getFolder("folder1"));
-		if (includeFiles) {
-			result.add(testProject.getFile("folder1/a.txt"));
-		}
-		return result;
-	}
-
-	private ISelection asSelection(List resources) {
-		return new StructuredSelection(resources);
-	}
-	
-	private String getName(IActionDelegate actionDelegate) {
-		return actionDelegate.getClass().getName();
-	}
-		
-	/**
-	 * Assert that the enablement for the given IActionDelegate and ISelection
-	 * match that provided as expectedEnablement.
-	 * 
-	 * @param actionDelegate
-	 * @param selection
-	 * @param expectedEnablement
-	 */
-	private void assertEnablement(IActionDelegate actionDelegate, ISelection selection, boolean expectedEnablement) {
-		IAction action = new Action() {};
-		actionDelegate.selectionChanged(action, selection);
-		assertEquals(getName(actionDelegate) + " enablement wrong!", expectedEnablement, action.isEnabled());
-	}
-
-	/**
-	 * Method assertEnablement.
-	 * @param action
-	 * @param project
-	 * @param IGNORED
-	 * @param b
-	 */
-	private void assertEnablement(IActionDelegate action, IProject project, int kind, boolean expectedEnablement) throws CoreException, TeamException {
-		List resources = new ArrayList();
-		boolean multiple = (kind & SINGLE_ONLY) == 0;
-		boolean includeFolders = ((kind & FOLDERS) > 0) || ((kind & FILES) == 0);
-		if ((kind & MANAGED) > 0) {
-			resources.addAll(getManagedResources(project, includeFolders, multiple));
-		}
-		if ((kind & UNMANAGED) > 0) {
-			resources.addAll(getUnmanagedResources(project));
-		}
-		if ((kind & IGNORED) > 0) {
-			resources.addAll(getIgnoredResources(project));
-		}
-		if ((kind & ADDED) > 0) {
-			resources.addAll(getAddedResources(project));
-		}
-		if ((kind & UNMANAGED_PARENT) > 0) {
-			resources.addAll(getResourceWithUnmanagedParent(project));
-		}
-		ensureAllSyncInfoLoaded(project);
-		assertEnablement(action, asSelection(resources), expectedEnablement);
-	}
-	
-	/**
-	 * Method ensureAllSyncInfoLoaded.
-	 * @param project
-	 */
-	private void ensureAllSyncInfoLoaded(IProject project) throws CVSException {
-		EclipseSynchronizer.getInstance().ensureSyncInfoLoaded(new IResource[] {project}, IResource.DEPTH_INFINITE);
-	}
-
-	/**
-	 * Assert that the action is disabled for the reasons common to all menu
-	 * actions.
-	 * 
-	 * @param action
-	 * @param project
-	 */
-	public void assertDisabledForCommonReasons(IActionDelegate action, IProject project) throws CoreException {
-		assertDisabledForNoSelection(action);
-		assertDisabledForFolderFileOverlap(action, project);
-		assertDisabledForClosedProject(action, project);
-		assertDisabledForNonCVSProject(action);
-	}
-			
-	private void assertDisabledForNoSelection(IActionDelegate actionDelegate) {
-		assertEnablement(actionDelegate, StructuredSelection.EMPTY, false /* expected enablement */);
-	}
-	
-	private void assertDisabledForFolderFileOverlap(IActionDelegate action, IProject project) {
-		List resources = getOverlappingResources(project, true /* include files */);
-		assertEnablement(action, asSelection(resources), false /* enabled */);
-	}
-	
-	private void assertDisabledForClosedProject(IActionDelegate action, IProject project) throws CoreException {
-		project.close(null);
-		List resources = new ArrayList();
-		resources.add(project);
-		assertEnablement(action, asSelection(resources), false /* enabled */);
-		project.open(null);
-	}
-	
-	private void assertDisabledForNonCVSProject(IActionDelegate action) throws CoreException {
-		IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject("Non-CVS");
-		if (!project.exists())
-			project.create(null);
-		List resources = new ArrayList();
-		resources.add(project);
-		assertEnablement(action, asSelection(resources), false /* enabled */);
-	}
-	
-	private void assertEnabledForFolderOnlyOverlap(IActionDelegate action, IProject project) {
-		List resources = getOverlappingResources(project, false /* include files */);
-		assertEnablement(action, asSelection(resources), true /* enabled */);
-	}
-	
-	public void testAddAction() throws CoreException, TeamException {
-		IActionDelegate action = new AddAction();
-		IProject project = createTestProject(action);
-		assertDisabledForCommonReasons(action, project);
-		assertEnablement(action, project, MANAGED, false /* expected enablement */);
-		assertEnablement(action, project, ADDED, false /* expected enablement */);
-		assertEnablement(action, project, IGNORED, true /* expected enablement */);
-		assertEnablement(action, project, UNMANAGED, true /* expected enablement */);
-		assertEnablement(action, project, UNMANAGED | IGNORED, true /* expected enablement */);		
-		assertEnablement(action, project, UNMANAGED | SINGLE_ONLY, true /* expected enablement */);
-		assertEnablement(action, project, UNMANAGED | MANAGED | IGNORED, false /* expected enablement */);
-		assertEnablement(action, project, UNMANAGED_PARENT, true /* expected enablement */);
-	}
-
-	public void testBranchAction() throws CoreException, TeamException {
-		IActionDelegate action = new BranchAction();
-		IProject project = createTestProject(action);
-		assertDisabledForCommonReasons(action, project);
-		assertEnabledForFolderOnlyOverlap(action, project);
-		assertEnablement(action, project, MANAGED, true /* expected enablement */);
-		assertEnablement(action, project, MANAGED | ADDED, true /* expected enablement */);
-		assertEnablement(action, project, IGNORED, false /* expected enablement */);
-		assertEnablement(action, project, UNMANAGED, false /* expected enablement */);
-		assertEnablement(action, project, UNMANAGED | MANAGED | IGNORED, false /* expected enablement */);
-		assertEnablement(action, project, UNMANAGED_PARENT, false /* expected enablement */);
-	}
-	
-	public void testCommitAction() throws CoreException, TeamException {
-		IActionDelegate action = new CommitAction();
-		IProject project = createTestProject(action);
-		assertDisabledForCommonReasons(action, project);
-		assertEnabledForFolderOnlyOverlap(action, project);
-		assertEnablement(action, project, MANAGED, true /* expected enablement */);
-		assertEnablement(action, project, MANAGED | ADDED, true /* expected enablement */);
-		assertEnablement(action, project, MANAGED | ADDED | UNMANAGED, true /* expected enablement */);
-		assertEnablement(action, project, IGNORED, false /* expected enablement */);
-		assertEnablement(action, project, UNMANAGED, true /* expected enablement */);
-		assertEnablement(action, project, UNMANAGED | MANAGED | IGNORED, false /* expected enablement */);
-		assertEnablement(action, project, UNMANAGED_PARENT, true /* expected enablement */);
-	}
-	
-	public void testCompareWithRemoteAction() throws CoreException, TeamException {
-		IActionDelegate action = new CompareWithRemoteAction();
-		IProject project = createTestProject(action);
-		assertDisabledForCommonReasons(action, project);
-		assertEnabledForFolderOnlyOverlap(action, project);
-		assertEnablement(action, project, MANAGED, true /* expected enablement */);
-		assertEnablement(action, project, MANAGED | ADDED, true /* expected enablement */);
-		assertEnablement(action, project, MANAGED | ADDED | UNMANAGED, true /* expected enablement */);
-		// true is expected for ignored resources whose parent is not ignored
-		assertEnablement(action, project, IGNORED, true /* expected enablement */);
-		assertEnablement(action, project, UNMANAGED, true /* expected enablement */);
-		assertEnablement(action, project, UNMANAGED_PARENT, false /* expected enablement */);
-		// true is expected for ignored resources whose parent is not ignored
-		assertEnablement(action, project, UNMANAGED | MANAGED | IGNORED, true /* expected enablement */);
-	}
-	
-	public void testCompareWithRevison() throws CoreException, TeamException {
-		IActionDelegate action = new CompareWithRevisionAction();
-		IProject project = createTestProject(action);
-		assertDisabledForCommonReasons(action, project);
-		assertEnablement(action, project, MANAGED | FILES | SINGLE_ONLY, true /* expected enablement */);
-		assertEnablement(action, project, MANAGED | FOLDERS | FILES, false /* expected enablement */);
-		assertEnablement(action, project, MANAGED | FOLDERS | SINGLE_ONLY, false /* expected enablement */);
-		assertEnablement(action, project, MANAGED | FILES, false /* expected enablement */);
-		assertEnablement(action, project, ADDED | SINGLE_ONLY, false /* expected enablement */);
-		assertEnablement(action, project, UNMANAGED | SINGLE_ONLY, false /* expected enablement */);
-		assertEnablement(action, project, IGNORED | SINGLE_ONLY, false /* expected enablement */);
-		assertEnablement(action, project, UNMANAGED_PARENT, false /* expected enablement */);
-		assertEnablement(action, project, UNMANAGED | MANAGED | IGNORED, false /* expected enablement */);
-	}
-	
-	public void testCompareWithTagAction() throws CoreException, TeamException {
-		IActionDelegate action = new CompareWithTagAction();
-		IProject project = createTestProject(action);
-		assertDisabledForCommonReasons(action, project);
-		assertEnabledForFolderOnlyOverlap(action, project);
-		assertEnablement(action, project, MANAGED, true /* expected enablement */);
-		assertEnablement(action, project, MANAGED | ADDED, true /* expected enablement */);
-		assertEnablement(action, project, MANAGED | ADDED | UNMANAGED, false /* expected enablement */);
-		assertEnablement(action, project, IGNORED, false /* expected enablement */);
-		assertEnablement(action, project, UNMANAGED, false /* expected enablement */);
-		assertEnablement(action, project, UNMANAGED_PARENT, false /* expected enablement */);
-		// true is expected for ignored resources whose parent is not ignored
-		assertEnablement(action, project, UNMANAGED | MANAGED | IGNORED, false /* expected enablement */);
-	}
-	
-	public void testGenerateDiffAction() throws CoreException, TeamException {
-		IActionDelegate action = new GenerateDiffFileAction();
-		IProject project = createTestProject(action);
-		assertDisabledForCommonReasons(action, project);
-		assertEnablement(action, project, MANAGED | FILES | SINGLE_ONLY, true /* expected enablement */);
-		assertEnablement(action, project, MANAGED | FOLDERS | FILES, false /* expected enablement */);
-		assertEnablement(action, project, MANAGED | FOLDERS | SINGLE_ONLY, true /* expected enablement */);
-		assertEnablement(action, project, MANAGED | FILES, false /* expected enablement */);
-		assertEnablement(action, project, ADDED | SINGLE_ONLY, true /* expected enablement */);
-		assertEnablement(action, project, UNMANAGED | SINGLE_ONLY, true /* expected enablement */);
-		assertEnablement(action, project, IGNORED | SINGLE_ONLY, false /* expected enablement */);
-		assertEnablement(action, project, UNMANAGED_PARENT, true /* expected enablement */);
-		assertEnablement(action, project, UNMANAGED | MANAGED | IGNORED, false /* expected enablement */);
-	}
-	
-	/*
-	 * Should be the same as testAdd
-	 */
-	public void testIgnoreAction() throws CoreException, TeamException {
-		IActionDelegate action = new IgnoreAction();
-		IProject project = createTestProject(action);
-		assertDisabledForCommonReasons(action, project);
-		assertEnablement(action, project, MANAGED, false /* expected enablement */);
-		assertEnablement(action, project, ADDED, false /* expected enablement */);
-		assertEnablement(action, project, IGNORED, false /* expected enablement */);
-		assertEnablement(action, project, UNMANAGED, true /* expected enablement */);
-		assertEnablement(action, project, UNMANAGED | SINGLE_ONLY, true /* expected enablement */);
-		assertEnablement(action, project, UNMANAGED | MANAGED | IGNORED, false /* expected enablement */);
-		assertEnablement(action, project, UNMANAGED_PARENT, true /* expected enablement */);
-	}
-	
-	public void testMergeAction() throws CoreException, TeamException {
-		IActionDelegate action = new MergeAction();
-		IProject project = createTestProject(action);
-		assertDisabledForCommonReasons(action, project);
-		assertEnabledForFolderOnlyOverlap(action, project);
-		assertEnablement(action, project, MANAGED, true /* expected enablement */);
-		assertEnablement(action, project, MANAGED | ADDED, true /* expected enablement */);
-		assertEnablement(action, project, MANAGED | ADDED | UNMANAGED, false /* expected enablement */);
-		assertEnablement(action, project, IGNORED, false /* expected enablement */);
-		assertEnablement(action, project, UNMANAGED, false /* expected enablement */);
-		assertEnablement(action, project, UNMANAGED | MANAGED | IGNORED, false /* expected enablement */);
-		assertEnablement(action, project, UNMANAGED_PARENT, false /* expected enablement */);
-	}
-	
-	public void testReplaceWithRemoteAction() throws CoreException, TeamException {
-		IActionDelegate action = new ReplaceWithRemoteAction();
-		IProject project = createTestProject(action);
-		assertDisabledForCommonReasons(action, project);
-		assertEnabledForFolderOnlyOverlap(action, project);
-		assertEnablement(action, project, MANAGED, true /* expected enablement */);
-		assertEnablement(action, project, MANAGED | ADDED, false /* expected enablement */);
-		assertEnablement(action, project, MANAGED | ADDED | UNMANAGED, false /* expected enablement */);
-		// true is expected for ignored resources whose parent is not ignored
-		assertEnablement(action, project, IGNORED, false /* expected enablement */);
-		assertEnablement(action, project, UNMANAGED, false /* expected enablement */);
-		assertEnablement(action, project, UNMANAGED_PARENT, false /* expected enablement */);
-		// true is expected for ignored resources whose parent is not ignored
-		assertEnablement(action, project, UNMANAGED | MANAGED | IGNORED, false /* expected enablement */);
-	}
-	
-	/*
-	 * Should be the same as testCompareWithTagAction
-	 */
-	public void testReplaceWithTagAction() throws CoreException, TeamException {
-		IActionDelegate action = new ReplaceWithTagAction();
-		IProject project = createTestProject(action);
-		assertDisabledForCommonReasons(action, project);
-		assertEnabledForFolderOnlyOverlap(action, project);
-		assertEnablement(action, project, MANAGED, true /* expected enablement */);
-		assertEnablement(action, project, MANAGED | ADDED, true /* expected enablement */);
-		assertEnablement(action, project, MANAGED | ADDED | UNMANAGED, false /* expected enablement */);
-		assertEnablement(action, project, IGNORED, false /* expected enablement */);
-		assertEnablement(action, project, UNMANAGED, false /* expected enablement */);
-		assertEnablement(action, project, UNMANAGED_PARENT, false /* expected enablement */);
-		// true is expected for ignored resources whose parent is not ignored
-		assertEnablement(action, project, UNMANAGED | MANAGED | IGNORED, false /* expected enablement */);
-	}
-
-	public void testKeywordSubstitutionAction() throws CoreException, TeamException {
-		IActionDelegate action = new SetKeywordSubstitutionAction();
-		IProject project = createTestProject(action);
-		assertDisabledForCommonReasons(action, project);
-		assertEnabledForFolderOnlyOverlap(action, project);
-		assertEnablement(action, project, MANAGED, true /* expected enablement */);
-		assertEnablement(action, project, MANAGED | ADDED, true /* expected enablement */);
-		assertEnablement(action, project, MANAGED | ADDED | UNMANAGED, false /* expected enablement */);
-		assertEnablement(action, project, IGNORED, false /* expected enablement */);
-		assertEnablement(action, project, UNMANAGED, false /* expected enablement */);
-		assertEnablement(action, project, UNMANAGED | MANAGED | IGNORED, false /* expected enablement */);
-		assertEnablement(action, project, UNMANAGED_PARENT, false /* expected enablement */);
-	}
-	
-	public void testShowInHistory() throws CoreException, TeamException {
-		IActionDelegate action = new ShowResourceInHistoryAction();
-		IProject project = createTestProject(action);
-		assertDisabledForCommonReasons(action, project);
-		assertEnablement(action, project, MANAGED | FILES | SINGLE_ONLY, true /* expected enablement */);
-		assertEnablement(action, project, MANAGED | FOLDERS | FILES, false /* expected enablement */);
-		assertEnablement(action, project, MANAGED | FOLDERS | SINGLE_ONLY, false /* expected enablement */);
-		assertEnablement(action, project, MANAGED | FILES, false /* expected enablement */);
-		assertEnablement(action, project, ADDED | SINGLE_ONLY, false /* expected enablement */);
-		assertEnablement(action, project, UNMANAGED | SINGLE_ONLY, false /* expected enablement */);
-		assertEnablement(action, project, IGNORED | SINGLE_ONLY, false /* expected enablement */);
-		assertEnablement(action, project, UNMANAGED_PARENT, false /* expected enablement */);
-		assertEnablement(action, project, UNMANAGED | MANAGED | IGNORED, false /* expected enablement */);
-	}
-	
-	public void testSyncAction() throws CoreException, TeamException {
-		IActionDelegate action = new SyncAction();
-		IProject project = createTestProject(action);
-		assertDisabledForCommonReasons(action, project);
-		assertEnabledForFolderOnlyOverlap(action, project);
-		assertEnablement(action, project, MANAGED, true /* expected enablement */);
-		assertEnablement(action, project, MANAGED | ADDED, true /* expected enablement */);
-		assertEnablement(action, project, MANAGED | ADDED | UNMANAGED, true /* expected enablement */);
-		// true is expected for ignored resources whose parent is not ignored
-		assertEnablement(action, project, IGNORED, true /* expected enablement */);
-		assertEnablement(action, project, UNMANAGED, true /* expected enablement */);
-		assertEnablement(action, project, UNMANAGED_PARENT, false /* expected enablement */);
-		// true is expected for ignored resources whose parent is not ignored
-		assertEnablement(action, project, UNMANAGED | MANAGED | IGNORED, true /* expected enablement */);
-	}
-	
-	public void testTagAction() throws CoreException, TeamException {
-		IActionDelegate action = new TagLocalAction();
-		IProject project = createTestProject(action);
-		assertDisabledForCommonReasons(action, project);
-		assertEnabledForFolderOnlyOverlap(action, project);
-		assertEnablement(action, project, MANAGED, true /* expected enablement */);
-		assertEnablement(action, project, MANAGED | ADDED, false /* expected enablement */);
-		assertEnablement(action, project, MANAGED | ADDED | UNMANAGED, false /* expected enablement */);
-		assertEnablement(action, project, IGNORED, false /* expected enablement */);
-		assertEnablement(action, project, UNMANAGED, false /* expected enablement */);
-		assertEnablement(action, project, UNMANAGED | MANAGED | IGNORED, false /* expected enablement */);
-		assertEnablement(action, project, UNMANAGED_PARENT, false /* expected enablement */);
-	}
-	
-	public void testUnmanageAction() throws CoreException, TeamException {
-		IActionDelegate action = new UnmanageAction();
-		IProject project = createTestProject(action);
-		assertDisabledForCommonReasons(action, project);
-		List resources = new ArrayList();
-		resources.add(project);
-		ensureAllSyncInfoLoaded(project);
-		assertEnablement(action, asSelection(resources), true);
-	}
-	
-	public void testUpdateAction() throws CoreException, TeamException {
-		IActionDelegate action = new UpdateAction();
-		IProject project = createTestProject(action);
-		assertDisabledForCommonReasons(action, project);
-		assertEnabledForFolderOnlyOverlap(action, project);
-		assertEnablement(action, project, MANAGED, true /* expected enablement */);
-		assertEnablement(action, project, MANAGED | ADDED, false /* expected enablement */);
-		assertEnablement(action, project, MANAGED | ADDED | UNMANAGED, false /* expected enablement */);
-		assertEnablement(action, project, IGNORED, false /* expected enablement */);
-		assertEnablement(action, project, UNMANAGED, false /* expected enablement */);
-		assertEnablement(action, project, UNMANAGED | MANAGED | IGNORED, false /* expected enablement */);
-		assertEnablement(action, project, UNMANAGED_PARENT, false /* expected enablement */);
-	}
-}
diff --git a/tests/org.eclipse.team.tests.cvs.core/test.xml b/tests/org.eclipse.team.tests.cvs.core/test.xml
deleted file mode 100644
index 166f551..0000000
--- a/tests/org.eclipse.team.tests.cvs.core/test.xml
+++ /dev/null
@@ -1,60 +0,0 @@
-<?xml version="1.0"?>
-
-<project name="CVS Automated Tests" default="run" basedir=".">
-
-  <!-- The property ${eclipse-home} should be passed into this script -->
-  
-  <!-- sets the properties eclipse-home, and library-file -->
-  <property name="eclipse-home" value="${basedir}/../../"/>
-  <property name="library-file" value="${eclipse-home}/plugins/org.eclipse.test/library.xml"/>
-
-  <!-- get the repository.properties which identify the cvs test repository -->
-  <property name="org.eclipse.team.tests.cvs.core" value="org.eclipse.team.tests.cvs.core"/>
-  <property name="team-home" value="${eclipse-home}/plugins/${org.eclipse.team.tests.cvs.core}"/>
-  <property file="${team-home}/repository.properties"/>
-
-  <!-- This target holds all initialization code that needs to be done for -->
-  <!-- all tests that are to be run. Initialization for individual tests -->
-  <!-- should be done within the body of the suite target. -->
-  <target name="init">
-    <tstamp/>
-  </target>
-
-  <!-- This target defines the tests that need to be run. -->
-  <target name="suite">
-    <property name="location" value="${eclipse-home}/cvs_sniff_folder"/>
-    <delete dir="${location}" quiet="true"/>
-
-    <!-- Session Test ** CVS Provider ** -->
-    <ant target="core-test" antfile="${library-file}" dir="${eclipse-home}">
-      <property name="vmargs" value="-Declipse.cvs.properties=${team-home}/repository.properties"/>
-      <property name="data-dir" value="${location}"/>
-      <property name="plugin-name" value="org.eclipse.team.tests.cvs.core"/>
-      <property name="classname" value="org.eclipse.team.tests.ccvs.core.provider.AllTestsProvider"/>
-    </ant>
-    
-    <!-- Session Test ** CVS Resources ** -->
-    <ant target="core-test" antfile="${library-file}" dir="${eclipse-home}">
-      <property name="vmargs" value="-Declipse.cvs.properties=${team-home}/repository.properties"/>
-      <property name="data-dir" value="${location}"/>
-      <property name="plugin-name" value="org.eclipse.team.tests.cvs.core"/>
-      <property name="classname" value="org.eclipse.team.tests.ccvs.core.cvsresources.AllTestsCVSResources"/>
-    </ant>
-
-  </target>
-  
-  <!-- This target holds code to cleanup the testing environment after the tests -->
-  <!-- have been run. You can use this to delete temporary files that are created. -->
-  <target name="cleanup">
-  </target>
-
-  <!-- This target runs the test suite. Any actions that need to happen after all -->
-  <!-- the tests have been run should go here. -->
-  <target name="run" depends="init,suite,cleanup">
-    <ant target="collect" antfile="${library-file}" dir="${eclipse-home}">
-      <property name="includes" value="org*.xml"/>
-      <property name="output-file" value="org.eclipse.team.tests.cvs.xml"/>
-    </ant>
-  </target>
-
-</project>